Перейти к основному содержимому
Версия: 3.2

Настройки операционной системы

Все настройки и рекомендации написаны и протестированы для использования в рекомендуемых операционных системах.

Для большей стабильности и скорости работы 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.

Настройка SELinux​

Изменение настроек не будет производиться при отключенном режиме SELinux, при других режимах работы - будут произведены изменения для директорий:

  • bin: system_u:object_r:bin_t:s0;
  • run: system_u:object_r:var_run_t:s0.

Необязательные параметры​

Следующие параметры не модифицируются автоматически установщиком, изменять их в большинстве случаев не требуется и следует использовать с осторожностью и после проведения нагрузочного тестирования.

Отключение Transparent Huge Pages​

Transparent Huge Pages — это система управления памятью Linux, которая снижает нагрузку на поиск буфера перевода (TLB) на компьютерах с большим объемом памяти за счет использования страниц памяти большего размера. В большинстве случаев отключать не требуется, особенно если на сервере установлен только OpenSearch, поскольку в настройках java мы используем параметры Xms и Xmx, А также практически не используем swap.

Согласно частным исследованиям (issue 26551), не рекомендуется выставлять Transparent Huge Pages в значение madvise, при котором наблюдалось падение производительности OpenSearch.

Оригинальная документа на странице Red Hat: How to disable THP.

Для выключения механизма Transparent Huge Pages требуется добавить в файл /etc/default/grub в параметр GRUB_CMDLINE_LINUX следующую строку:

transparent_hugepage=never
ВАЖНО

Перед применением конфигурации требуется сохранить копию файла /boot/grub2/grub.cfg.

Для применения конфигурации требуется выполнить следующую команду, для BIOS-based:

grub2-mkconfig -o /boot/grub2/grub.cfg

Для UEFI-based:

grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

После этих действий следует перезагрузить сервер. Создаем tuned profile для переопределения всех конфигураций, влияющих THP.

Создадим папку и файл профиля:

mkdir /etc/tuned/myprofile-nothp
touch /etc/tuned/myprofile-nothp/tuned.conf

В файл добавляем следующий текст:

[main]
include= throughput-performance
[vm]
transparent_hugepages=never

После чего делаем файл исполняемым и применяем:

chmod +x /etc/tuned/myprofile-nothp/tuned.conf
tuned-adm profile myprofile-nothp

Перезагрузка системы не требуется.