Я пытаюсь определить оптимальные настройки для моего сервера ColdFusion PRODUCTION. Сервер имеет следующие характеристики.
ColdFusion: Enterprise Version 10
Операционная система: Windows Server 2012R2 Standard
Процессор: Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz
Установленная память (RAM): 20.0 GB
Тип системы: 64-разрядная операционная система, процессор на базе x64
Мои настройки Java и JVM из CFIDE следующие:
Минимальный размер кучи (в МБ): 2048
Максимальный размер кучи (в МБ): 4096Аргументы JVM
-server -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.home={application.home} -Dcoldfusion.rootDir={application.home} -Dcoldfusion.libPath={application.home}/lib -Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true -Dcoldfusion.jsafe.defaultalgo=FIPS186Random
У меня есть несколько веб-сайтов, работающих на этом производственном сервере, все из которых используют ColdFusion. Сервер базы данных полностью отделен, поэтому все, за что отвечает этот сервер, — это приложение ColdFusion и процессы веб-сервера.
Веб-сайты полностью управляются данными, все извлекаются из базы данных, расположенной на моем сервере производственной базы данных. В последнее время я наблюдаю, как служба ColdFusion зависает, так как она загружает процессор до предела. Память стабильна, загружается только процессор до предела.
Может ли кто-нибудь подсказать, как его настроить, чтобы повысить общую производительность и при этом снизить нагрузку на процессор?
Спасибо!
решение1
Наиболее вероятная причина того, что ваш процессор максимизирует сборку мусора, - которая на самом деле связана с памятью. Когда вы говорите "память стабильна", вы имеете в виду, что система показывает, что CF использует только 4G, которые вы ему разрешаете, или вы имеете в виду, что монитор ColdFusion показывает стабильное использование памяти?
Я думаю, что решением вашей проблемы будет правильное сочетание GC и выделения памяти, так что CPU будет делать небольшие регулярные очистки вместо периодических больших очисток. Но, как сказал Мигель, единственный способ выяснить это — нагрузочное тестирование. jMeter великолепен. Поиграйтесь с ним.