Работа в поддержке хостинга в основном однотипная, большинство запросов от клиентов решаются по проработанной схеме, но иногда всё же приходится сталкиваться с нетривиальными проблемами. Тогда главная задача инженера — найти тот самый — единственно верный путь, который приведёт к её решению. В этой статье хочу рассказать о том, как мы столкнулись с плавающей ошибкой «HTTP Error 503. Service Unavailable» на нашем shared-хостинге, как пытались её отловить, провели диагностику и получили неожиданный финал.
Начало
Хостинг предоставляет пользователям типичный стек Linux + Apache + Mysql + PHP и оболочку для управления. В нашем случае это ISP Manager 5 business на базе Centos 7 с конвертацией в CloudLinux. Со стороны административной части, CloudLinux предоставляет инструменты для управления лимитами, а так же PHP-селектор с различными режимами работы (CGI, FastCGI, LSAPI).
В этот раз к нам обратился клиент со следующей проблемой. Его сайт на движке WordPress периодически начал отдавать 503 ошибку, о чём он нам и сообщил.
Не работает Ютуб на телевизоре СМАРТ ТВ LG
Коды ответа, начинающиеся с 50х, относятся к проблемам на стороне сервера. Это могут быть проблемы как самого сайта, так и веб-сервера, который их обслуживает.
Типичные ситуации, при которых мы получаем следующие ошибки:
- 500 Internal Server Error — довольно часто связана либо с синтаксическими ошибками в коде сайта, либо с отсутствующими библиотеками / не поддерживаемой версией PHP. Так же могут быть проблемы с подключением к базе данных сайта или неверными правами на файлы / каталоги
- 502 Bad Gateway — например, если Nginx ссылается на неправильный порт веб-сервера Apache или процесс Apache по какой-то причине перестал работать
- 504 Gateway Timeout — ответ от Apache не был получен в течение заданного в конфигурации веб-сервера времени
- 508 Resource limit is reached — превышен лимит, выделяемых пользователю ресурсов
При выполнении диагностики данных ошибок, первым делом проверяем журналы веб-сервера. Обычно, этого достаточно, чтобы определить виновника и исправить проблему.
Касаемо 503 ошибки в нашем случае, в логах мы видели запись:
[lsapi:error] [pid 49817] [client x.x.x.x:6801] [host XXX.XX] Error on sending request(GET /index.php HTTP/1.0); uri(/index.php) content-length(0): ReceiveAckHdr: nothing to read from backend (LVE ID 8514), check docs.cloudlinux.com/mod_lsapi_troubleshooting.html
На основании только этого лога, определить в чём может быть проблема не представлялось возможным.
Первичная диагностика
Изначально, мы проверили статистику превышения лимитов пользователем. Незначительные превышения были зафиксированы за предыдущие дни, но ошибки в журналах были свежие, более того они появлялись в журнале с периодичностью от одной до нескольких минут.
Так же мы изучили рекомендации CloudLinux, по приведённой в журналах ошибок ссылке.
Изменение каких-либо параметров результата не принесло.
Сайт использовал базу данных на сервере Mysql 5.7, который работает на этом же сервере в контейнере Docker. В логах контейнера присутствовали сообщения:
[Note] Aborted connection 555 to db: ‘dbname’ user: ‘username’ host: ‘x.x.x.x’ (Got an error reading communication packets)
Как раз, среди этих сообщений были сообщения о прерванном подключении исследуемого сайта. Это дало предположение, о том, что подключение к СУБД выполняется некорректно.
Для проверки мы развернули копию сайта на тестовом домене, сконвертировали базу данных сайта под нативную в Centos 7 версию СУБД 5.5.65-MariaDB. На тестовом сайте выполнили несколько сотен запросов с помощью утилиты curl. Ошибку воспроизвести не удалось. Но этот результат был предварительным и после конвертации БД на рабочем сайте проблема так и осталась.
Таким образом, проблема некорректного подключения к СУБД была исключена.
Следующим предположением было проверить — нет ли проблем с самим сайтом. Для этого подняли отдельный виртуальный сервер, на нём подняли максимально схожее окружение. Единственное существенное отличие — отсутствие CloudLinux. На тестовом сервере проблему воспроизвести не удалось. Итак, мы определили, что в коде сайта всё в порядке.
Тем не менее, пробовали так же отключать плагины WordPress, но проблема так же сохранялась.
В результате, пришли к тому, что проблема на нашем хостинге.
В ходе анализа журналов других сайтов было обнаружено, что проблема наблюдается на многих из них. Порядка 100 шт. на момент проверки:
/var/www/httpd-logs# grep -Rl «ReceiveAckHdr: nothing to read from backend» ./ | wc -l 99
В ходе тестирования обнаружили, что только что установленная чистая CMS WordPress также периодически выдаёт ошибку 503.
Примерно за 2 месяца до этого мы проводили работы по модернизации сервера, в частности изменили режим работы Apache с Worker на Prefork, с целью получить возможность использовать PHP в режиме LSAPI, вместо медленного CGI. Было предположение, о том, что это могло повлиять, либо требуются какие-то дополнительные настройки Apache, но вернуть обратно режим Worker мы уже не могли. В ходе изменения режима работы Apache выполняется изменение всех конфигов сайтов, процесс не быстрый и не всё могло пройти гладко.
Корректировка настроек Apache так же не дала желаемого результата.
Попутно искали схожие проблемы в поисковых системах. На одном из форумов участники утверждали, что проблема у хостера и нужно его менять, если проблему не решают. Звучит не очень оптимистично, когда ты находишься с другой стороны, но и клиента понять можно. Зачем ему нерабочий хостинг.
На данном этапе мы собрали имеющуюся информацию и результаты проведённых работ. С ними обратились в поддержку CloudLinux.
Детальная диагностика
В течение нескольких дней сотрудники поддержки CloudLinux вникали в проблему. В основном рекомендации были относительно установленных лимитов пользователей. Этот вопрос мы так же проверяли. При отключенных лимитах (Опция CageFS для пользователя) и с включенными лимитами в режиме PHP как модуль Apache проблема не наблюдалась.
Исходя из этого, было сделано предположение, что каким-то образом оказывает влияние CloudLinux. В итоге, к концу недели запрос был эскалирован на 3-ий уровень поддержки, но решения пока не было.
Попутно изучали документацию Apache по режимам работы CGI и LSAPI, подняли второй экземпляр Apache на сервере хостинга на другом порту с тестовым сайтом, исключили влияние Nginx, отправляя запросы напрямую к Apache и получая те же коды ошибок.
Сдвинуться с мёртвой точки помогла документация LSAPI, как раз по диагностике 503 ошибки:
www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:php:503-errors
В секции Advanced Troubleshooting предлагается выполнять трассировку найденных в системе процессов:
while true; do if mypid=`ps aux | grep $USERNAME | grep lsphp | grep $SCRIPTNAME | grep -v grep | awk » | tail -1`; then strace -tt -T -f -p $mypid; fi ; done
Команда была доработана, с целью записи всех процессов в файлы с указанием их идентификаторов.
При просмотре файлов трассировок, мы видим в некоторых одинаковые строки:
cat trace.* | tail . 47307 21:33:04.137893 — SIGHUP — 47307 21:33:04.140728 +++ killed by SIGHUP +++ .
Если взглянуть на описание структуры сигналов, отправляемых процессами, то увидим, что
pid_t si_pid; /* Sending process ID */
Указывает на идентификатор процесса, отправившего сигнал.
На момент изучения трассировок, процесса с PID 42053 в системе уже нет, поэтому в процессе захвата трассировок решили отслеживать так же процессы, отправившие сигнал SIGHUP.
Под спойлером описаны действия, которые позволили определить что это за процесс, а так же получить его трассировку и дополнительную информацию, о том, каким процессам он отправляет сигнал SIGHUP.
Методика трассировки
tail -f /var/www/httpd-logs/sitename.error.log
while true; do if mypid=`ps aux | grep $USERNAME | grep lsphp | grep «sitename» | grep -v grep | awk » | tail -1`; then strace -tt -T -f -p $mypid -o /tmp/strace/trace.$mypid; fi ; done
while true; do if mypid=`cat /tmp/strace/trace.* | grep si_pid | cut -d ‘
seq 1 10000 | xargs -i sh -c «curl -I http://sitename/»
Ждём пока в консоли 1 появятся сообщения, при этом в консоли 4 видим статус запроса с кодом ответа 503, прерываем выполнение в консоли 4.
В итоге, получили название процесса /opt/alt/python37/bin/python3.7 -sbb /usr/sbin/cagefsctl —rebuild-alt-php-ini
Данный процесс выполнялся в системе с периодичностью раз в минуту.
Делаем трассировку нескольких процессов cagefsctl, чтобы отследить хотя бы один от начала до конца:
for i in `seq 1 100`; do strace -p $(ps ax | grep cagefsctl | grep rebuild-alt-php-ini | grep -v grep | awk ») -o /tmp/strace/cagefsctl.trace.$(date +%s); done;
Далее изучаем что он делал, например:
cat /tmp/strace/cagefsctl.trace.1593197892 | grep SIGHUP
Так же были получены идентификаторы процессов, которые были завершены сигналом SIGHUP. Завершённые процессы были процессами PHP, выполняющимися в данный момент.
Полученные данные были переданы в поддержку CloudLinux с целью уточнить легитимность данного процесса и должен ли он работать с такой периодичностью.
Позже получили ответ, что работа команды /usr/sbin/cagefsctl —rebuild-alt-php-ini выполняется корректно, единственный нюанс в том, что команда выполняется слишком часто. Обычно вызывается при системном обновлении или изменении параметров PHP.
Единственная зацепка в данном случае осталась — проверить, кто является родительским процессом cagefsctl.
Результат не заставил себя долго ждать и какого же было наше удивление — родительским процессом для cagefsctl являлся процесс ispmgrnode. Это было немного странно, потому что уровень журналирования для ISP Manager был задан максимальным и в ispmgr.log не увидели вызов cagefsctl.
Теперь данных было достаточно, чтобы обратиться и в поддержку ISP System.
Итоги
Проблема была спровоцирована после выполнения обновления ISP Manager. В целом, обновление ISP Manager — штатная ситуация, но она привела к запуску процесса синхронизации, который завершался с ошибкой и перезапускался ежеминутно. Процесс синхронизации вызывал за собой процесс cagefsctl, который в свою очередь завершал процессы PHP.
Причиной зависания процесса синхронизации стали проведённые на хостинге работы по модернизации оборудования. За несколько месяцев до возникновения проблемы, в сервер был установлен PCI-e NVMe-накопитель, создан раздел XFS и смонтирован в каталог /var. На него были перенесены в том числе и файлы пользователей, но не обновились дисковые квоты. Опций монтирования было не достаточно, требовалось так же изменить тип файловой системы в параметрах ISP Manager, т.к. она вызывает команды обновления дисковых квот. Для Ext4 и XFS эти команды отличаются.
Таким образом, проблема дала о себе знать спустя несколько месяцев после проведения работ.
Выводы
Мы сами создали проблему, но это было не ясно до последнего момента. На будущее, будем стараться учесть как можно больше нюансов. Благодаря помощи более подготовленных коллег из поддержки CloudLinux и ISP System, проблема была решена. Теперь наш хостинг работает стабильно. А нами был получен опыт, который пригодится нам в будущей работе.
P.S.: Надеюсь, Вам было интересно ознакомиться с материалом статьи, а кому-нибудь она поможет быстрее решить подобную проблему.
- Хостинг
- Системное администрирование
- Отладка
Источник: habr.com
Код ошибки 503 на Youtube и как это исправить
Сообщение «код ошибки 503» на Youtube может возникать из-за проблем, связанных с браузером, установленных на него расширений и плагинов. Решения проблемы описаны в статье. Также описано решение проблемы, связанной с сообщением «ошибка, повторите попытку позже…»
Ошибка 503
Такая ошибка может возникать на сайте YouTube вне зависимости от устройства пользователя: смартфон, планшет или ноутбук. Ошибка может быть связана и программным обеспечением оборудования и по другой причине. Причиной может быть:
Первое, о чем стоит задуматься, это установить к какой именно проблеме может относиться эта ошибка.
Сервер
Ошибка подобного рода возникает по причине ограничения количества запросов пользователя. На каждом сервере может быть установлено такое ограничение. Запросы от людей поступают постоянно и собираются в очередь. Простые запросы проходят быстро, тяжелые – долго. Из-за медленных запросов может замедлятся движение очереди.
Если запросов в очереди на сервере стало больше максимального количества, то он не может принимать запросы. Об этом и сообщается в ошибке Service Temporarily Unavailable.
Хотя ошибка 503 может появляться и по причине того, что сервис не доступен. Также эта ошибка может выйти и на других сайтах. Причиной для этого могут послужить:
В случае с YouTube, который является гигантом среди всех медиа сайтов, ошибки подобного рода для него крайняя редкость. Но, если вдруг такое случится, то исправить это можно, просто обновив страницу, максимум подождав полминуты.
Проблемы, связанные с компьютером
Если во время очередного просмотра видео на Ютубе, пользователь увидит сообщение «код ошибки 503» или «Ошибка. Повторите попытку позже. Идентификатор воспроизведения…», то проблема может быть в компьютере, смартфоне, планшете или программном обеспечение, установленном на нем.
Чаще всего из всего ПО установленного на компьютере или смартфоне виноватым оказывается браузер. Это может происходить из-за нехватки оперативной памяти, большого количества временных файлов браузера, по причине конфликтов несовместимых плагинов и расширений и т. д. Очистка истории просмотров в настройках браузера помогает в 80% случаев.
В случае, если проблема не пропала, решить ее можно несколькими способами:
Ограничение
Иногда сообщение «код ошибки 503» может выходить, означая, что у пользователя достигнут лимит подписок. Например, с этим могут столкнуться владельцы новых каналов на Ютубе.
Происходит это по причине правил использования сервисов, принадлежащих компании Google. В последний раз, максимальное количество подписок ограничивалось одной тысячей. А если канал был создан совсем недавно, то лимит будет еще меньше. Но со временем он будет расти. Зависит это от того, сколько у пользователя подписчиков на канале и как давно он зарегистрирован на Ютуб.
Поэтому, во время очередной подписки на новый канал, пользователь может наблюдать данную ошибку.
Чтобы убедиться, что проблема связана именно с этим, а не с программами или устройством, достаточно зайти на Youtube с другого аккаунта и попробовать подписаться на любой канал. Если это сработает, то значит проблема в профиле пользователя.
Проблема со временем решится сама.
Как исправить коды ошибок на ТВ Samsung, LG, Philips, Sony?
Коды ошибок телевизоров хоть и вызывают неприятные ощущения при появлении, но являются полезным инструментом для диагностики неполадок. Лучше понимая природу неисправности, можем более точно определить причину проблемы и способ ее исправления. Конечно, ошибка телевизора LG не совпадает с ошибками телевизора DEXP, поэтому для каждого производителя нужно рассматривать ситуацию отдельно. Мы исследовали закутки интернета и собрали самые распространенные коды сбоев для разных ТВ. Наша задача – не только описать их источник, но и помочь в исправлении.
Коды ошибок телевизора Samsung
Сперва рассмотрим ошибки телевизора Samsung, так как их весьма много, да и у нас уже есть более исчерпывающие сведения по ним.
Что делать, если телевизор Samsung выдает ошибки с кодом:
Частые коды ошибок телевизора LG и способы их исправления
Коды ошибок телевизора LG несколько отличаются, даже при тех же самых проблемах, что и на Samsung, идентификатор неисправности будет другим.
Как исправить ошибки на телевизоре LG:
Распространенные ошибки на телевизорах Philips
Ошибки телевизора Philips носят более локальный характер и в целом появляются реже, что может указывать на лучшую стабильность операционной системы. Однако здесь стоит принимать во внимание и факт меньшего распространения ТВ этого производителя.
Какие ошибки встречаются на телевизорах Philips:
Популярные ошибки на ТВ Sony
Ошибки телевизора Sony не столь многочисленны, но тоже встречаются нередко.
Частые коды ошибок на телевизоре Sony:
Универсальные ошибки на телевизорах и как их убрать
Есть еще много ошибок, которые генерируют приложения, из-за чего они могут появиться на любом телевизоре, независимо от производителя. Их мы вынесли в отдельный список для удобства анализа.
Как исправить ошибки на телевизорах:
Весь список с кодами ошибок на телевизорах просто необъятен, поэтому нам пришлось выделить самые распространенные и сделать краткий экскурс по ним. Если вы не нашли ответа, не смогли разобраться в способе реализации совета или столкнулись с другой ошибкой, задавайте вопросы в комментарии.
Источник: kodyoshibok5.ru
Ошибка 503 – что это значит и как исправить
Конечно, при попытке посетить веб-страницу вы встретились с ошибкой 503 Сервис недоступен. Эта ошибка обычно на стороне сервера и не имеет никакого отношения к вашему компьютеру или вашему интернету. Тем не менее, есть несколько случаев, когда проблема на вашем компьютере может привести к отображению ошибки 503.
В этой статье мы расскажем вам о нескольких исправлениях, которые вы можете попытаться сделать, чтобы ошибка 503 Service Unavailable больше у вас не возникала.
Что такое 503 ошибка?
Почти как ошибка 404 Not Found, ошибка 503 Service Unavailable – это код состояния HTTP . Как видно из названия, ошибка 503 означает, что сервер веб-сайта в данный момент недоступен.
Ошибка может произойти из-за перегруженного сервера или из-за того, что сервер находится на обслуживании. Как и на каждой странице состояния, веб-мастер может настроить страницу ошибки 503, чтобы она отображала нечто, отличное от обычного сообщения «503: Service Unavailable».
Ошибка 503 часто отображается как:
- сервис 503 недоступен
- Служба 503 временно недоступна
- 503 Service Unavailable
- Http / 1.1 Сервис недоступен
- Ошибка HTTP-сервера 503
- Служба недоступна – сбой DNS
- Ошибка 503
- HTTP 503
- Ошибка HTTP 503
- Ошибка 503 Сервис Недоступен
Ошибка 503 может отображаться в любом веб-браузере и в любой операционной системе, включая смартфоны. Если ваше устройство может выходить в интернет, вам может встретиться ошибка 503 Service Unavailable.
Как исправить 503 ошибку
Как мы уже говорили, ошибка почти никогда не происходит из-за проблемы с вашей стороны. Это проблема на сайте куда вы пытаетесь зайти. Тем не менее, есть несколько исправлений, которые помогут вам избежать проблем с вашей стороны.
Для начала попробуйте обновить страницу – это кажется очевидным, но поскольку ошибки 503 часто возникают из-за перегруженной сети, простое обновление страницы может решит проблему.
Есть несколько способов перезагрузить веб-страницу. Вы можете нажать F5 или CTRL + R в любом браузере. Кроме того, вы также можете нажать значок обновления, расположенный в верхней части страницы, или заново вставить URL-адрес.
Даже если это не решит вашу проблему, обновление страницы займет всего пару секунд. В худшем случае вы снова получаете ошибку 503 Service Unavailable.
Закройте и откройте браузер
Это необычно, но есть небольшая вероятность того, что ваш браузер является причиной ошибки. Возможно, во время вашей обычной работы в Интернете произошла ошибка, из-за которой браузер предположил, что сайт выдает ошибку 503.
Чтобы это исправить или проверить, так ли это, просто перезапустите браузер. Закройте каждую вкладку и снова откройте браузер. Если вы попробуете веб-сайт и добьетесь успеха, то вы знаете, что проблема была на вашей стороне – особенно в вашем браузере.
Перезагрузка роутера/модема
Подобно тому, как перезагрузка компьютера устраняет множество проблем, перезагрузка сетевого оборудования – самое подходящее решение, когда дело доходит до проблем с интернетом.
Помните, что вы не просто хотите отключить и снова подключить свой маршрутизатор или модем, вы хотите включить и выключить его. Хотя это кажется сложным, на самом деле это то же самое, что отключить и снова подключить его, главное отличие в том, что вы подождите минуту или около того, прежде чем снова включить питание.
Опять же, если какое-либо из этих исправлений не работает, помните, что существует огромная вероятность того, что проблема связана с сайтом на который вы пытаетесь зайти, а не с вами. Тем не менее, если вы можете получить доступ к веб-сайту в своей мобильной сети или в другой сети, есть еще несколько исправлений, которые вы можете попробовать.
Смена DNS-серверов
Ошибки 503 могут быть вызваны проблемами на ваших DNS-серверах. Существуют общедоступные DNS-адреса, на которые вы можете изменить свой. Наиболее используемым является Google.
Вот как вы меняете свой DNS-адрес:
- Откройте панель управления
- Выберите «Центр управления сетями и общим доступом» (если вы не можете его найти, убедитесь, что вы используете маленький значок)
- С левой стороны выберите «Изменить настройки адаптера».
- Щелкните правой кнопкой мыши по Wi-Fi-соединению и выберите «Свойства».
- Прокрутите вниз до «Протокол Интернета версии 4 (TCP / IPv4)» и нажмите «Свойства»
- Затем выберите «Использовать следующие адреса DNS-серверов» и установите для предпочитаемого DNS-сервера значение «8.8.8.8», а для альтернативного DNS-адреса – «8.8.4.4». Эти адреса являются DNS-адресами Google
- Нажмите «ОК» и перезагрузите компьютер
Проверьте сайт на других устройствах
Чтобы действительно убедиться, что проблема с вашей стороны, вы можете просто попросить кого-то еще попытаться получить доступ к веб-сайту. Если они могут открыть сайт, то вы точно знаете, что проблема на вашем конце.
Если вам некого попросить зайти на сайт или у вас нет доступа к другому компьютеру и другой сети, вы можете перейти на один из множества веб-сайтов, которые сообщают вам, если другой веб-сайт не работает.
Если эти веб-сайты сообщают вам, что веб-сайт не работает, значит, вы знаете, что проблема решена.
Перезагрузка компьютера
Перезагрузка компьютера – наиболее существенное решение для сотен, если не тысяч, проблем. Это то, что вы можете попробовать очень легко и без особых проблем. Конечно, есть вероятность, что ваша проблема не будет исправлена, но вы никогда не узнаете, пока не попробуете.
Очистка кеша вашего браузера
Ваш кеш браузера может быть причиной ошибки 503 Service Unavailable, особенно если вы недавно посещали сайт, и на нем была ошибка. Поврежденные и устаревшие файлы кэша также могут быть причиной проблемы.
К счастью, очистка кэша вашего браузера не занимает много времени и очень проста, хотя это зависит от того, какой браузер вы используете.
Источник: 19216811.ru