我们有两台服务器正在停止运行。一个是虚拟机,另一个是裸机。他们都没有运行相似的代码,但他们在同一个网络上。看起来难以置信数量的上下文切换是由 ksoftirqd 引起的(它占用了大量的 CPU)。
vmstat 输出
procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 605092 182496 2637556 0 0 0 0 4177 519187 8 19 73 0 0
2 0 0 605092 182496 2637556 0 0 0 0 4792 520980 8 19 74 0 0
3 0 0 605092 182496 2637552 0 0 0 0 2137 659640 18 26 56 0 0
...
pidstat 输出
TCK4-BM-06A:~ # pidstat -w -I 5
Linux 2.6.32.12-0.7-default (TCK4-BM-06A) 07/02/2012 _x86_64_
03:03:01 PM PID cswch/s nvcswch/s Command
03:03:06 PM 1 0.20 0.00 init
03:03:06 PM 4 386666.27 0.00 ksoftirqd/0
03:03:06 PM 6 0.60 0.00 ksoftirqd/1
03:03:06 PM 8 378213.17 0.00 ksoftirqd/2
03:03:06 PM 10 0.20 0.00 ksoftirqd/3
03:03:06 PM 12 0.20 0.00 ksoftirqd/4
03:03:06 PM 26 377115.37 0.00 ksoftirqd/11
03:03:06 PM 27 1.80 0.00 events/0
03:03:06 PM 28 1.00 0.00 events/1
03:03:06 PM 29 1.00 0.00 events/2
03:03:06 PM 30 1.00 0.00 events/3
03:03:06 PM 31 0.80 0.00 events/4
03:03:06 PM 32 0.80 0.00 events/5
...
我最初的想法是,由于两者都在同一个网络上,所以有些东西正在充斥网络。这与数据一致吗?
有关闰秒的问题和解决方法,请参阅:在闰秒期间还有其他人遇到 Linux 服务器崩溃率很高的情况吗?
您正在经历其中一种症状。