3

У нас есть 6 серверов Windows Server 2008/IIS 7.5 ColdFusion 9.0.2 на балансировщике с циклическим распределением нагрузки. Каждому серверу выделяется 2 ГБ для ColdFusion. Серверы имеют 6 ГБ общей памяти. Сбор мусора, похоже, является проблемой на всех серверах, но я не уверен, как решить проблему без утилизации ColdFusion.Коллекция мусора ColdFusion

График ниже является памятью AVG/MAX для наших 6 серверов за последние несколько дней. Каждый день память AVG увеличивается. В конце концов, серверы начинают запросы на очередность (потому что они не могут обрабатывать их достаточно быстро), и у нас нет выбора, кроме как переработать.

Data taken at 1m intervals across all 6 servers.

Данные, приведенные в графе было взят из 1х снимков FusionReactor во всех 6 серверов.

Наши серверы используют следующую командную строку в jvm.config для ColdFusion:

java.args = -Xmx2G -server -Xms2g -Dsun.io.useCanonCaches = ложь -XX: MaxPermSize = 192M -XX: + UseParallelGC -Xbatch -Dcoldfusion.rootDir = {application.home}/-Djava.security.policy = {application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib /coldfusion.policy -Djava.security.auth.policy = {application.home} /servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/neo_jaas.policy

Я не уверен, что изменение параметров сбора мусора является решением, и я ничего не знаю о GC, особенно в том, что касается ColdFusion.

Я знаю, что это может иметь какое-то отношение к коду на сайте. Это портал (что-то вроде fusebox), в котором находится множество различных приложений. В портале не так много применений вызовов cfobject.

+0

Вы используете много вызовов CFHTTP? Вы можете посмотреть на - http: // stackoverflow.com/questions/14777292/coldfusion-jvm-garbage-collection-not –

+0

@BrianHoover Мы используем довольно много вызовов CFHTTP. Большое спасибо за ссылку! – Brad

ответ

0

Это похоже на этот вопрос: Coldfusion OutOfMemoryError (CF9/Wheels)

Но позвольте мне подчеркнуть те, которые имеют отношение к следующим образом:

  1. Убедитесь, что вы по крайней мере, КФ 9.01hf4 или 9.02hf1 и запустить ColdFusion на Java (см ColdFusion 9.01 on Java 7)

  2. Bump вверх по `-XX: MaxPermSize = 512m

  3. Использование -XX: + G1GC (см Is JDK 6u14 Garbage First (G1) garbage collector, suitable for JRun?)

  4. сделать что JVM может использовать 4 Гб

  5. каждые 100 до 1000 итераций делать настоятельно советуем собирать мусор

  6. Сделайте свою функцию молчать

  7. Убедитесь, что переменные в функции являются областью видимости var или local

  8. Рассмотрите ORM

Смежные вопросы