2.4.3.6. Ошибка 503 Service Temporarily Unavailable

Каждому хостинг-аккаунту на сервере выделено количество процессов-рабочих, обрабатывающих запросы пользователей. Запросы поступают на сервер и становятся в очередь. Лёгкие запросы обрабатываются быстро, а тяжёлые и проблемные — медленно, тем самым замедляя продвижение очереди. Когда длина очереди достигает определённой величины, сервер перестаёт принимать новые запросы и возвращает ошибку «503 Service Temporarily Unavailable» (сервис временно недоступен).

Наиболее распространённые причины проблемы и возможные пути решения:

  • Большое число тяжёлых или испорченных компонентов CMS:
    • Проверьте все компоненты и плагины вашей CMS, отключая их по очереди, и найдите самые тяжёлые или испорченные, при работе которых загрузка сайта замедляется. По возможности откажитесь от таких компонентов или поищите более быстрый аналог. Также деинсталлируйте все ненужные компоненты, которые вы не используете или использование которых не обязательно.
    • Запуск скрипта почтовой рассылки лучше всего выполнять через cron во время наименьшей нагрузки на сервер, например ночью. При этом следует учитывать ограничения, установленные правилами предоставления услуг хостинга относительно количества писем в день и времени работы PHP-скрипта.
  • Большое количество медленных запросов к MySQL:
    • Установите в движок кеширующие компоненты, которые могли бы сократить число SQL-запросов.
    • Оптимизируйте SQL-запросы.
    • Проиндексируйте таблицы базы данных по столбцам, которые используются в выборке.
    • Если ничего не помогает, возможно, стоит сменить движок на более оптимальный.
  • Большое число запросов к веб-серверу:
    • Загружаемый ресурс разбит/содержит ссылки на слишком большое число файлов (картинки, таблицы стилей, JS-скрипты), которые подгружаются через отдельные запросы. Постарайтесь объединять ресурсы в один файл, где это возможно.
    • На сайте установлен элемент, который периодически посылает на сервер AJAX-запросы (например, чат). Количество запросов зависит не только от числа посетителей, но и от их привычки открывать несколько вкладок в браузере.
    • Боты-индексаторы, сканирующие ресурсы сайтов (поисковые системы, Sape и другие).
    • Использование элементов ресурсов или скриптов на чужих сайтах (ссылки на картинки, скрипты-информеры).
  • Нехватка оперативной памяти:
    • Следить за использованием оперативной памяти можно на графиках потребления серверных ресурсов.
    • Ошибка возникает, когда вся оперативная память хостинг-аккаунта уже занята и скрипты пытаются выделить ещё, но не могут.
    • Причины могут быть в недостаточной оптимизации скриптов сайта, слишком большом количестве запросов и др.
  • Достижение лимита на количество одновременных процессов:
    • Следить за количеством процессов можно на графиках потребления серверных ресурсов.
    • Ошибка возникает, когда в хостинг-аккаунте одновременно запускается слишком много процессов.
    • Причины могут быть в неоптимальной работе самого сайта, большом количестве запросов при недостаточно быстрой работе скриптов (например, они выполняются лишнюю работу, обрабатывают слишком большой объём данных или в процессе работы обращаются к сторонним серверам, которые вызывают задержку) и др.

Также причиной может быть нехватка объёма памяти, выделенного сайту под OPcache.

Содержание

    (3)