![Tiempo de espera de conexión de Apache, ¿qué podría estar mal?](https://rvso.com/image/697408/Tiempo%20de%20espera%20de%20conexi%C3%B3n%20de%20Apache%2C%20%C2%BFqu%C3%A9%20podr%C3%ADa%20estar%20mal%3F.png)
Tengo un servidor Apache que es muy inestable y muchas veces al día tengo dificultades para conectarme a Apache. No puedo entender por qué, ya que para mí todo parece estar bien. El servidor tiene en todo momento "muchos" recursos gratuitos. El servidor es un Linode 4098 con 4 GB de RAM, 48 GB de disco duro y 2 CPU.
Estoy usandoestado_modpara verificar el estado de Apache, pero sigo recibiendo errores de tiempo de espera de conexión cuando intento acceder a la página de estado del servidor.
Mi configuración actual de Apache
<IfModule mpm_prefork_module>
StartServers 3
ServerLimit 200
MinSpareServers 3
MaxSpareServers 5
MaxRequestWorkers 175
MaxConnectionsPerChild 100
MaxRequestsPerChild 20
</IfModule>
Casi una de cada dos solicitudes de Apache a /server-status falla con ERR_CONNECTION_TIMED_OUT.
Lo que no puedo entender es por qué sucede esto, ya que cuando reviso el servidor hay muchos recursos disponibles y conexiones inactivas.
Por ejemplo, /server-status informa muchas conexiones disponibles:
Parent Server Config. Generation: 1
Parent Server MPM Generation: 0
Server uptime: 1 hour 6 minutes 6 seconds
Server load: 0.09 0.15 0.14
Total accesses: 27206 - Total Traffic: 79.8 MB
CPU Usage: u3.92 s.77 cu0 cs0 - .118% CPU load
6.86 requests/sec - 20.6 kB/second - 3077 B/request
52 requests currently being processed, 1 idle workers
RRRCRRRRRRRRRRRRRRRRRRCRRC.RR.R.RRRRRRRRRCRRRRR_WCCRR.R..RR.....
................................................................
...............................................
Y con el tiempo de actividad, veo que la CPU también está disponible
load average: 0.05, 0.12, 0.14
y hay memoria disponible:
total used free shared buff/cache available
> Mem: 3.9G 1.3G 413M 81M 2.1G 2.3G
¿Alguien tiene alguna idea de lo que podría estar mal?
ACTUALIZACIÓN: Según lo solicitado, aquí hay un fragmento del registro de acceso. (El 99% son solicitudes relacionadas con las estadísticas de seguimiento llamando a /api2/counting/count script-handler)
4.139.128.194 - - [23/Jan/2017:11:38:36 +0000] "POST /api2/counter/count?r=1485171514298 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
176.38.149.76 - - [23/Jan/2017:11:38:36 +0000] "POST /api2/counter/count?r=1485171517077 HTTP/1.1" 200 454 "-" "WriteDiary4.72"
67.84.227.131 - - [23/Jan/2017:11:38:36 +0000] "GET /keepalive?471:1485171524866 HTTP/1.1" 200 469 "https://www.writediary.com/notes" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"
122.178.156.252 - - [23/Jan/2017:11:38:36 +0000] "POST /api2/counter/count?r=1485171515804 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
82.137.13.18 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171525558 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
103.199.35.221 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171515470 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
95.218.142.245 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171516264 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
47.31.143.106 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171515787 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
94.139.128.194 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171515619 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
120.188.33.198 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171515867 HTTP/1.1" 200 454 "-" "WriteDiary4.72"
47.29.174.163 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171515122 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
85.115.224.151 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171515453 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
47.11.219.147 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171516596 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
61.5.53.52 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171520665 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
116.102.205.20 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171516590 HTTP/1.1" 200 454 "-" "WriteDiary4.72"
101.60.31.133 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171516802 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
47.31.147.213 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171515431 HTTP/1.1" 200 5131 "-" "WriteDiary4.72"
186.78.73.222 - - [23/Jan/2017:11:38:37 +0000] "POST /api2/counter/count?r=1485171669305 HTTP/1.1" 200 454 "-" "WriteDiary4.72"
112.79.186.36 - - [23/Jan/2017:11:38:38 +0000] "POST /api2/counter/count?r=1485171736857 HTTP/1.1" 200 454 "-" "WriteDiary4.72"
94.139.128.194 - - [23/Jan/2017:11:38:38 +0000] "POST /api2/counter/count?r=1485171516605 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
24.236.88.161 - - [23/Jan/2017:11:38:38 +0000] "POST /api2/counter/count?r=1485171516752 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
150.31.100.192 - - [23/Jan/2017:11:38:38 +0000] "POST /api2/counter/count?r=1485171517315 HTTP/1.1" 200 454 "-" "WriteDiary4.72"
12.181.196.67 - - [23/Jan/2017:11:38:38 +0000] "GET /keepalive?50412:1485171517975 HTTP/1.1" 200 501 "https://www.writediary.com/notes" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
112.198.75.139 - - [23/Jan/2017:11:38:38 +0000] "POST /api2/counter/count?r=1485171408169 HTTP/1.1" 200 4794 "-" "WriteDiary4.72"
114.125.201.114 - - [23/Jan/2017:11:38:38 +0000] "POST /api2/counter/count?r=1485172944904 HTTP/1.1" 200 441 "-" "WriteDiary4.72"
SOLUCIÓN: Tuve que actualizar el servidor para permitir más trabajadores. Como cada conexión de Apache requiere alrededor de 30 MB o RAM, el servidor estaba superando los límites. 4 GB de RAM dan = 4000 MB / 30 MB = 133 conexiones como máximo... y cuando parte de la memoria se asigna a MySQL y otras funciones del sistema, en la práctica solo 3,5 GB. está disponible, lo que ofrece un máximo cercano a 100 conexiones.
Al actualizar a 8 GB de RAM, el límite máximo se acerca a 250 conexiones, lo que hace que todo funcione sin problemas. De hecho, después de cambiar la escala de la RAM, el estado del servidor informó que Apache procesó 200 solicitudes simultáneamente durante muchas horas en las horas pico. Eso explicaría por qué el servidor tuvo problemas en las horas pico con un límite más cercano a 100.
Respuesta1
¿Puedes publicar el registro de acceso a Apache?
puedes encontrar registros si estás usando ubuntu usando este comando
cat /var/log/apache2/access.log
pero varía según tu plataforma