...
Пример установки ZGC с версией OpenJDK 12:
1. Скачиваем последнюю сборку OpenJDK 12 со страницы http://jdk.java.net/12/:
Code Block | ||||
---|---|---|---|---|
| ||||
wget https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_linux-x64_bin.tar.gz |
2. Распаковываемый полученный файл и перемещаем его содержимое в рабочую директория:
Code Block | ||||
---|---|---|---|---|
| ||||
tar xvf openjdk-12.0.2_linux-x64_bin.tar.gz
mv jdk-12.0.2 /usr/java/jdk-12.0.2 |
3. Создаем символические ссылки на OpenJDK 12:
Code Block | ||||
---|---|---|---|---|
| ||||
ln -sfn /usr/java/jdk-12.0.2 /usr/java/default
ln -sfn /usr/java/default/bin/java /usr/bin/java
ln -sfn /usr/java/default/bin/jstack /usr/bin/jstack
ln -sfn /usr/java/default/bin/jcmd /usr/bin/jcmd
ln -sfn /usr/java/default/bin/jmap /usr/bin/jmap
|
4. Установите OpenJDK 12, как описано здесь
2. Проверяем корректность установки OpenJDK 12:
Code Block | ||||
---|---|---|---|---|
| ||||
java -version openjdk 12.0.2 2019-07-16 OpenJDK Runtime Environment (build 12.0.2+10) OpenJDK 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing) |
53. Устанавливаем WCS (если требуется).
64. Если WCS был установлен ранее, комментируем или удаляем следующие строки в файле wcs-core.properties
...
Code Block | ||
---|---|---|
| ||
-Xlog:gc*:/usr/local/FlashphonerWebCallServer/logs/gc-core-:time |
75. Добавляем настройки в wcs-core.properties (например, выделяем 24G под heap):
Code Block | ||||
---|---|---|---|---|
| ||||
# ZGC -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xms24g -Xmx24g -XX:+UseLargePages -XX:ZPath=/hugepages # Log -Xlog:gc*:/usr/local/FlashphonerWebCallServer/logs/gc-core.log -XX:ErrorFile=/usr/local/FlashphonerWebCallServer/logs/error%p.log |
86. Настраиваем ZGC по рекомендациям (число страниц памяти (по 2048K каждая) c запасом к выделенной памяти под heap (1,125 * 24G *1024 / 2M)) и добавляем необходимые параметры в автозагрузку сервера:
Code Block | ||||
---|---|---|---|---|
| ||||
mkdir /hugepages echo "echo 13824 >/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages" >>/etc/rc.local echo "mount -t hugetlbfs -o uid=0 nodev /hugepages" >>/etc/rc.local chmod +x /etc/rc.d/rc.local systemctl enable rc-local.service systemctl restart rc-local.service |
97. После перезапуска WCS, в файлах логов gc-core.log видна периодическая операция работы сборщика мусора. Для понимания модели работы Z Garbage Collector можно ознакомиться с презентацией.
...