sysbench,多线程基准测试工具
使用sysstat来检查监控和分析,包含mpstat用于查看每颗cpu的状态,pidstat查看每个进程的状态
rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum -y install sysbench sysstat
1.查看空闲系统上下文切换数据,3秒一次
vmstat 3
2.单独开一个终端
以 10 个线程运行 5 分钟的基准测试,模拟多线程切换的问题
sysbench --threads=10 --max-time=300 threads run
3.返回第一个终端,可以看到突然变大
r 列:就绪队列的长度已经到了 8,远远超过了系统 CPU,会导致频繁切换 us(user)和 sy(system)列:这两列的 CPU加起来就是100%,sy最高,主要是内核占用 in 列:中断次数也上升到了 1k左右,说明中断处理也是问题
说明等待使用cpu的进程太多,导致大量上下文切换,上下文切换导致cpu占用率升高。
4.查看具体应用
-w 参数表示输出进程切换指标,-u 参数则表示输出 CPU 使用指标
pidstat -w -u 3
可以看到sysbench占用了很高的cpu使用率很高,但没有产生多少上下文切换
5.查看多线程,-t显示线程
pidstat -wt 3
可以看到线程占用的很多
6.查看中断信息
/proc/interrupts 这个只读文件中读取,/proc 实际上是 Linux 的一个虚拟文件系统。/proc/interrupts 就是这种通信机制的一部分,用于内核空间与用户空间之间的通信,提供了一个只读的中断使用情况。
watch -d cat /proc/interrupts
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。