Поддержка → BuddyPress → Нагрузка на сервер WP+BP и 3т хостов в сутки.
Нагрузка на сервер WP+BP и 3т хостов в сутки.
-
Решил обновить свой новостной блог и параллельно перевел его на новый хостинг. Поставил новую тему и BaddyPress.
В итоге сайт начал тормозить конкретно. Раньше стоял на виртуальном хостинге + WPSuperCaсhe и без BaddyPress и все было нормально. А сейчас перевел сайт на VPS 2 000 МГц Память 1 024 Мб/ Сервер просто заваливался, пока не поставил скрипт MaxCache. После него нагрузка стала меньше, от 45% до 95% примерно. Потом поставил Pure PHP Localization — что снизило нагрузку на 10-15%. В итоге стало 25-35 до 85%
Нагрузку смотрю через SSH и команду top.
Но все равно нагрузка большая и порой подвисает всё — как можно еще облегчить WP+BP? Что можно предпринять?
-
Что на стороне сервера — попробуйте поковырять именно настройки apache2/nginx.
Теперь заблочили аккаунт и написали:
Вы являетесь владельцем услуги виртуального сервера VPS Уведомляем Вас, что Ваш аккаунт создает критическую нагрузку на дисковую подсистему.
Рекомендуем Вам оптимизировать использование ресурсов. В противном случае мы будем вынуждены заблокировать услугу.Проблемные запросы к серверу MySQL:
pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w | pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNE | pravda| localhost | pravda | Query | 0 | Copying to tmp table | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w | pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w |
Три из четырёх проблемных запросов, похоже, выполняет плагин Simple Tags:
http://plugins.trac.wordpress.org/browser/simple-tags/tags/2.2/inc/class.client.related_posts.php#L279Спасибо Сергей! Сейчас отключу СимплТагс — посмотрим может проблемы снимуться.
Отключение плагина Simple Tags: заметно помогло — нагрузка снизилась на 10-15%! Но саппорт всёравно негодует. Говорит этого недостаточно — необходимо убрать:
| 4362 | pravda | localhost | pravda | Query | 1 | Copying to tmp table | SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts. | | 4366 | pravdat | localhost | pravda | Query | 1 | Copying to tmp table | SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts. |
Даже не знаю что это за запросы.
Вот прочитал про eAccelerator — если его включить — поможет в моём случае?
Я использую xCache. Мне здорово помогает. Но он только для php.
База все равно слабое место.Для базы — кеширующий плагин запросов к базе: DB Cache Reloaded Fix
Или Memcache на стороне сервера.
Я бы шаманил с настройками самого mysqld, а не ставил плагин, ибо не уверен, что внешнее кэширование лучше нативного, особенно в случае монопольного использования mysqld. А для освобождения памяти вполне хорош eAccelerator. И переход на 32-разрядную систему 🙂 Кстати, некоторые виртуальные сервера на дисковых операциях тормознее по сравнению с железными в несколько раз, так что дисковое кэширование может оказаться не столь уж и полезным. В любом случае, теория теорией, а практика — критерий истины. То бишь, ставить и смотреть на результат.
А DB Cache Reloaded Fix с Pure PHP Localization не пересекается?, а то последний уже стоит. Или они разные вещи делают? Сейчас попробую поставить. — посмотрим 🙂
Саппорт сначало успокоил что все хорошо а потом прислал:
Нагрузка идет на жесткий диск, по этому мониторить ее из VPS-сервера нет возможности. Нагрузку создает MySQL.Примеры запросов:
95-163-17-151:/# mysqladmin pr -uroot -p +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 214921 | pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w | | 214924 | pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNE | | 214931 | pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w | | 214940 | pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w | | 214944 | root | localhost | | Query | 0 | | show processlist | +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 214921 | pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w | | 214924 | pravda | localhost | pravda | Query | 0 | Creating tmp table | SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNE | | 214931 | pravda | localhost | pravda | Query | 0 | Opening tables | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w | | 214945 | root | localhost | | Query | 0 | | show processlist | +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 214921 | pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts. | | 214924 | pravda | localhost | pravda | Query | 0 | removing tmp table | SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts. | | 214931 | pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w | | 214946 | root | localhost | | Query | 0 | | show processlist | +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+------------+-----------+-----------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 214921 | pravda | localhost | pravda | Query | 0 | Copying to tmp table | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w | | 214931 | pravda | localhost | pravda | Query | 0 | statistics | SELECT p.post_title, p.comment_count, p.post_date, p.ID, COUNT(tr.object_id) AS counter FROM w | | 214947 | root | localhost | | Query | 0 | | show processlist | +--------+------------+-----------+-----------+---------+------+----------------------+----------------- --
А DB Cache Reloaded Fix с Pure PHP Localization не пересекается?
Нет. Pure PHP Localization влияет только на работу с файлами перевода, запросы к базе он не кеширует.
Ага, поставил вместе — включил — работает — и даже вроде на CPU нагрузка меньше стала 🙂 А к другим логам у меня нет доступа. Сейчас посмотрим что скажет саппорт. Что угодно лишь бы не отключали только сайт.
Кстати вот сайт http://www.pravda-tv.ru
Юрий у меня к сожалению нет доступа к настройкам 🙁 . Это наверное если только переходить на другой тарифный план с полностью выделеным серваком, или как это называется.
Ой Юрий, а мне ваш плагин Belavir однажды помог хакера вычислить и все его гадости с сайта убрать. Низкий вам поклон за плагин и за добро!
Зашел на вашу страничку через профиль — и вспомнил что когдато качал от вас плагин.
- Тема «Нагрузка на сервер WP+BP и 3т хостов в сутки.» закрыта для новых ответов.