前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CPU中的上下文(下)

CPU中的上下文(下)

原创
作者头像
陈不成i
修改2021-05-24 11:02:13
5380
修改2021-05-24 11:02:13
举报
文章被收录于专栏:ops技术分享ops技术分享

六.模拟

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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 六.模拟
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档