Производительность: BuddyPress – цифры, советы. Часть 2

Сегодня я напишу о том опыте, который у меня появился при работе с MU и .

Для начала напишу краткое резюме. Мы знаем, на что способен BP, многие из нас скачали, установили и настраивают его под себя. Сама по себе платформа очень замечательно выглядит в плане функциональности и потенциала, но в основном этот функционал связан с WordPress, на основе которого и работает все. Мне нравится возможность взаимодействия с пользователями, достаточная гибкость (при условии знания -кода), но большим минусом является тяжелая настройка производительности.

Вот о ней и поговорим в очередной раз.

Вы установили WordPress MU – прекрасно, будьте готовы к тому, что у вас размер php-памяти уменьшился на добрых два десятка (ведь никто не ставит его пустым – всегда куча плагинов сверху, многие идут в папку /mu-plugins/). На большинстве -планах размер памяти, отведенный для обработки ограничен 32 метрами (как выяснилось). Причем для поддоменов иногда бывает еще меньше. При установке BuddyPress увеличивается нагрузка на , так как все его файлы загружаются в при каждом посещении человеком вашего сайта. В распакованном виде “чистый” BuddyPress вес полтора мегабайта. Если поставили набор плагинов от Nicola Grecko – то это дополнительные почти 2 Мб.

Вот вам данные для примера, взятые с моего демо-сайта для BuddyPress.

При нулевом WPMU потребление – 17,8 Мб. При подключении BuddyPress+ – 20 Мб (данные для WPMU 2.7 и беты BuddyPress. На данный момент числа в полтора раза больше!).

Я взял за основу то, что чаще всего будут посещать главную страницу сайта, свой профиль, свой , страницу групп и блогов и .

На сайте не активировано ни одного плагина WordPress (вообще). Делал я так специально для репрезентативности. Но установлена моя версия BuddyPress и весь набор плагинов от Nicola Grecko. При загрузке главной страницы потребление памяти – 20 Мб (это при пустом WordPress MU!) и 99 запросов в базу данных. Какие виджеты создают их – вы прекрасно можете увидеть.

При первой за сессию загрузке страницы профиля количество запросов – около 300!!! Все последующие разы – чуть больше 100 (103-108). Такое большое первое значение обусловлено работой встроенного кеширования запросов в . Для вас это означает вот что – большое количество уников – будьте готовы к большим требованиям производительности. А памяти php при первом разе – 21 метр, при последующих – около 20.

При посещении своего блога, отличного от главного, показатели примерно одинаковы для всех пользователей, разница возникает лишь из-за объема записей на главной (чем больше записей – тем медленнее грузит и больше запросов), память в районе 20-21 Мб.

При посещении страницы (своей или чужой- разницы практически нет) количество запосов к БД – 145-150 и память чуть больше 20 Мб. Это при условии настроенных виджетов для групп в плагинах BPDEV. Данные не кешируются, поэтому такое количество будет каждый раз. Кстати, при посещении форума ситуация примерно такая же, только базе легче чуток (на 20 запросов).

Как видим, ситуация для одного человека на сайте – терпимая. А что будет при 150 одновременно гуляющих по страницам?

Во-первых, вы столкнетесь рано или поздно с проблемой php memory limit. Мне пришлось на одном из сайтов клиентов увеличивать это значение до 64 мегабайт лишь для того, чтобы я мог активировать обычные плагины WordPress сверх уже настроенного BuddyPress. Сделал я это прописав в файле .htaccess (в самом начале файла):

php_value memory_limit 64M

Это сняло напряжение и ускорило работу сайта. Это может не всегда работать, но поставить такое нужно обязательно – иначе при более менее серьезном проекте вы заколупаете ваш саппорт хостинга. Кстати, не помешает сначала спросить у них, сколько у вас выделение памяти для php-скриптов, а уж потом прописывать этот код.

И кстати о хостинге. Если хотите держать хотя бы тысячу посетителей – забудьте о виртуальном хостинге. На первом этапе – при настройки и первичном завлечении его хватит, но потом начнется страх один по соотношению доступности сайта к его недоступности. Я советую минимум (виртуальный) выделенный сервер – вот тогда уже можно заниматься чем-то серьезным. У кого есть собственный сервак – проблем вообще не будет. Еще необходимым условием является собственный веб-сервер, что означает, что вы можете редактировать файлы httpd.conf и php.ini (желательно). Чем больше возможостей по настройке своего сервера – тем лучше для вашего сайта.

Теперь о кешировании. В самом BuddyPress оно присутствует, но работает только для активности пользователя и его друзей (то есть кешируется лишь его и друзей на сайте). Все остальное генерируется каждый раз при запросе. В своем предыдущем посте, посвященном производительности BuddyPress, я писал о том, что надо использовать для ускорения работы сайта. Так теперь я говорю абсолютно серьезно – без этого у вас ничего стоящего не получится!

Когда я устанавливаю связку WPMU+BuddyPress я предлагаю клиентам установить плагины, которые на мой взгляд необходимы сайту. Я обязательно ставлю кеширования, который настраиваю специально под работу с BuddyPress – он действительно облегчает сайта в целом [Я проверял]

Что помнил – написал, на пока вроде все. Задавайте вопросы, вдруг что – по возможности отвечу.


Пожалуйста, подождите. Комментарии загружаются.
Открыть Нечто !