Добрый день всем!
Использую mod_accel в своей работе очень давно на больших посещаемых
сайтах и проектах, и вот недавно у меня стало часто проявляться такая
проблема - в пиковые моменты и не только, фронтенд выдает в логи, что
time out с бекендом, в это время бекенд, все процессы практически,
находятся в статусе "..reading..". Как я понимаю, это тот момент, когда
бекенд получил коннект от фронтенда, но фронтенд, удерживая сокет, не
передает до конца свой запрос бекенду и держит сокет. Ситуация
парадоксальная, так как раньше ничего подобного не возникало. При этом
бекенд в этот момент не имеет никаких блокировок с sql базой, load
average иногда не более 3-4. Вообщем, я даже связываю это не с возросшей
нагрузкой, а возможно, каким-то багом, который стал проявляться только
сейчас. И такая "горячка" может продолжаться челый час... Трафик падает
раза в два, на MRTG графиках провалы. Вообщем, очень критично для меня.
Поэтому прошу помощи Игоря Сысоева, или того, кто сталкивался с такой
проблемой.
Версии софта:
Фронтенд: Server: Apache/1.3.26 (Unix) mod_deflate/1.0.12 mod_accel/1.0.21
Бекенд: Server: Apache/1.3.26 (Unix) PHP/4.2.2 mod_perl/1.27 rus/PL30.15
Когда стала возникать такая ситуация, для профилактики удалил и
пересоздал директории кеша для фронтенда. Но это не помогло. С этим
бинарниками httpd демонов работал давно, и это не проявлялось, может не
так сильно, как сейчас.
Вот mod_status бекенда в такие моменты (такая ситуация поворялась не
однократно и мой скрипт делал дампы в это время статуса)
Server Version: Apache/1.3.26 (Unix) PHP/4.2.2 mod_perl/1.27 rus/PL30.15
Server Built: Mar 11 2003 02:15:05
-----------------------------------------------------------------------------
---
Current Time: Tuesday, 07-Dec-2004 02:02:09 MSK
Restart Time: Wednesday, 01-Dec-2004 07:55:31 MSK
Parent Server Generation: 7
Server uptime: 5 days 18 hours 6 minutes 38 seconds
Total accesses: 8308648 - Total Traffic: 14.1 GB
CPU Usage: u1005.38 s105.09 cu0 cs0 - .223% CPU load
16.7 requests/sec - 29.7 kB/second - 1818 B/request
20 requests currently being processed, 0 idle servers
RRRRRRRRRRRRRRWRRRRR............................................
....
................................................................
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"L" Logging, "G" Gracefully finishing, "." Open slot with no current process
Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
0-7 29380 0/7151/517890 R 57.15 3 0 0.0 10.29 901.73 ? ? ..reading..
1-7 29768 0/6619/517368 R 53.54 16 7 0.0 9.63 900.43 ? ? ..reading..
2-7 29359 0/7921/518656 R 62.36 21 0 0.0 11.30 906.57 ? ? ..reading..
3-7 29728 0/7893/518643 R 61.46 29 10 0.0 11.16 903.34 ? ? ..reading..
4-7 29671 0/7742/518466 R 61.61 22 2 0.0 10.84 902.53 ? ? ..reading..
5-7 29453 0/7490/518228 R 59.06 23 57 0.0 10.65 903.45 ? ? ..reading..
6-7 29794 0/7209/517945 R 57.15 2 6 0.0 10.06 899.69 ? ? ..reading..
7-7 29547 0/7427/518176 R 57.96 2 6 0.0 10.45 903.75 ? ? ..reading..
8-7 29762 0/6914/517661 R 54.41 30 3 0.0 9.61 897.24 ? ? ..reading..
9-7 29948 0/6866/517648 R 54.79 37 28 0.0 9.53 900.34 ? ? ..reading..
10-7 29673 0/7843/518593 R 62.28 5 0 0.0 10.78 903.48 ? ? ..reading..
11-7 30044 0/6804/517564 R 54.14 10 25 0.0 9.35 904.94 ? ? ..reading..
12-7 29760 0/8331/519060 R 66.24 3 2 0.0 11.22 901.26 ? ? ..reading..
13-7 29755 0/7012/517748 R 55.87 18 5 0.0 9.63 897.98 ? ? ..reading..
14-7 30356 0/6703/517458 W 52.68 64 0 0.0 9.30 902.38 209.50.251.203
www.mysitenamehere.com
GET /status-url/ HTTP/1.0
15-7 27927 0/9213/188218 R 72.77 36 8 0.0 13.35 313.22 ? ? ..reading..
16-7 29304 0/8214/126777 R 65.41 52 4 0.0 11.69 207.79 ? ? ..reading..
17-7 31043 0/4914/96054 R 38.75 1 0 0.0 6.91 157.70 ? ? ..reading..
18-7 31429 0/4252/73608 R 33.70 22 4 0.0 5.68 119.79 ? ? ..reading..
19-7 31435 0/3581/52887 R 29.14 55 32 0.0 4.34 84.24 ? ? ..reading..
Что может быть такое, что заставляет бекенд долго висеть в статусе
"reading"?
С уважением, Алексей
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.