Відстежуємо повільні запити або чому гальмує web-сервер

Відстежуємо повільні запити або Чому гальмує Web-сервер

Бувають ситуації, коли Web-сервер гальмує, повільно видає сторінки, а що саме є причиною, незрозуміло. Перше що приходить в голову - поставити в скриптах контрольні точки, в яких фіксувати час виконання скриптів. Справа ця довга і важка (а при великому навантаженні ще й здатне привести до зависання). Тому спочатку краще спробувати вбудовані засоби Apache і MySQL: mod_status і лог повільних запитів.

Оскільки найчастіше джерелом проблем бувають запити до бази даних, то почати слід з включення балки повільних запитів. Для цього в файл my.cnf (в секцію [mysqld]) прописуємо:

Якщо таких запитів занадто багато, можна спробувати збільшити long-query-time.

Бувають ситуації, коли повільна робота сервера, а пов'язані з повільною роботою самих скриптів (наприклад, через помилки логіки скрипта). Типові ознаки: в балці повільних запитів нічого підозрілого не спостерігається, а команда top показує, що процесор сильно завантажений і в пам'яті висить більше десятка процесів httpd.

LoadModule status_module modules / mod_status.so

Тут / server-status - це URL, за яким буде доступна сторінка статистики. З точки зору безпеки таку інформацію вкрай небажано показувати стороннім людям, тому слід обмежити доступ або по IP (як в даному прикладі), або паролем (це робиться так само, як для звичайного каталогу за допомогою auth_user), якщо ж це з якихось причин робити небажано, то хоча б вказати замість / server-status щось трудноугадиваемое.

Використання цих можливостей у багатьох випадках дозволить виявити повільні запити без великих правок в коді.

Ще немає відгуків

Схожі статті