У меня 64-разрядная версия Ubuntu 10.04LTS, работающая в контейнере openvz, и Cherokee 1.0.8, скомпилированный из исходников. Использование виртуальной памяти cherokee-worker составляет около 430 МБ даже после отключения кеширования ввода-вывода в Advanced -> I / O Cache -> NOT enabled.
Эта проблема характерна для openvz? Потому что многие люди сообщили, что успешно уменьшили использование виртуальной памяти, отключив io-кеш.
вывод htop: http://imgur.com/z5JEL.jpg (новичкам не разрешается размещать изображения.)
заранее спасибо.
нидхишдас
По крайней мере, часть этого будет распределением стека (RLIMIT_STACK), которое выделяется для каждого потока чероки ... и чероки создает много потоков. Эта память фактически не используется и все еще доступна, поэтому обычно это не имеет значения, но с OpenVZ она засчитывается в вашу квоту, и вам нужно уменьшить ее на OpenVZ VPS. Я даже не могу запустить Cherokee в его конфигурации по умолчанию на моем VPS 256 МБ, потому что OpenVZ думает, что при запуске использует более 210 МБ.
Вы можете либо сократить количество потоков, которые использует Cherokee, выбрав Advanced-> Resources в веб-конфигурации (настройка - «server! Thread_number = XX», если вы редактируете cherokee.conf напрямую), либо вы можете просто изменить стек size перед запуском cherokee с помощью 'ulimit -s SIZE_IN_KB' (вы можете увидеть значение по умолчанию, прежде чем изменить его с помощью 'ulimit -s' - мой VPS по умолчанию 10240, 10 МБ на поток). Имейте в виду, что вам нужно установить ulimit перед запуском cherokee, и он не общесистемный. Так что либо сделайте это в оболочке перед запуском cherokee из той же оболочки, либо отредактируйте сценарий запуска, чтобы запустить ulimit -s XX перед запуском cherokee.
LowEndBox - отличный ресурс для налаживания работы (особенно с низкопроизводительными) VPS. У них есть сообщение в блоге о том, как "Уменьшите ограничение стека для многопоточных приложений".
Память используется процессами php5-fpm, а не чероки. Вы запускаете толстое приложение на php?