> За последние пару дней несколько раз наблюдал следующую ситуацию: > > nginx переставал отвечать на запросы, при этом уходя в top с 99.9% cpu > load.
> > OS Debian Sarge, kernel 2.6.11.9, nginx 0.3.12. > > В access-логе не вижу ничего подозрительного, в error-логе обычно видно > следующее: > > 2005/12/11 03:01:02 [alert] 10578#0: *58941 the http output chain is
> empty while sending to client, client: x.x.x.x > 2005/12/11 03:04:07 [alert] 10577#0: worker process 10578 exited on > signal 9 > > Вторая строчка - это, скорее всего, после моего kill'a, но я не уверен.
> > Нагрузка маленькая, около 60 active connections. nginx слушает только > https, несколько http-проксирований с proxy_buffering off и несколько > https проксирований. Использую 1 worker, метод обработки соединения не
> указываю, т.е. юзается самый оптимальный по мнению nginx, насколько я > понимаю. > > Подскажите, пожалуйста, на что еще можно посмотреть во время > возникновения проблемы? Из-за чего это может быть?
то после сообщения "[alert] the http output chain is empty" nginx вызовет abort() и будет корка в каталоге /spool/core. Чтобы от корки была польза,
nginx должен быть собран с ключём -g (обычно он так и собирается). Обычный пользователь, под которым работают рабочие процессы, должен имет права записи в каталог /spool/core. Кроме того, limits -c должен быть достаточным.