ini adalah server web apache standar pada AWS Linux AMI + EBS. Kami memperhatikan rata-rata muatan tinggi (+8) dan iotop -a
menunjukkan:
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
Ketika apache turun, kworker dan jbd2 juga turun.
Server tidak bertukar karena kami memiliki banyak RAM yang tersedia. Saya telah melihat masalah ini terkait dengan server Database, tetapi tidak ada yang hanya diisolasi ke Apache.
Adakah cara untuk mendiagnosis ini lebih lanjut dan mencegahnya?
UPDATE 1: laporan perf (catatan perf -g -a tidur 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
pengguna2383712
sumber
sumber
strace -p
(dan mungkin lsof) dan melihat apakah itu menunjukkan sesuatu yang menarik.sendfile
pada apache untuk memanfaatkan nol salinan.Jawaban:
100% IO tidak berarti menggunakan semua operasi IO Anda. Itu berarti tidak melakukan apa-apa selain menunggu di IO. Oleh karena itu, IO% tinggi dengan bandwidth disk rendah / nol dapat menjadi normal.
man iotop
:Ini mungkin masalah yang berbeda jika Anda
kworker
menunggu di IO selamanya, tapi saya tidak tahu. Mungkin itu seharusnya menunggu di pipa atau sesuatu. Saya melihatkworker
melakukan hal yang sama di server saya kadang-kadang, dan sepertinya tidak menjadi masalah. (Saya juga panik saat pertama kali melihatnya.)sumber