Подтвердить что ты не робот

APC демонстрирует 100% фрагментацию

APC показывает 100% фрагментацию. Это плохо?

Означает ли это, что это не помогает вообще? Какие пути я могу улучшить, чтобы улучшить ситуацию?

Спасибо заранее.

4b9b3361

Ответ 1

По моему опыту, да. У меня была система, в которой APC показывала 100% фрагментацию, а производительность была плохой. Я увеличил лимит памяти APC (до 200 МБ в моем случае - но у нас было много кода) достаточно, чтобы дать ему небольшую комнату. Фрагментация упала до нуля, а IIRC, загрузка процессора на сервере снизилась на 50%.

Кроме того, убедитесь, что вы используете apc.php script, который поставляется с APC для мониторинга фрагментации/использования. Мы даже записали проверку nagios для просмотра APC, потому что у нас достаточно трафика, который Apache полностью блокирует, когда APC заполняется.

Мораль истории: дать APC достаточную память и контролировать использование.

Ответ 2

Фрагментация означает, что apc часто выбрасывает элементы из кеша и добавляет новые и не может найти достаточно большие непрерывные блоки.

Есть два основных способа повысить производительность, а затем

  • Предоставьте больше памяти APC. В идеале APC может хранить ваши полные скрипты в памяти.
  • используйте apc.filter в php.ini для фильтрации файлов, которые часто не запрашиваются или часто меняются.

Также использование apc_store() с коротким временем для жизни плохое, так же как и переписывание с помощью apc_store() часто.

Ответ 3

[...] Фрагментация - это то, что вредит производительности, а не размер памяти как таковой. Но также кажется, что фрагментация происходит, когда память низкая [...]

Заметим также, что, по-видимому, существует ошибка с графом apc.php: http://pecl.php.net/bugs/bug.php?id=13146