Какие еще варианты я могу оптимизировать использование памяти WordPress? - PullRequest
2 голосов
/ 29 сентября 2011

Итак, я наткнулся на стену, пытаясь взломать, почему эта установка WordPress занимает так много памяти. Я обновил свой сервер с 512 до 1 ГБ ОЗУ для учетной записи MediaTemple DV 4.0, и в этой единственной установке используется в среднем 60%, что составляет 118%, если кто-то возится с панелью мониторинга. Пользователи в интерфейсе не испытывают никаких проблем с производительностью, и сайт не падает, но из-за того, что потребляется так много памяти, мне часто приходится перезагружать сервер только через FTP или SSH. И теперь часто на каждой странице Приборная панель будет висеть в течение целой минуты или двух. Это происходит периодически, но как только она запускается, каждая страница в Dashboard будет зависать постоянно, и перезагрузка сервера не исправляет ее (она просто загадочным образом возвращается в нормальное состояние). Кроме того, у меня есть другие установки WP на сервере, но ни одна из них не испытывает никаких проблем внутри или за пределами панели мониторинга. Они также используют CloudFlare и AmazonS3, как я опишу ниже. Я знаю, что нет прямого ответа на это, но мне любопытно, если у кого-нибудь есть совет, чтобы предложить, что попробовать дальше, учитывая то, что я уже пробовал:

Вот что установлено:

  1. W3 Total Cache + PHP APC (Сайт использует кэширование базы данных, кэширование страниц и объектное кэширование с помощью APC).
  2. Ресурсы изображений размещаются на Amazon S3 / Cloudfront через W3 Total Cache. У меня есть что-то вроде 50 000 изображений, хранящихся на S3, хотя на сайте активно используется только небольшая часть (около 1-2 тыс.).
  3. Сайт находится за CloudFlare и использует плагин CloudFlare, который исправляет IP-адреса для комментариев.
  4. Я не делаю ничего особенно впечатляющего в этой теме (http://www.rokkyuu.com). Единственное, что особенно продвигает сайт, это то, что для определенных изображений, выходящих из WP, если в библиотеке мультимедиа не существует измененной версии изображения, WP изменяет размер изображения на лету, а затем отправляет это изображение в Amazon S3, так что, когда W3 Total Cache заменяет путь, внешний интерфейс заканчивается использованием ресурса S3, чтобы избежать обрезки WP 8 миллиардов нестандартных размеров для каждого изображения, которое загружается. Однако в Dashboard этого не происходит.
  5. Это плагины, которые я установил:
    • 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

Что я пытался сделать для отладки:

  1. Я установил кэширование APC (но опять же, W3 Total Cache не кэширует панель инструментов)

  2. Я изменил свою конфигурацию MySQL, чтобы соответствовать рекомендациям Мэтта Малленвега по mysql. http://www.codinghorror.com/blog/files/matt-mullenweg-wordpress-mysql-recommendations.txt

  3. Я установил xdebug и webgrind и проанализировал вывод cachegrind, но я не совсем уверен, что считается красным флагом. Очень немногие написанные мной PHP-функции даже перечислены среди элементов, вызванных из-за высокой общей стоимости включений, и там, где общая стоимость включений самая высокая (php :: call_user_func_array), функции, вызываемые через call_user_func_array, равномерно распределены по основным функциям, и мои своя. Пример кэша для домашней страницы, которую я вытащил, был 15 МБ С другой стороны, размер кэша для экрана Post Edit в Dashboard составляет 186 МБ, а главным нарушителем является пользовательский manage_posts_columns. Однако я удалил все настройки manage_post_columns, и панель инструментов по-прежнему зависает, и ее невозможно использовать.

Где мне еще начать устранять неполадки?

Ответы [ 2 ]

1 голос
/ 03 октября 2011

Я думаю, что нашел виновника:

Плагин CloudFlare WP и Dashboard = ядерный кризис.

Я не уверен, почему, но после изучения профиля памяти страниц Dashboard в webgrind я обнаружил, что запросы curl для API CloudFlare вызывали огромные скачки в памяти. После того как я отключил CloudFlare в DNS MediaTemple и отключил плагин, панель инструментов начала нормально работать.

Не уверен, что если все-таки можно включить CloudFlare без плагина WP, но для моих целей я бы предпочел работающую панель инструментов ...

1 голос
/ 29 сентября 2011

Начните с чистой, свежей установки WP, а затем медленно добавляйте различные вещи, которые вы делаете.Если вы будете следить за использованием памяти, когда вы добавляете что-то, вы найдете часть, которая вызывает проблемы.

...