Назад | Перейти на главную страницу

Проблемы с фрагментацией APC на небольшом экземпляре Apache AWS EC2 с WordPress и W3TC

AWS EC2 Small instance, Apache 2 под управлением WordPress и W3TC. В течение часа фрагментация моего APC достигает 100%.

Мои настройки APC:

apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 100M
apc.optimization = 0
apc.num_files_hint = 512
apc.user_entries_hint = 1024
apc.ttl = 7200
apc.user_ttl = 7200
apc.gc_ttl = 3600
apc.cache_by_default = 1
apc.use_request_time = 1
apc.filters = "apc\.php$"
apc.mmap_file_mask = "/tmp/apc.XXXXXX"
apc.slam_defense = 0
apc.file_update_protection = 2
apc.enable_cli = 0
apc.max_file_size = 2M
apc.stat = 1
apc.write_lock = 1
apc.report_autofilter = 0
apc.include_once_override = 0
apc.rfc1867 = 0
apc.rfc1867_prefix = "upload_"
apc.rfc1867_name = "APC_UPLOAD_PROGRESS"
apc.rfc1867_freq = 0
apc.localcache = 0
apc.localcache.size = 256M
apc.coredump_unmap = 0
apc.stat_ctime = 0
apc.canonicalize = 1
apc.lazy_functions = 0
apc.lazy_classes = 0
/etc/php.d/apc.ini

Больше какашек может быть видел здесь.

В основном заимствованные настройки из Вот. Предполагалось, что shm уменьшится с такого высокого значения после некоторых наблюдений, но очевидно, что такое большое значение даже недостаточно высоко ....

Я нашел похожий вопрос / ответ Вот. У меня есть несколько настроек виртуальных хостов, но их совсем не трогают. То, что пользователи вошли в административную панель WP, действительно ухудшает ситуацию, но, конечно, не в этом главная причина. Автор вопроса, похоже, предполагает, что оказывается W3TC, вероятно, вызывает проблему, с чем, похоже, согласен автор плагина, но кроме этого нет никаких полезных деталей. Почему это вызывает проблему?

Я просто возьму его и отключу кеширование объектов с помощью APC? Я ничего не могу сделать? Помогает ли его включение без использования для кэширования объектов? Будет ли здесь memcache хорошей заменой только кешированию объектов? Наконец, может, мне просто не стоит так беспокоиться о фрагментации?

Cached variables: 3562 ( 14.3 MBytes)

Это то, что вызывает вашу фрагментацию. GC очищает их, и есть вероятность, что они будут помещены в новый «срез» после регенерации.

Вы можете попробовать увеличить TTL GC для пользовательских переменных, но если код для вашего использования APC вручную обрабатывает TTL, это может быть частью проблемы.

3500+ варов - это довольно много для того, что я вижу (всего 500 файлов в кэше, 100 МБ SHM); APC может использоваться некорректно.

Редактировать:

Hits 19195 Misses 13830

Insert Rate 1312.99 cache requests/second <- Это наводит меня на мысль, что что-то настроено неправильно. Технически это говорит мне о том, что ваше кеширование в значительной степени неэффективно, поскольку 33% ваших кешированных переменных генерируются каждую секунду.