2.17.7. Перевищення споживання процесорних хвилин
Що таке процесорна хвилина?
Згідно з пунктом 4.2 умов надання послуг на віртуальному хостингу кожний хостинг-акаунт повинен використовувати не більше 100 процесорних хвилин на добу. Обмеження не поширюється на бізнес-хостинг, де надаються гарантовані ресурси відповідно до вибраного тарифу без обмежень за часом використання (процесорного часу).
Облік процесорних хвилин ведеться за допомогою лічильника в ядрі операційної системи Linux. Процесорний час рахується в цілому по хостинг-акаунту для всіх запущених у ньому процесів. Визначити, який саме сайт або скрипт хостинг-акаунта створює навантаження, на жаль, неможливо. Це пов'язано з тим, що операційна система Linux веде облік процесорного часу тільки за користувачами, а кожен хостинг-акаунт — це окремий користувач Linux. Для простоти розуміння можна провести аналогію з лічильником води в квартирі, коли відомо загальне споживання, але невідомо, яку кількість спожив кожен кран.
Процесорний час — це час, який витратив процесор сервера на обробку завдання. Процесорний час залежить тільки від виконаної роботи.
1 процесорна хвилина — це завантаження одного ядра процесора на 100% протягом однієї хвилини.
Перевищення цього ліміту означає, що сайти хостинг-акаунта спричиняють підвищене навантаження на сервер і можуть негативно впливати на роботу та продуктивність хостинг-акаунта.
Усі ресурси сервера розподіляються між клієнтами, які перебувають на цьому сервері. Якщо один клієнт використовує набагато більше ресурсів сервера, ніж інші, це призводить до того, що якість послуг хостингу для інших клієнтів хостингу падає. У зв'язку з цим ми змушені контролювати ресурси, які споживаються користувачами.
Кількість сайтів та їхня відвідуваність безпосередньо не впливають на споживання ресурсів. Можна створити одну сторінку, яка за відвідуваності 100 осіб на добу використовуватиме 100% ресурсів сервера, а можна створити сайт, який оброблятиме 100000 запитів на добу і створюватиме навантаження в 50 процесорних хвилин.
Процес обмеження ресурсів повністю автоматизований і поширюється на всіх клієнтів.
Що відбувається при перевищенні навантаження
- Система раз на добу перевіряє кількість процесорних хвилин, які були використані веб-сервером та MySQL-сервером.
- Якщо навантаження на веб-сервер або MySQL-сервер за добу перевищило 100 процесорних хвилин, у системі створюється інцидент і на пошту та в підключені месенджери надсилається сповіщення про перевищення.
- Раз на день система перевіряє показники навантаження за останній тиждень.
- Якщо навантаження не зменшується, до хостинг-акаунта поступово починають застосовуватися обмеження.
- Обмеження необхідні для того, щоб утримати навантаження в межах допустимих 100 процесорних хвилин.
- Обмеження застосовуються не відразу після створення інциденту, а коли не вжито необхідних заходів і навантаження не зменшується протягом кількох днів.
- Обмеження застосовуються не частіше ніж один раз на день залежно від динаміки навантаження за попередні дні.
- При кожному посиленні обмежень надсилається сповіщення.
- Якщо навантаження зменшується, обмеження поступово знімаються.
- У разі значного перевищення навантаження (більш ніж у 2 рази від допустимого) хостинг-акаунт переноситься на спеціальний сервер, звідки можна буде повернутися лише після вирішення проблеми з навантаженням.
- Якщо навантаження перевищується більше ніж 14 днів, для хостинг-акаунта додатково починає застосовуватися обмеження на кількість запитів.
- Якщо навантаження залишається в межах норми протягом 7 днів + кількість інцидентів за півроку * 2, проблема вважається вирішеною і інцидент автоматично закривається.
- Наприклад, якщо за останні півроку це перший інцидент, то період очікування становитиме 7 днів (7 + 0 * 2), якщо раніше був 1 інцидент — 9 днів (7 + 1 * 2), 2 інциденти — 11 днів (7 + 2 * 2), тощо.
- На будь-якому етапі можна змінити тариф на бізнес-хостинг і тим самим швидко вирішити проблему.
Варіанти вирішення
Можливі варіанти вирішення проблеми з перевищенням навантаження:
- Проаналізувати можливі причини виникнення проблеми.
- Скористатися стандартними рекомендаціями щодо зменшення навантаження.
- Перейти на бізнес-хостинг.
Зверніть увагу, що споживання процесорних хвилин може залежати від багатьох факторів, зокрема від логіки роботи сайтів, якості коду тощо, тому надати універсальне рішення або конкретні рекомендації щодо оптимізації неможливо. Для виявлення причин та усунення проблеми з перевищенням навантаження слід звернутися до профільних фахівців у сфері розробки сайтів.
Чи можна докуповувати процесорні хвилини?
На віртуальному хостингу — ні. Обмеження у 100 процесорних хвилин на добу діє для всіх тарифів віртуального хостингу.
Якщо ресурсів віртуального хостингу недостатньо, можна розглянути можливість переходу на бізнес-хостинг, VPS або виділений сервер, де немає обмежень на процесорний час — ви будете обмежені лише ресурсами вибраного тарифу або сервера і зможете їх використовувати без обмежень за часом.
Однак, якщо в одному хостинг-акаунті розміщено одразу кілька сайтів, кожен з яких окремо не перевищував би ліміти, то альтернативним варіантом може бути замовлення додаткових хостинг-акаунтів та перенесення сайтів на них. Наприклад, в одному хостинг-акаунті розміщено два сайти, кожен з яких споживає приблизно по 70 процесорних хвилин на добу. У сумі навантаження буде вище допустимого, але якщо замовити додатковий хостинг-акаунт і перенести на нього один із сайтів, то в результаті замість одного хостинг-акаунта з перевищенням навантаження вийде два хостинг-акаунти без перевищень.
Я вирішив проблему з навантаженням
Якщо ви вирішили питання з навантаженням, то на діаграмах навантаження на веб-сервер та MySQL-сервер не повинно бути значень більше 100 процесорних хвилин.
Якщо навантаження за останню повну добу не перевищує 100 процесорних хвилин, то встановлені обмеження поступово знімаються і через деякий час інцидент автоматично закривається.