Настройки операционной системы
Все настройки и рекомендации написаны и протестированы для использования в рекомендуемых операционных системах.
Для большей стабильности и скорости работы 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
Отключение SWAP
Большинство операционных систем стараются хранить как можно больше кэшируемых данных в оперативной памяти, а уже не используемые данные сохраняет на диск в так называемый SWAP. Этот процесс может негативно влиять на скорость работы Smart Monitor.
Мы рекомендуем не отключать полностью SWAP, а только снизить до минимального значение swappiness, которое отвечает за процент оставшейся свободной оперативной памяти, после которого ОС будет записывать оперативные данные в SWAP. Это позволит иметь возможность использовать SWAP при критических и не стандартных нагрузках на сервер и позволит
Для изменения параметра нужно создать файл /etc/sysctl.d/00-opensearch.conf
и добавить строку:
vm.swappiness = 1
Если требуется отключить SWAP полностью, то нужно сделать следующее. Выполнить команду для отключения использования swap до перезагрузки:
swapoff -a
Затем в файле /etc/fstab
закомментировать все разделы swap:
#/dev/mapper/ol-swap none swap defaults 0 0
Увеличение количества индексов для процесса
OpenSearch по умолчанию использует тип файловой системы mmapfs для хранения индекса сегмента. В операционной системе ограничение на этот параметр очень низкое, что может привести к ошибкам с ограничением памяти.
Для изменения параметра нужно создать файл /etc/sysctl.d/00-opensearch.conf
и добавить строчку:
vm.max_map_count=262144
Уменьшение количества повторных TCP-пакетов
В OpenSearch и Logstash для взаимодействия с различными системами открываются TCP соединения. При разрыве соединения ожидается повторная отправка пакетов. В Linux это число равно 15 и ожидание ответа возрастает по экспоненте, что может привести к долгой задержке (порядка 900 секунд) определения, что устройство больше не доступно.
Мы рекомендуем уменьшить это значение до 5 попыток, что примерно будет равно 6 секундам задержки при определении доступности устройства.
Для изменения параметра нужно создать файл /etc/sysctl.d/00-opensearch.conf
и добавить строчку:
net.ipv4.tcp_retries2=5
Права доступа
Настройки firewall установщиком не выполняются. В конце установки будет предложен вариант настройки доступен для всех.
Настройка прав доступа
Для OpenSearch и OpenSearch Dashboards используется пользователь opensearch
и группа opensearch
. Для Logstash используется пользователь logstash
и группа logstash
.