Настройки операционной системы
Все настройки и рекомендации написаны и протестированы для использования в рекомендуемых операционных системах.
Для большей стабильности и скорости работы Smart Monitor рекомендуется сделать предварительные настройки в операционной системе. В установщик встроена настройка системы и со стороны администратора не требуется никаких действий, за исключением необязательных параметров. В этом разделе приводим все используемые параметры модификации для ознакомления.
Настройка параметров процесса
Все используемые параметры требуют перечитывания параметров systemd и перезагрузки изменяемого процесса. Для этого нужно выполнить две команды в командной строке от root пользователя:
$ systemctl daemon-reload
$ systemctl restart opensearch.service
В данном примере мы перезагрузим процесс opensearch.service
.
Все параметры, представленные в данном разделе, добавляются в блок SERVICE
конфигурационного файла процесса systemd
.
Open File Descriptors
По умолчанию в современных системах, в частности в RHEL, количество открытых файлов для одного процесса ограничено значением 1024. Для стабильной работы необходимо увеличить это количество до 65536:
LimitNOFILE=65535
Иногда указан ulimits, что переопределяет параметр выше, в этом случае нужно добавить для соответствующих пользователей (например, пользователю opensearch
) в файле /etc/security/limits.conf
следующие строки:
opensearch soft nofile 65535
opensearch hard nofile 65535
Number of Threads
Во время работы OpenSearch использует пулы потоков для разных типов операций. Важно, чтобы была возможность создавать новые потоки когда это необходимо, поэтому значение потоков нужно выставить не меньше 4096.
LimitNPROC=4096
Virtual Memory Address Space
Виртуальное адресное пространство задаёт диапазон операционной системой для процесса, для стабильной работы у сервисов не должно быть ограничений. Задаётся параметром:
LimitAS=infinity
File Size
Операционная система не позволяет создавать или копировать файлы больше заданного размера, обычно используется если требуется ограничить занимаемое место на диске для какого-нибудь процесса. Для наших процессов должно быть без ограничений:
LimitFSIZE=infinity
Max Locked Memory
Максимальный размер используемой процессом оперативной памяти, которое может быть заблокировано до сохранения в файл подкачки. Нужно выставить в безлимитное значение:
LimitMEMLOCK=infinity
Настройки Java
Мы вносим небольшие изменения в настройки Java, при использовании установщика эти настройки добавляются автоматически.
Параметр -Xms
Задаёт минимальное значение выделенной памяти для приложения Java. Значение указывается в мегабайтах или гигабайтах.
Мы рекомендуем использовать значение равное половине имеющейся оперативной памяти на сервере.
Для сервера с оперативной памятью 16Гб конфигурация параметра будет следующий:
-Xms8g
Параметр -Xmx
Задаёт максимальное значение оперативной памяти для приложения Java. Значение указывается в мегабайтах или гигабайтах.
Мы рекомендуем исполь зовать значение равное половине имеющейся оперативной памяти на сервере.
Для сервера с оперативной памятью 16Гб конфигурация параметра будет следующий:
-Xmx8g
Глобальные настройки системы
Часть параметров нельзя применить только для одного процесса и производятся для всей системы в ц елом. В данном разделе все параметры задаются для ядра операционной системы и используется утилита sysctl
для изменения этих параметров.
Эти параметры можно изменять до следующей перезагрузки, просто изменив определённый параметр:
sysctl -w vm.swappiness=1
Для сохранения изменений после перезагрузки требуется изменить конфигурационный файл /etc/sysctl.conf
. Можно использовать директорию sysctl.d
для создания отдельных конфигурационных файлов для удобства администрирования.
После изменения конфигурационного файла sysctl
для применения изменений нужно или перезагрузить сервер, или выполнить в командной строке от пользователя с правами root:
sysctl -p