Linux系统噪音统计(Osnoise Tracer),不了解吗?
2023-03-15 22:44:51 时间
在Linux系统中作为一个普通线程是非常苦逼的。不仅NMI 、硬中断、软中断可以打断它,甚至其它普通线程也可以来打断干扰到它的运行。
如果没有这些打断事件,一个普通线程执行while循环,可以high过天际。这些打断事件对一个普通线程来说,就相当于噪音一样的存在。
从Linux 5.14-rc1开始引入了一个新的tracer---(osnoise tracer)。就是从一个线程thread的角度把这些噪音全部详细统计出来。
上图中 在1秒内普通线程(pid=98) 受到的各个干扰事件的次数和cpu available百分比等都可以显示出来。
统计到这个程度,感觉还是不够详细。 可以打开osnoise对应的trace event.
上面的interference 5说明在一个采样周期内被打断了5次(包括4次中断和一次a.out线程事件产生的噪音),上面的每一次打断都有事件名称和对应的时间统计:
1232+1222+1192+1262+3994882=4000242-452 (~4000242)
统计时间约等于4000242ns 因为包含了检查代码的时间时间。
代码实现:
在以上每个打断事件处理函数中都插上trace event的钩子函数 来统计事件的执行时间,然后在每个cpu上运行一个内核线程进行周期性统计.
这个强大的osnoise tracer使用到的技术仅仅是用到了tracer event提供的基础设施。
相关文章
- 十个 Linux 新手管理员易犯错误
- 借Redis Cluster集群,聊一聊集群中数据分布算法
- Docker容器部署Zabbix监控系统
- 如何在Fedora 30 Server上安装LEMP(Linux、Nginx、MariaDB、PHP)
- 运维开发和测试中常见的8个问题
- 看大数据大佬手把手带你实现基于Zookeeper、Redis的分布式锁
- 数据分析师必备的9大技能,大多数人只知道一半
- 分布式及高可用元数据采集原理
- 记一次生产环境SQL Server服务器卡顿问题解决--内存分配不当
- 如何用Excel快速生成SQL语句,用起来真的很爽
- 微服务架构下,利用Sharding-jdbc解决读写分离查询延迟问题
- 当同事用Root权限输入rm -rf 后,鬼知道我经历了什么
- Linux搜索文件的5个高效命令的正确使用方法
- 极简操作!3分钟即可实现的 IIS 站点迁移
- 超越Cookie:当今的客户端数据存储技术
- Hadoop与 Spark - 选择正确的大数据框架
- Linux性能测试工具有什么好用的工具,这里推荐一款
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- 太快太不安全:为Mongo Express Web管理界面保驾护航
- 怎样在Kubernetes上运行PostgreSQL