это стандартный веб-сервер apache в AWS Linux AMI + EBS. Мы отмечаем высокую среднюю нагрузку (+8) и iotop -a
показывает:
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
Когда apache не работает, kworker и jbd2 также не работают.
Сервер не обменивается, так как у нас достаточно оперативной памяти. Я видел эту проблему, связанную с серверами баз данных, но ничего не изолированно только с Apache.
Любая идея о том, как диагностировать это дальше и предотвратить это?
ОБНОВЛЕНИЕ 1: отчет о перфекте (перф запись -g -a сон 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
user2383712
источник
источник
strace -p
(и, может быть, lsof) и посмотреть, показывает ли это что-нибудь интересное.sendfile
на apache, чтобы воспользоваться нулевой копией.Ответы:
100% ввода-вывода не означает, что он использует все ваши операции ввода-вывода. Это означает, что он ничего не делает, кроме ожидания ввода-вывода. Поэтому высокий% IO с низкой / нулевой пропускной способностью диска может быть нормальным.
man iotop
:Это может быть другой проблемой, если вы
kworker
ждете IO вечно, но я не знаю. Может быть, он должен ждать на трубе или что-то. Яkworker
иногда делаю то же самое на моем сервере, и это не проблема. (Я также запаниковал, когда впервые увидел это.)источник