Каждому аккаунту на вашем хостинге выделено определенное количество процессов-рабочих, обрабатывающих запросы пользователей. Запросы поступают на сервер и становятся в очередь. Легкие запросы обрабатываются быстро, а тяжёлые проблемные — медленно, тормозя продвижение очереди. Когда длина очереди достигает определенной величины, сервер перестает принимать новые запросы, возвращая ошибку 503 (Service Temporarily Unavailable, сервис временно недоступен).
Возможные причины ошибки 503:
- Большое количество медленных запросов к MySQL. Наиболее распространенная причина.
- Загрузка больших файлов через PHP. Большие файлы лучше всего передавать напрямую, не используя для этого скрипты.
- Ваш сайт устанавливает соединения с удаленными серверами. Этого лучше избегать. Если же без этого не обойтись, то необходимо выставить маленький таймаут (timeout) на ожидание ответа и убедиться, что связь с удаленным сервером хорошая.
- Большое число «тяжелых» или испорченных компонентов или плагинов CMS. Проверьте все компоненты и плагины вашей CMS, отключая их по очереди, и найдите самые тяжелые или испорченные, при работе которых загрузка сайта замедляется.
- Долговыполняющиеся задания (например mambot для Joomla).
- Почтовая рассылка производящаяся из сайта в данный момент.
Большое число запросов к веб-серверу может быть также следствием:
- Ресурсы сайта разбиты (содержит ссылки) на слишком больше число файлов (картинки, таблицы стилей JS-скрипты), которые подгружаются через отдельные запросы. Постарайтесь объединять ресурсы в один файл, где это возможно.
- На сайте установлен элемент, который периодически посылает на сервер AJAX-запросы (например, чат).
- Сайт индексируют в текущий момент поисковые боты, сканирующие ресурсы (боты поисковых системы и другие).
- Использование элементов или скриптов с чужих сайтов (ссылки на картинки с других сайтов, информеры и т.д.).
- DDoS-атаки. Относительно редкое явление, на которые зачастую «списывают» появление 503 ошибки.