Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagebash
themeRDark
# ZGC
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xms24g -Xmx24g 

6. Если планируется использование больших страниц памяти (hugepages), добавляем настройки:

  • в JDK 12 или 14
Code Block
themeRDark
-XX:+UseLargePages -XX:ZPath=/hugepages

# Log
-Xlog:gc*:/usr/local/FlashphonerWebCallServer/logs/gc-core.log
-XX:ErrorFile=/usr/local/FlashphonerWebCallServer/logs/error%p.log

...

  • в JDK 15 и выше
Code Block
themeRDark
 -XX:+UseLargePages -XX:AllocateHeapAt=/hugepages

Затем настраиваем hugepages по рекомендациям (число страниц памяти (по 2048K каждая) c запасом к выделенной памяти под heap (1,125 * 24G *1024 / 2M)) и добавляем необходимые параметры в автозагрузку сервера (пример для Centos):

Code Block
languagebash
themeRDark
sudo mkdir /hugepages
sudo echo "echo 13824 >/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages" >>/etc/rc.local
sudo echo "mount -t hugetlbfs -o uid=0,mode=0757 nodev /hugepages" >>/etc/rc.local
sudo chmod +x /etc/rc.d/rc.local
sudo systemctl enable rc-local.service
sudo systemctl restart rc-local.service
sudo chmod o+w /hugepages

...

Code Block
languagebash
themeRDark
sysctl -w vm.max_map_count=131072

и перезапустить WCS.

Известные проблемы

1. При использовании ZGC нагрузка на процессор сервера выше, особенно в JDK 15

Симптомы: при обновлении JDK c 12 или 14 до 15 и использовании ZGC возрастает средняя загрузка процессора, измеренная на уровне системы (например, утилитой htop)

Решение: для высоконагруженных серверов, если требуется минимизация задержек при сборке мусора, использовать ZGC  в JDK 12 или 14

2. Логи ZGC с настройками вывода по умолчанию могут занимать много места на диске

Симптомы: файлы логов gc-core*.log занимают много места на диске

Решение: в файле настроек wcs-core.properties ограничить набор сообщений, выводимых в лог сборщика мусора

Code Block
themeRDark
-Xlog:gc,gc+start,gc+phases:/usr/local/FlashphonerWebCallServer/logs/gc-core-:time