Поддержка услуг » База знаний » Виртуальный хостинг » Что происходит при превышении лимитов нагрузки на хостинге?
 Что происходит при превышении лимитов нагрузки на хостинге?
Решение

На виртуальном хостинге действуют 2 лимита нагрузки:

  • нагрузка на CPU веб-сервера;
  • нагрузка на CPU сервера MySQL.

Нагрузка каждого клиента на CPU веб-сервера измеряется системой Process accounting в ОС Linux (подробнее).

Единица измерения - cp (cpu points) - количество минут, которые работали бы все задачи пользователя, нагружая одно ядро на 100%.

nobody                               2646 1969622.74re      4.79cp     4478k
p777                                 252  182801.97re       4.35cp    43802k
p888                                 191 3925346.01re       2.43cp    36405k
p999                                 142     990.24re       2.41cp    41263k
...

В данном примере процессы пользователя p777 работали 4.35 минуты.

Собранные данные каждый час обнуляются и записываются в базу данных биллинга. Если заказ за прошедший час превысил часовую норму нагрузки своего тарифа (1/24 ≈ 4.2%), следующий час процессы работают с пониженным приоритетом относительно других заказов (nice level). При уменьшении нагрузки, приоритет восстанавливается.

Такой алгоритм позволяет не останавливать работу сайтов, если им временно требуется больше ресурсов (например, при индексации поисковыми системами), а просто немного замедлять.

По техническим причинам на серверах с панелями управления cPanel и ISPmanager невозможно менять nice level для скриптов конкретного заказа. Поэтому при регулярном превышении нагрузки на CPU веб-сервера, мы вынуждены будем остановить работу такого заказа.

Нагрузка на CPU сервера MySQL измеряется системой Percona User Statistics (подробнее) в секундах работы.

mysql> select substring_index(USER, '_', 1) `order`,sum(CPU_TIME) cpu 
from information_schema.user_statistics where user like 'p%' group by `order`
order by cpu desc limit 30; +-------+------+ | order | cpu | +-------+------+ | p777 | 241 | | p888 | 66 | | p999 | 62 |
...

В данном примере, SQL-запросы заказа p777 работали 241 секунду.

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

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

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




 Назад
 Relevate
 Поиск
 Свойства статьи
Главная | База знаний | Загрузки
Язык:

 Help Desk Software By Kayako SupportSuite v3.60.04