jest to standardowy serwer WWW Apache na AWS Linux AMI + EBS. Zauważamy wysoką średnią obciążenia (+8) i iotop -a
pokazuje:
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
Gdy apache jest wyłączony, kworker i jbd2 również nie działają.
Serwer nie zamienia się, ponieważ mamy dużo dostępnej pamięci RAM. Widziałem ten problem związany z serwerami baz danych, ale nic nie odizolowało tylko Apache.
Masz pomysł, jak dalej to zdiagnozować i jak temu zapobiec?
AKTUALIZACJA 1: raport perf (perf record -g -a sleep 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
użytkownik2383712
źródło
źródło
strace -p
(A może również lsof) i sprawdzić, czy to pokazuje coś interesującego.sendfile
na Apache, aby skorzystać z zerowej kopii.Odpowiedzi:
100% IO nie oznacza, że wykorzystuje wszystkie twoje operacje IO. Oznacza to, że robi tylko czekanie na IO. Dlatego wysoki% IO przy niskiej / zerowej przepustowości dysku może być normalny.
man iotop
:To może być inny problem, jeśli
kworker
czekasz na IO na zawsze, ale nie wiem. Może to powinno czekać na fajce czy coś takiego.kworker
Czasami widzę, że robię to samo na moim serwerze i nie wydaje się to być problemem. (Spanikowałem też po raz pierwszy.)źródło