процесорний час
Матеріал з 1GbWiki.
Процесорний час - це час, який витратив процесор сервера на обробку завдання. За базове час можна взяти загальний час виконання завдання (генерації сторінки тощо), проте, в нього не входить час, який було витрачено на генерацію інших паралельних завдання або очікування зовнішніх подій.
Процесорний час залежить тільки від виконаної роботи. У разі, якщо через завантаженість сервера або через очікування (наприклад, відповіді від mySQL сервера) час виконання скрипта змінюється, реальне процесорний час (тобто навантаження на процесор) залишається постійним.
[Ред] Приклади
Найкраще пояснити цей термін прикладами.
- На вашій домашній машині ви архівували великий файл. Це зайняло 40 секунд. Загальний час - 40 секунд, процесорний час - 40 секунд.
- Аналогічно, але два файли одночасно. Загальний час завершення процесів - 80 секунд, процесорний час кожного - 40 секунд.
- На порожньому сервері виконується скрипт, час генерації сторінки - 2 секунди. Процесорний час - 2 секунди.
- На сервері виконується одночасно 10 таких скриптів. Час генерації сторінки буде 20 секунд, проте, процесорний час як і раніше 2 секунди.
- На сусідньому сервері сталася перевантаження mySQL сервера, в результаті чого ваш скрипт працював не 2 секунди, а 45 секунд. Час генерації сторінки - 45 секунд, процесорний час як і раніше 2 секунди.
[Ред] Облік процесорного часу
Саме процесорний час - той ресурс, який може закінчитися на сервері. Необхідний його облік. При цьому, як видно з прикладів, не має значення, скільки саме працював ваш скрипт - важливо, яку саме роботу він при цьому робив, тобто процесорний час, необхідне для роботи скрипта. Нормальною кількістю часу на одну сторінку є 10 - 100 мс (тобто в 10 - 100 разів менше, ніж одна секунда). Оскільки сервер одночасно обробляє десятки запитів, час генерації сторінки становить зазвичай в межах однієї секунди. Це нормально.
[Ред] Як проводиться облік
Веб-сервер веде лог-файл процесорного часу, який було витрачено на кожен запит. Його повідомляє операційна система. Потім дані підсумовується для кожного сайту в межах однієї години. Якщо сумарне процесорний час для вашого сайту склало 1 хвилину в 1 годину, це означає, що в цей час ви витратили 1/60 = 1.7% ресурсів одного процесора сервера.
[Ред] Повна потужність сервера
Сервера володіють різною кількістю процесорів. На сервері, де 8 процесорів (точніше, більш реалістично, 2 процесора по 4 ядра в кожному - такий сучасний сервер 1Gb), загальне процесорний час може досягати 800%, це означає, що ви на 100% завантажили все 8 логічних процесорів.
Облік ведеться саме по ядрах процесорів, так як в одному сервері може бути від 1 до 8 незалежних ядер, при цьому цифра «3.5% від ресурсів сервера» може означати потужність, яка фактично відрізняється в 8 разів в залежності від конфігурації сервера, що було б некоректно.
Для порівняння наших тарифів з тарифами інших провайдерів необхідно робити на це поправку. Наприклад, тариф П-15, що забезпечує навантаження до 15% на один процесор, еквівалентний загальній навантаженні на сервер в розмірі 3.75%, якщо інший провайдер вказує її для 4-х процесорного сервера цілком.
Таким чином, навантаження в межах 3.5% - 7.5% (межа стандартних тарифів) за цим показником відповідає прийнятим для віртуального хостингу меж, вираженим в навантаженні від всього сервера - зустрічаються умови від 1% до 3%. Загальний межа потрібно спочатку помножити на 8 - загальна кількість процесорів в поточному сервері 1Gb - а потім поділити на середня кількість процесорів для встановленої межі у порівнюваного провайдера. У переважній більшості згадується "машина класу Dual Xeon 3 ГГц", що становить 4 логічних процесора.