Я установил ColdFusion 11 на сервер Redhat Linux. Время от времени я вижу некоторую степень медлительности. Когда он медленный, я вижу, что всегда есть ожидающий заблокированный поток SeedGenerator. Было бы очень признательно, если бы кто-то мог дать подсказки о том, как решить проблему. Вот некоторые связанные данные:
- Сервер: Linux 2.6.32-504.1.3.el6.x86_64 #1 SMP Пт, 31 октября, 11:37:10 по восточному поясному времени 2014 x86_64 x86_64 x86_64 GNU/Linux
- Физическая память: 6 ГБ
- Процессор: Intel(R) Xeon(R) CPU X5560 @ 2,80 ГГц
- Java: встроенный модуль coldfusion 1.7.0_55-b13
- jvm: -Xms256m -Xmx2048m -XX:MaxPermSize=192m -Dcoldfusion.jsafe.defaultalgo=FIPS186Random
Я также включил JMXremote. И JConsole указывает, что пиковое использование памяти кучи составляет 700 МБ, а пиковое значение permgen — 120 МБ. Команда top в Linux указывает на высокую загрузку ЦП, а Jconsole показывает, что поток SeedGenerator время от времени использует 99% ЦП.
Я проверил пул случайных чисел ОС, и в /proc/sys/kernel/random/entropy_avail всегда было не менее 120 (в большинстве случаев это число находится в диапазоне от 120 до 190). Я даже использую rngd для увеличения доступных случайных битов, но это не помогает. Я также удалил /dev/random и связал с ним /dev/urandom без каких-либо улучшений.
Трассировка стека для потока SeedGenerator:
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:503)
sun.security.provider.SeedGenerator$ThreadedSeedGenerator.run(Unknown Source)
java.lang.Thread.run(Unknown Source)