2.17.8. Аналіз причин високого споживання ресурсів
Основні причини навантаження
Кількість запитів і робота скриптів сайту
Однією з головних причин високого навантаження на сервер є підвищена кількість запитів до сайту в поєднанні з недостатньою ефективністю коду його скриптів, що виконуються для кожного з відвідувачів. Таким чином, чим ефективніше працюють скрипти сайту для кожного відвідувача, тим більше навантаження сайт зможе прийняти в цілому.
Також на рівень відвідуваності сайту впливають пошукові боти. Тому при індексації сайту пошуковими службами може виникати підвищене навантаження на сервер. Задати параметри індексації для вашого сайту з метою зниження числа запитів від бота можливо через файл robots.txt або веб-майстер на стороні пошукового сервісу.
При необхідності для зниження навантаження і проведення технічних операцій можна обмежити доступ до сайту.
Запити до бази даних
На рівень навантаження можуть впливати запити до бази даних з боку скриптів сайту.
Запити до бази даних не повинні виконуватися більше 15 секунд. Всі запити, які виконуються більш 5 секунд, можна подивитися в розділі «Повільні запити».
В даному випадку необхідно оптимізувати базу даних. З деякими прикладами оптимізації можна ознайомитися тут та тут.
Шкідливий код і вихідні з’єднання
Небажаному навантаженню на сайт і сервер можуть створювати шкідливі скрипти (при їх наявності).
Перевірити наявність заражених файлів можна, виконавши антивірусну перевірку хостинг-акаунта або скориставшись сторонніми інструментами.
Шкідливі скрипти можуть створювати зовнішні з’єднання на інші сайти, що може викликати підвищений час обробки запитів сайтом. Зі списком спроб вихідних з’єднань можна ознайомитися в розділі «Вихідні з’єднання».
Способи аналізу навантаження
Чи можна десь подивитися, які саме сайт або скрипти створюють підвищене навантаження?
На жаль, ні. Інформація про те, як виконується підрахунок процесорного часу, представлена тут.
Часто причини проблеми можна визначити за допомогою ручного аналізу логів доступу сайту та інформації з розділів «Навантаження на веб-сервер» та «Навантаження на MySQL-сервер».
Ручний аналіз
Список веб-сервера і графіки навантаження для аналізу можна отримати в розділі «Мої сайти → Логи доступу сайту» та «Мої сайти → Статистика запитів».
При аналізі варто звернути особливу увагу на скрипти, що використовують POST- і багато AJAX-запитів. Такі запити, як правило, викликають найбільше навантаження в зв’язку з особливостями їх технології.
Приклад навантаження на веб-сервер
Причиною подібного стрибка споживання ресурсів, як правило, є DDoS-атака або сканування сайту з метою злому.
Необхідно проаналізувати логи сервера, особливу увагу звертаючи на нетипові POST-запити.
Для захисту сайтів на WordPress від атак на xmlrpc.php
та wp-login.php
може допомогти виконання пунктів 8-10 з інструкції.