файл cf.registry разных размеров - PullRequest
1 голос
/ 24 августа 2009

У нас есть веб-приложение с балансировкой нагрузки на двух машинах с java-сервером (tomcat), ColdFusion и Apache впереди.

Некоторое время назад мы заметили, что файл cfregistry имеет разный размер на обоих серверах: 89 МБ на одном и 44 МБ на другом.

Это нормально иметь такой размер? Это нормально, у них такой разный размер?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 26 августа 2009

ColdFusion Client По умолчанию в качестве хранилища переменных используется реестр в Windows, а для платформ Unix / Linux - файл cf.registry. Причина заключается в простоте использования, но на производстве это тихий убийца, который замедляет ColdFusion, как патоку, и в Unix полностью сбивает сервер, когда файл cf.registry становится слишком большим.

По сути, ColdFusion выполняет синтаксический анализ, чтение и запись файла для каждого запроса, использующего переменные клиента (даже если ни один из них не используется в коде, но включен атрибут clientmanagement в cfapplication). Это немного похоже на обработку плоского файла как базы данных. Это очень интенсивный ввод-вывод, и за годы технической поддержки ColdFusion для Allaire / Macromedia / Adobe я разрешил много случаев сбоя / остановки серверов из-за этой проблемы.

Вкратце, остановите ColdFusion, переименуйте выходящий файл cf.registry и скопируйте вместо него чистый / новый файл cf.registry с любого другого сервера ColdFusion (даже для версии Developer / Trial это нормально). Осторожно: если вы копируете новый файл, не останавливая ColdFusion, на сервере уже есть копия оригинала в памяти, и он запишет ее в новый файл cf.registry после завершения работы, и у вас снова будет проблема с оригиналом.

Даже если вы измените механизм клиентского хранилища на использование базы данных или иным образом, вам все равно следует очистить существующий файл cf.registry, потому что ColdFusion будет продолжать регулярно его анализировать, поскольку он проходит через процесс устаревания клиентских переменных, которые устарели.

Существует техническая информация Adobe для очистки реестра клиентских переменных. Он работает как цепочка, где он запускается в браузере, он удаляет 100 клиентских переменных, обновляет себя и удаляет еще 100. Это может занять несколько часов. Не используйте его, если у вас есть большие данные переменных клиента в Registry / cf.registry. Просто очистите существующие файлы cf.registry.

Наконец, в Windows ColdFusion редко будет аварийно завершать работу из-за этой проблемы. Он будет просто хромать, все медленнее и медленнее. В Unix / Linux он будет только хромать, а затем завершит процесс.

0 голосов
/ 25 августа 2009

Я считаю, что файл предназначен для клиентского хранилища под * nix.

Вам следует настроить приложение для использования БД в качестве хранилища области клиента.

Нормально ли иметь другой размер? Я так думаю.

...