linux – kworker消耗90%的IO和零磁盘写入

前端之家收集整理的这篇文章主要介绍了linux – kworker消耗90%的IO和零磁盘写入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是AWS Linux AMI EBS上的标准apache Web服务器.我们注意到高负载平均值(8)和iotop -a显示
  1. Total DISK READ: 0.00 B/s | Total DISK WRITE: 2.37 M/s
  2.  
  3. TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
  4. 3730 be/4 root 0.00 B 0.00 B 0.00 % 91.98 % [kworker/u8:1]
  5. 774 be/3 root 0.00 B 1636.00 K 0.00 % 15.77 % [jbd2/xvda1-8]
  6. 3215 be/4 apache 0.00 B 40.39 M 0.00 % 0.88 % httpd
  7. 3270 be/4 apache 0.00 B 38.20 M 0.00 % 0.93 % httpd
  8. 2770 be/4 apache 0.00 B 46.86 M 0.00 % 0.71 % httpd

当apache关闭时,kworker和jbd2也会关闭.

服务器没有交换,因为我们有足够的RAM可用.我已经看到这个问题与数据库服务器有关,但不仅仅是与Apache隔离.

有关如何进一步诊断和预防它的任何想法?

更新1:性能报告(性能记录-g -a睡眠10)

  1. Samples: 114K of event 'cpu-clock',Event count (approx.): 28728500000
  2. - 83.58% swapper [kernel.kallsyms] [k] xen_hypercall_sched_op
  3. + xen_hypercall_sched_op
  4. + default_idle
  5. + arch_cpu_idle
  6. - cpu_startup_entry
  7. 70.16% cpu_bringup_and_idle
  8. - 29.84% rest_init
  9. start_kernel
  10. x86_64_start_reservations
  11. xen_start_kernel
  12. + 1.73% httpd [kernel.kallsyms] [k] __d_lookup_rcu
  13. + 1.08% httpd [kernel.kallsyms] [k] xen_hypercall_xen_version
  14. + 0.38% httpd [vdso] [.] 0x0000000000000d7c
  15. + 0.36% httpd libPHP5.so [.] zend_hash_find
  16. + 0.33% httpd libPHP5.so [.] _zend_hash_add_or_update
  17. + 0.25% httpd libc-2.17.so [.] __memcpy_ssse3
  18. + 0.24% httpd libPHP5.so [.] _zval_ptr_dtor
  19. + 0.24% httpd [kernel.kallsyms] [k] __audit_syscall_entry
  20. + 0.22% httpd [kernel.kallsyms] [k] pvclock_clocksource_read

解决方法

100%IO并不意味着它正在使用所有IO操作.这意味着除了等待IO之外什么都不做.因此,具有低/零磁盘带宽的高%IO可以是正常的.

男人iotop:

[…] It also displays the percentage of
time the thread/process spent while swapping in and while waiting on I/O.

如果你的kworker永远等待IO,这可能是一个不同的问题,但我不知道.也许它应该在管道或其他东西上等待.我看到kworker有时会在我的服务器上做同样的事情,这似乎不是问题. (我第一次看到它时也感到恐慌.)

猜你在找的Linux相关文章