Что такое нагрузка, и с чем её едят

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

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

Нагрузка каждого клиента на CPU веб-сервера измеряется системой Process accounting в ОС Linux (подробнее). Единица измерения — cp (cpu points) — количество минут, которые работали бы все задачи пользователя, нагружая одно ядро на 100%.

{code}p777 252 182801.97re 4.35cp 43802k{/code}

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

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

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

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

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

{code}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 |
…{/code}

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

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

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

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *