Поддержка BuddyPress Нагрузка на сервер WP+BP и 3т хостов в сутки.

  • Решено pravdatv

    (@pravdatv)


    Решил обновить свой новостной блог и параллельно перевел его на новый хостинг. Поставил новую тему и BaddyPress.
    В итоге сайт начал тормозить конкретно. Раньше стоял на виртуальном хостинге + WPSuperCaсhe и без BaddyPress и все было нормально. А сейчас перевел сайт на VPS 2 000 МГц Память 1 024 Мб/ Сервер просто заваливался, пока не поставил скрипт MaxCache. После него нагрузка стала меньше, от 45% до 95% примерно. Потом поставил Pure PHP Localization — что снизило нагрузку на 10-15%. В итоге стало 25-35 до 85%
    Нагрузку смотрю через SSH и команду top.
    Но все равно нагрузка большая и порой подвисает всё — как можно еще облегчить WP+BP? Что можно предпринять?

Просмотр 14 ответов — с 1 по 14 (всего 14)
  • Что на стороне сервера — попробуйте поковырять именно настройки 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 |
    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Три из четырёх проблемных запросов, похоже, выполняет плагин 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 на стороне сервера.

    Модератор Yuri

    (@yube)

    Я бы шаманил с настройками самого 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                                                                                     |
    +--------+------------+-----------+-----------+---------+------+----------------------+-----------------
    
    --

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    А DB Cache Reloaded Fix с Pure PHP Localization не пересекается?

    Нет. Pure PHP Localization влияет только на работу с файлами перевода, запросы к базе он не кеширует.

    Ага, поставил вместе — включил — работает — и даже вроде на CPU нагрузка меньше стала 🙂 А к другим логам у меня нет доступа. Сейчас посмотрим что скажет саппорт. Что угодно лишь бы не отключали только сайт.

    Кстати вот сайт http://www.pravda-tv.ru

    Юрий у меня к сожалению нет доступа к настройкам 🙁 . Это наверное если только переходить на другой тарифный план с полностью выделеным серваком, или как это называется.

    Ой Юрий, а мне ваш плагин Belavir однажды помог хакера вычислить и все его гадости с сайта убрать. Низкий вам поклон за плагин и за добро!

    Зашел на вашу страничку через профиль — и вспомнил что когдато качал от вас плагин.

Просмотр 14 ответов — с 1 по 14 (всего 14)
  • Тема «Нагрузка на сервер WP+BP и 3т хостов в сутки.» закрыта для новых ответов.