Вопросы оптимизации

Главные вкладки

Аватар пользователя jeweller jeweller 10 апреля 2009 в 12:18

Нельзя сказать, чтобы оптимизация работы с базой данных меня вообще не интересовала, просто не возникало проблем с работой сайтов по причине небольшой посещаемости. Держу 2 сайта на одном аккаунте в РБК (тариф позволяет до 5 сайтов), в принципе всем доволен и даже хостинг компанию часто "защищал" на форумах. Для моей низкой посещаемости сайтов 200 (узкая тематика) и 50 (новый) посетителей соответственно не ожидал никаких проблем в ближайшее время. Однако хостер начал выдавливать на VPS, угрожая блокировкой и аргументируя такими цифрами:

По всему хостингу:
"Суммарное потребление ресурсов процессора за прошедшие 7 суток для всего хостинга (мин)."
Лимит: 500
Текущее: 2108.92
Потреблено: 421.78%

На VPS с такой посещаемостью сайтов как-то странно для меня переходить (хотя может я не прав-поправьте). Не вдаваясь в вопросы хостинга (решение сменить самое простое, но не факт, что самое лучшее) хочу разобраться в причинах сего.

Во-первых поставил модуль devel посмотрел на время формирования страниц вроде ничего страшного нет

например (случайные страницы), по одному сайту
Executed 629 queries in 268.77 milliseconds. Queries taking longer than 5 ms and queries executed more than once, are highlighted. Page execution time was 939.1 ms.

по другому
Executed 1174 queries in 911.68 milliseconds. Queries taking longer than 5 ms and queries executed more than once, are highlighted. Page execution time was 1928.79 ms.

но много запросов с продолжительностью выше 5 ms (не знаю плохо это или нормально - по умолчанию в devel стоит именно эта цифра для в качестве критерия для выделения)

кроме того на одном из сайтов всегда есть запрос locale_refresh_cache с большой продолжительностью - от 60 ms и выше, а на другом сайте такого запроса вообще нет. Хотя я так понимаю это запрос от модуля стандартного модуля locale почему на одном есть, а на другом нет такого запроса для меня загадка. Может кто знает ответ?

Кроме того Зашел /admin/logs/status/sql и ужаснулся увидев страшные цифры (которые как я понял накопились с самого начала работы на аккаунте):

Производительность запросов

Переменная Значение Описание
Select_full_join 2731493 Количество присоединений, выполненных без использования индекса; должно быть нулем.
Select_range_check 119043 Количество присоединений, выполненных без использования индекса; должно быть нулем.
Sort_scan 82795078 Количество сортировок, выполненных без использования индекса; должно быть нулем.
Table_locks_immediate 968406560 Количество раз, когда блокировка была нужна немедленно.
Table_locks_waited 901258 Количество раз, когда серверу приходилось ожидать блокировку.

Информация о кеше запросов

Переменная Значение Описание
Qcache_queries_in_cache 5078 Количество обращений в кеш запросов.
Qcache_hits 1487288464 Количество раз, когда MySQL находил в кеше предшествующий результат.
Qcache_inserts 550186929 Количество раз, когда MySQL добавлял запрос в кеш (промахи).
Qcache_lowmem_prunes 408956844 Количество раз, когда MySQL приходилось удалять запросы из кеша из-за нехватки памяти. В идеале равно нулю.

Как ЭТО "лечить" вообще честно говоря не понимаю и подробной информации как бы не нашел. В чем может быть причина? Не грамотная работа модулей Drupal? Плохая база у хостера? Или и что-то еще?

Буду признателен за ответы.

Комментарии

Аватар пользователя alisa alisa 10 апреля 2009 в 13:35

"jeweller" wrote:
Однако хостер начал выдавливать на VPS, угрожая блокировкой и аргументируя такими цифрами:

Пардон, это договором предусмотрено?

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 10 апреля 2009 в 15:24

Насчёт "и ужаснулся увидев страшные цифры", когда у меня был виртуальный хостинг от рбк, я тоже зашёл и ужаснулся, потом понял что друпал показывает статистику по всему mysql серверу, а не конкретно по твоему юзеру и своей БД

Аватар пользователя jeweller jeweller 10 апреля 2009 в 15:30

"Debugger" wrote:
установка apc/eaccelerator?

Это виртуальный хостинг, я управлять php не могу. установлены ли там apc/eaccelerator не в курсе. Да как бы не только в этом вопрос. Ведь судя по таким параметрам как Sort_scan тут еще дело в неоптимизированных запросах. А почему так есть я не знаю.

Аватар пользователя jeweller jeweller 10 апреля 2009 в 15:32

"RxB" wrote:
Насчёт "и ужаснулся увидев страшные цифры", когда у меня был виртуальный хостинг от рбк, я тоже зашёл и ужаснулся, потом понял что друпал показывает статистику по всему mysql серверу, а не конкретно по твоему юзеру и своей БД

если это так, то это гуд. А это достоверная информация и как ее проверть?

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 10 апреля 2009 в 16:15

Насчёт достоверно не скажу, так как сие было летом, но факт в том что на чистом хосте, куда только что был поставлен друпал показывало тоже запредельные цифры

Аватар пользователя jeweller jeweller 10 апреля 2009 в 16:38

"Химический Али" wrote:
А указать узкие места в ваших сайтах хостеру религия не позволяет?

видимо так. вот основной лейтмотив

В последнее время Ваш хостинг сильно перегружает сервер
(!) Настоятельно рекомендуем НЕЗАМЕДЛИТЕЛЬНО оптимизировать скрипты сайта (самостоятельно либо путем обращения к их разработчикам) (!)
(!!) Вопрос снижения нагрузки необходимо решить в кратчайшие сроки.
(!!!) В случае, если в ближайшие дни нагрузка останется критичной, Ваш хостинг МОЖЕТ БЫТЬ ЗАБЛОКИРОВАН БЕЗ ПОВТОРНОГО УВЕДОМЛЕНИЯ.

предствил себе как я обращаюсь к разработчикам с целью оптимизировать работу скриптов со ссылкой на письмо хостера Smile

Аватар пользователя jeweller jeweller 10 апреля 2009 в 17:24

а с запросом locale_refresh_cache кто нибудь может пояснить?

Почему на одном сайте этот запрос выполнятеся, а на другом его вообще нет? Версии drupal - одинаковые.