【现象】
最近有台服务器晚上CPU告警,系统抓取的故障期间的snapshot显示CPU %sys较高,同时context switch在300K以上。
是否过高的context switch引起的%sys消耗呢,做了下面的测试,来验证context switch与CPU %sys之间有没有直接的关系。
【测试】
用mysqlslap并发100个线程执行select 1语句,可以看到QPS压到15W
context switch已经达到300K左右,但CPU 的%sys在3%左右,并没有导致过高的消耗
通过systemtap写的工具统计context switch的进程验证,是mysqld进程在频繁的context switch。
【结论】
大量的context switch并不会直接引起的%sys消耗。定位类似的问题还需要借助perf工具来分析。可以看我前面的两篇分析CPU %sys消耗的文章。