Сервер падает от перегрузок из-за fastcgi, в чем может быть проблема?
На виртуальном серевере 2 ядра, 4 гб оперативки, 15 доменов и 75 поддоменов примерно.
Несколько работают на modx, поддомены привязаны к одной из админок. весь php исполняется как cgi скрипт.
из логов постоянно вылетает такая ошибка:
[error] mod_fcgid: process /var/www/php-bin/username/php(15316) exit(communication error), get unexpected signal 11
И падает сайт с 502 кодом ответа.
Подскажите, в чем может быть проблема?
Если не хватает помяти, то какой надо ставить лимит в php.ini?
Как мне кажется да, дело в памяти и процессоре.
Точно не разбирался с веб серверами, но на мой взгляд при установке 128мб на 1 сайт * 15 доменов - выйдет уже много. А у вас ещё и поддомены. Так что сами понимаете, что просто сервер не справляется с такими нагрузками. Либо ставьте совсем мало памяти на выделение, либо улучшайте сам сервер. Ещё можно попробовать кэширование использовать.
danil_linkins, я использую nginx как кэш сервер. в интернете много примеров настроек.
на счёт навредит или нет, по идеи, при правильном обращении, наоборот ускорит загрузку страниц. но к сожалению, немного увеличит нагрузку на цп и озу.
11 код - ошибка сегментирования. Скорее всего баг в каком-то модуле PHP или используемой библиотеке. Такое ловить надо или дебагером, или методом научного тыка.
Совсем не факт, что проблема как-то связана с нагрузкой, мощностью железа или количеством виртуальных хостов.
А если никак не связано с нагрузкой, то разве может из-за этого падать весь сервер целиком?
Я не читал все логи, их там слишком много.
А какой лог надо читать в случае, если падает сервер?
А если никак не связано с нагрузкой, то разве может из-за этого падать весь сервер целиком?
В вашей конфигурации не должен (хотя если используется apc или xcache и баг в них, то наверное может). Вы уверены, что у приведённой выше ошибки и падений всего сервера одна причина? Кстати, что значит "падает весь сервер"?
А какой лог надо читать в случае, если падает сервер?
Лог php, лог apache, dmesg, syslog и вывод journalctl -b (последнего может не быть, зависит от дистрибутива) покрывают большую часть проблем.
Конкретно про ошибку сегментирования в логах врядли есть какая-то более подробная информация, кроме той, что такая ошибка была.
neol, Весь сервер - имею ввиду VDS где лежат все мои сайты.
Я понятия не имею, из-за какой ошибки падает сервер =) так как занимаюсь фронтом, а сисадмина нет.
Просто мне поддержка хостинга представила это как причину.
и еще позже фиксили настройки какие то: reached MaxClients setting. хотя это никак не должно быть связано.
danil_linkins, Ошибки сегментирования могут быть симптомом, но с вероятностью ≈98% это не причина проблемы. Это тоже проблема и её надо решать, но кмк падения сервера для вас сейчас приоритетнее.
По падениям: посмотрите apache server_status. Скорее всего там найдётся сайт или скрипт, который выполняется очень долго (более секунды). Велика вероятность, что проблема именно там.
neol, Спасибо за советы, я разобрался, все дело было в том, что у нас попросили поддержку сервера решить проблему, те пошли в php config и увеличили там лимит памяти на выполнение скрипта до 512, от чего каждый раз сервер и падал, я уменьшил лимит памяти под выполнение каждого скрипта до 32, и с тех пор сайт за 3 месяца еще ни разу не упал.