Este es un servidor web Apache estándar en AWS Linux AMI + EBS. Estamos notando un alto promedio de carga (+8) y iotop -a
muestra:
Total DISK READ: 0.00 B/s | Total DISK WRITE: 2.37 M/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
3730 be/4 root 0.00 B 0.00 B 0.00 % 91.98 % [kworker/u8:1]
774 be/3 root 0.00 B 1636.00 K 0.00 % 15.77 % [jbd2/xvda1-8]
3215 be/4 apache 0.00 B 40.39 M 0.00 % 0.88 % httpd
3270 be/4 apache 0.00 B 38.20 M 0.00 % 0.93 % httpd
2770 be/4 apache 0.00 B 46.86 M 0.00 % 0.71 % httpd
Cuando apache está inactivo, kworker y jbd2 también están inactivos.
El servidor no se intercambia ya que tenemos mucha RAM disponible. He visto este problema relacionado con los servidores de bases de datos, pero nada solo está aislado de Apache.
¿Alguna idea sobre cómo diagnosticar esto más a fondo y prevenirlo?
ACTUALIZACIÓN 1: informe de rendimiento (registro de rendimiento -g -a sueño 10)
Samples: 114K of event 'cpu-clock', Event count (approx.): 28728500000
- 83.58% swapper [kernel.kallsyms] [k] xen_hypercall_sched_op ◆
+ xen_hypercall_sched_op ▒
+ default_idle ▒
+ arch_cpu_idle ▒
- cpu_startup_entry ▒
70.16% cpu_bringup_and_idle ▒
- 29.84% rest_init ▒
start_kernel ▒
x86_64_start_reservations ▒
xen_start_kernel ▒
+ 1.73% httpd [kernel.kallsyms] [k] __d_lookup_rcu ▒
+ 1.08% httpd [kernel.kallsyms] [k] xen_hypercall_xen_version ▒
+ 0.38% httpd [vdso] [.] 0x0000000000000d7c ▒
+ 0.36% httpd libphp5.so [.] zend_hash_find ▒
+ 0.33% httpd libphp5.so [.] _zend_hash_add_or_update ▒
+ 0.25% httpd libc-2.17.so [.] __memcpy_ssse3 ▒
+ 0.24% httpd libphp5.so [.] _zval_ptr_dtor ▒
+ 0.24% httpd [kernel.kallsyms] [k] __audit_syscall_entry ▒
+ 0.22% httpd [kernel.kallsyms] [k] pvclock_clocksource_read ▒
linux
apache-2.2
amazon-web-services
io
usuario2383712
fuente
fuente
strace -p
(y tal vez lsof) y ver si eso muestra algo interesante.sendfile
en apache para aprovechar la copia cero.Respuestas:
100% IO no significa que esté usando todas sus operaciones IO. Significa que no está haciendo nada más que esperar a IO. Por lo tanto, un alto% IO con ancho de banda de disco bajo / cero puede ser normal.
man iotop
:Puede ser un problema diferente si
kworker
está esperando IO para siempre, pero no lo sé. Tal vez se supone que debe estar esperando en una tubería o algo así. Veokworker
hacer lo mismo en mi servidor a veces, y no parece ser un problema. (También entré en pánico la primera vez que lo vi).fuente