Рост памяти с новыми дополнениями в WordPress Multisite

Вопрос или проблема

У меня есть WordPress Multisite, основанный на подпапках, с ~200 сайтами. Недавно через нашего хоста я попытался уменьшить память до 128 МБ на поток при 12 потоках, вместо 256 МБ при 6 потоках, но когда я это сделал, я вообще не смог войти в панель администратора.

При расследовании я обнаружил, что панель администратора использует 215 МБ из 256 МБ доступных, так что, конечно, я не смог войти при 128 МБ. Сам сайт (не админские страницы) использует всего около 20-30 МБ при каждой загрузке страницы. Отключение всех плагинов снижает использование памяти с 215 МБ до ~180 МБ.

При более глубоком изучении я обнаружил, что это происходит из-за того, что есть сотни (386) вызовов “switch_to_blog()” и “restore_current_blog()” для заполнения выпадающего списка “Мои сайты” на каждом экране администратора. Если я удаляю админ-бар / отключаю эти основные файлы админ-бара, использование памяти WP Admin падает до около 36 МБ! Если я убираю один сайт из нашего мультисайта, использование памяти уменьшается на ~3 МБ, так что добавление сайтов увеличивает нагрузку.

Есть ли причина для этой нагрузки от админ-бара WP? Может, я что-то не понимаю? Могу ли я отключить админ-бар для администратора без изменения основных файлов или найти другое решение. К сожалению, мой хост (Kinsta) не может предоставить администратору больше памяти, чем обычным пользователям.

Спасибо!

изображение 1 здесь

изображение 2 здесь

Ответ или решение

Если рассматривать рост потребления памяти в WordPress Multisite, особенно в контексте вашей ситуации с административной панелью и увеличением количества сайтов, то здесь необходимо учесть несколько важных моментов.

Факторы, влияющие на использование памяти в WordPress Multisite:

  1. Структура сайтов и вызовы функций: Как вы уже выяснили, использование функций switch_to_blog() и restore_current_blog() для формирования выпадающего меню "Мои сайты" напрямую влияет на потребление памяти. При большом количестве сайтов (в вашем случае около 200) каждый дополнительный вызов этих функций создает нагрузку на систему, что увеличивает использование ресурсов, особенно в административной панели.

  2. Плагины и темы: Если отключение всех плагинов уменьшает потребление памяти, то, вероятно, некоторые из них работают неэффективно. Несмотря на основное снижение до 180MB, вам следует провести аудит активных плагинов, чтобы определить их вклад в общую нагрузку.

  3. Конфигурация хостинга: Поскольку вы ограничены предложенными вариантами от хостинга (Kinsta), и они не могут дать больше памяти администратору, это создает дополнительные ограничения на возможные решения.

Решения проблемы:

  1. Оптимизация админ-панели: Если основной проблемой является admin bar, вы можете отключить его для администраторов. Это можно сделать добавлением специального кода в functions.php вашей основной темы:

    if (!is_admin()) {
       add_filter('show_admin_bar', '__return_false');
    }

    Не касайтесь основных файлов WordPress, это может вызвать проблемы при обновлении системы.

  2. Кэширование: Рассмотрите возможность использования встроенного или стороннего решения кэширования, чтобы уменьшить количество обращений к базе данных и памяти при каждом входе в административную панель.

  3. Разделение сети: Возможно, стоит разделить вашу сеть на несколько отдельных инсталляций, если это соответствует вашим бизнес-целям. Это снизит нагрузку при доступе к административной панели каждой сети.

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

  5. Дополнительный аудит и разработка: Вызовите профессионального разработчика, специализирующегося на WordPress, для проведения анализа и оптимизации части кода, отвечающей за переключение между сайтами.

Эти шаги помогут минимизировать проблемы с памятью в WordPress Multisite и обеспечат более стабильную работу административной панели, особенно с учетом специфики вашей сети сайтов.

Оцените материал
Добавить комментарий

Капча загружается...