Означает ли это, что это не помогает вообще? Какие пути я могу улучшить, чтобы улучшить ситуацию?
Спасибо заранее.
Ответ 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
[...] Фрагментация - это то, что вредит производительности, а не размер памяти как таковой. Но также кажется, что фрагментация происходит, когда память низкая [...]