Итак, я наткнулся на стену, пытаясь взломать, почему эта установка WordPress занимает так много памяти. Я обновил свой сервер с 512 до 1 ГБ ОЗУ для учетной записи MediaTemple DV 4.0, и в этой единственной установке используется в среднем 60%, что составляет 118%, если кто-то возится с панелью мониторинга. Пользователи в интерфейсе не испытывают никаких проблем с производительностью, и сайт не падает, но из-за того, что потребляется так много памяти, мне часто приходится перезагружать сервер только через FTP или SSH. И теперь часто на каждой странице Приборная панель будет висеть в течение целой минуты или двух. Это происходит периодически, но как только она запускается, каждая страница в Dashboard будет зависать постоянно, и перезагрузка сервера не исправляет ее (она просто загадочным образом возвращается в нормальное состояние). Кроме того, у меня есть другие установки WP на сервере, но ни одна из них не испытывает никаких проблем внутри или за пределами панели мониторинга. Они также используют CloudFlare и AmazonS3, как я опишу ниже. Я знаю, что нет прямого ответа на это, но мне любопытно, если у кого-нибудь есть совет, чтобы предложить, что попробовать дальше, учитывая то, что я уже пробовал:
Вот что установлено:
- W3 Total Cache + PHP APC (Сайт использует кэширование базы данных, кэширование страниц и объектное кэширование с помощью APC).
- Ресурсы изображений размещаются на Amazon S3 / Cloudfront через W3 Total Cache. У меня есть что-то вроде 50 000 изображений, хранящихся на S3, хотя на сайте активно используется только небольшая часть (около 1-2 тыс.).
- Сайт находится за CloudFlare и использует плагин CloudFlare, который исправляет IP-адреса для комментариев.
- Я не делаю ничего особенно впечатляющего в этой теме (http://www.rokkyuu.com). Единственное, что особенно продвигает сайт, это то, что для определенных изображений, выходящих из WP, если в библиотеке мультимедиа не существует измененной версии изображения, WP изменяет размер изображения на лету, а затем отправляет это изображение в Amazon S3, так что, когда W3 Total Cache заменяет путь, внешний интерфейс заканчивается использованием ресурса S3, чтобы избежать обрезки WP 8 миллиардов нестандартных размеров для каждого изображения, которое загружается. Однако в Dashboard этого не происходит.
- Это плагины, которые я установил:
- Akismet
- BWP Google XML Sitemaps
- CloudFlare
- Соавторы Плюс
- Публикация страницы Facebook
- Livejournal Crossposter
- Перенаправление
- SABER
- Простые локальные аватары
- Тема Мой логин
- Инструменты Twitter
- Tweet Blender
- Переключение пользователей
- W3 Total Cache
- WordPress SEO
- WordPress Firewall 2
- WP-DB Manager
- WP Custom Admin Bar
- WP Hide Dashboard
- WPTouch Pro
Что я пытался сделать для отладки:
Я установил кэширование APC (но опять же, W3 Total Cache не кэширует панель инструментов)
Я изменил свою конфигурацию MySQL, чтобы соответствовать рекомендациям Мэтта Малленвега по mysql. http://www.codinghorror.com/blog/files/matt-mullenweg-wordpress-mysql-recommendations.txt
Я установил xdebug и webgrind и проанализировал вывод cachegrind, но я не совсем уверен, что считается красным флагом. Очень немногие написанные мной PHP-функции даже перечислены среди элементов, вызванных из-за высокой общей стоимости включений, и там, где общая стоимость включений самая высокая (php :: call_user_func_array), функции, вызываемые через call_user_func_array, равномерно распределены по основным функциям, и мои своя. Пример кэша для домашней страницы, которую я вытащил, был 15 МБ С другой стороны, размер кэша для экрана Post Edit в Dashboard составляет 186 МБ, а главным нарушителем является пользовательский manage_posts_columns. Однако я удалил все настройки manage_post_columns, и панель инструментов по-прежнему зависает, и ее невозможно использовать.
Где мне еще начать устранять неполадки?