проблемы
Igor Sysoev
is at rambler-co.ru
Tue Jan 25 16:00:47 MSK 2005
On Tue, 25 Jan 2005, Alexey Bestciokov wrote:
> хотел написать success story но не получилось:(
> пришлось писать багрепорт
>
> 1) помницца такая (подобная ?) ошибка была в 0.13
> сейчас время от времени проявляется в 0.15 - по крайней мере для
> одного хоста:
> 005/01/25 08:04:33 [alert] 27134#0: *95250 zero size buf in sendfile while sending to client, client: 195.210.128.54, URL: /pop/download.php?id=430, upstream: fastcgi://127.0.0.1:9001/pop/download.php?id=430
> либо, если без fcgi то:
> 2005/01/22 13:15:55 [alert] 17908#0: *213689 zero size buf in sendfile, client: 195.210.128.54, URL: "/pop/download.php?id=426"
> оно бы всё и ничего, но когда проявляется, то записывается в лог со
> скоростью порядка 1 Gb / минуту до того момента пока не заканчивается
> место на диске. Лечится перезапуском nginx - ну или отключением
> вывода error_log :)
Для того, чтобы процесс с "zero size buf" не ел процессор и не писал
в лог, нужно в основном разделе конфига поставить
debug_points abort;
В этом случае такой процесс сразу же выйдет по сигналу SIGABORT.
Возможно с коркой.
"zero size buf" - это ужасная для меня проблема. У меня её долго не было,
но на днях один процесс упал с такой коркой. В общем, на днях я серьёзно
займусь этой ошибкой.
> 2) время от времени один (иногда больше) из дочерних процессов nginx
> начинает активно отжирать процессор - от 20 до 50 процентов, и
> подвисает в таком состоянии до перезапуска nginx
> пример вывода ps
>> ps ax -o pid,ppid,user,%cpu,vsz,wchan,command | egrep '(nginx|PID)'
> PID PPID USER %CPU VSZ WCHAN COMMAND
> 13149 1 root 0.0 2180 rt_sig nginx: master process /usr/local/sbin/nginx
> 25112 13149 www-data 23.0 5760 - nginx: worker process
> 30908 13149 www-data 0.7 7780 - nginx: worker process
> 31205 13149 www-data 0.5 5884 - nginx: worker process
> 31571 13149 www-data 0.1 2948 - nginx: worker process
> 31576 13149 www-data 0.6 6240 - nginx: worker process
> 31604 13149 www-data 0.1 3548 - nginx: worker process
> 31757 13149 www-data 0.7 5160 - nginx: worker process
> 31772 13149 www-data 0.1 3320 - nginx: worker process
> 31799 13149 www-data 0.4 4268 - nginx: worker process
> 31966 13149 www-data 0.5 3844 - nginx: worker process
>
> кстати - если в нормальном состоянии послать мастр процессу -HUP, то
> большая часть воркеров умирает очень долго - больше часа, дольше не
> ждал, при этом опять же начинает отжирать процессорное время - судя по выводу top
> больше (20-30 %), по ps - меньше, порядка 10 %
> лечится опять же перезапуском.
Если процесс начинает есть процессор, то нужно или посмотреть, что
он делает с помощью truss, strace, а ещё хорошо бы с gdb.
Воркеры могут умирать долго, если они передают большие файлы. Если же нет,
то имеет место бага.
> 3) не уверен что это проблема nginx, может быть пхп, но время от времени nginx перестает общацца с remotу fcgi - пишет
> Gateway time out, хотя процессы пхп живут и слушают сокет. можно ли как либо включить отладочную информацию именно для этой ситуации ?
Именно для этой - нет. Но можно задать другой лог уровень debug только
для определённого location:
error_log error.log error;
http {
...
location / {
fastcgi_pass localhost:8000;
error_log error1.log debug;
}
Кстати, а fastcgi что использует - tcp или unix sockets ?
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list