操作系统性能监控

       改善性能涉及3种不同的活动:性能监控,性能分析和性能调优

       今天主要来学习性能监控,那什么是性能监控呢?性能监控是一种以非入侵的方式收集或查看应用运行性能数据的活动。监控通常是指一种生产、质量评估或者开发环境中实施的带有预防或主动性的活动。当应用干系人报出性能问题却没有足以定位根本原因的线索时,首先会进行性能的监控,随后才是性能的分析。

       在执行一段程序的时候(这里的程序也可以看作是进程),要使应用的性能达到最高,就必须充分利用分配给它的CPU周期,不能有丝毫浪费。如何让 多处理器、多核系统上运行的多线程应用有效利用CPU周期,是个让人头疼的问题。此外,特别值得注意的是,应用消耗很多CPU并不意味着性能或者扩展性达到最高。要想找出应用如何使用CPU周期,可以在操作系统上监控CPU使用率。大多数操作系统的CPU使用率分为用户态CPU使用率和系统态CPU使用率。用户态CPU使用率是指执行应用代码的时间占总时间的百分比。相比而言,系统态CPU使用率是指应用执行操作系统调用的时间占总CPU时间的百分比。系统态CPU使用率高意味着共享资源有竞争或者I/O设备之间有大量的交互。既然原本用于执行操作系统内核调用的CPU周期也可以用来执行应用代码,所以理想情况下,应用达到最高性能和扩展性时,它的系统态CPU使用率为0%。所以提高应用性能和扩展性的一个目标是尽可能降低系统态CPU使用率。

       对于计算密集型应用来说,不仅要监控用户态和系统态CPU使用率,还要进一步监控每时钟指令数(IPC)或每指令时钟周期(CPI)等指标。这两个指标对于计算密集型应用来说很重要,因为现代操作系统自带的CPU使用率监控工具只能报告CPU使用率,而没有CPU执行指令占用CPU时钟周期的百分比。这意味着,即便CPU在等待内存中的数据,操作系统工具仍然会报告CPU繁忙。这种情况通常被称为停滞(Stall)。当CPU执行指令而所用的操作数据不在寄存器或者缓存中时,就会发生停滞。由于指令执行前必须等待数据从内存装入CPU寄存器,所以一旦发生停滞,就会浪费时钟周期。CPU停滞通常会等待(浪费)好几百个时钟周期。因此提高计算密集型应用性能的策略就是减少停滞或者改善CPU高速缓存使用率,从而减少CPU在等待内存数据时浪费的时钟周期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luolvzhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值