操作系统性能监控-CPU使用率

CPU使用率分为

  1. 用户态CPU使用率:执行应用程序代码的时间占总CPU时间的百分比
  2. 系统态CPU使用率:应用执行操作系统调用的时间占总CPU时间的百分比

系统态CPU使用率高意味着共享资源有竞争或者IO设备之间有大量的交互。

目标:理想情况应用达到最高性能和扩展性时,它的系统态CPU使用率为0%,提供应用性能和扩展性一个目标是尽可能降低系统态CPU使用率

 

对于计算密集型应用

  1. 监控用户态和系统态CPU使用率
  2. 监控每时钟指令书IPC或每指令时钟周期CPI(对于计算密集型重要,系统自带工具无法监控)

 

停滞:CPU等待内存中的数据,操作系统工具仍然报告CPU繁忙,当指令所用的操作数据不在寄存器或者缓存中的就会发生。

目标:减少停滞或者改善CPU高速缓存使用率,从而减少CPU在等待内存数据时浪费的时钟周期

 

观察CPU使用率工具

     vmstat:只能查看整体CPU使用情况

  1. us: 用户进程执行时间百分比。 us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速
  2. sy: 内核系统进程执行时间百分比。 sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因
  3. wa: IO等待时间百分比。 wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈
  4. id: 空闲时间百分比

 

mpstat:处理相关统计信息

     mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ]

     查看所有CPU统计信息,每2秒一次

  • CPU:CPU 编号
  • %user:在监控的时间间隔内,用户级进程(运用程序)占用的CPU时间百分比。
  • %nice:在监控的时间间隔内,nice值为负的用户级进程所占用的CPU时间百分比。
  • %sys:在监控的时间间隔内,系统及进程(内核)占用的CPU使用率。该时间包括了系统处理软、硬中断所花的时间。
  • %iowait:在监控的时间间隔内,等待硬盘I/O的时间,CPU的闲置时间百分比。
  • %irq:在监控的时间间隔内,CPU服务硬中断的所占的时间百分比。
  • %soft:在监控的时间间隔内,CPU服务软中断的所占的时间百分比。
  • %idle:在监控的时间间隔内,CPU闲置时间所占用的时间百分比,不包括等待磁盘IO请求的时间。

 

CPU调度程序运行队列

作用:监控CPU调度程序运行队列用于分辨系统是否满负荷。

运行队列:那些已经准备好运行,正等待可用CPU的轻量级进程。

如果准备运行的轻量级进程数超过系统所能处理的上限,运行队列就会很长。当系统运行队列等于虚机处理器个数的时候,用户不会明显感觉到性能下降。(虚拟处理器就是系统硬件线程个数.Runtime.availableProcessors()返回值)。运行队列长度达到虚拟处理4倍或是更多时,系统响应非常迟缓。

指导原则:如果在很长时间,运行队列的长度一直超过虚拟处理器个数1倍,需要关注,如果很长一段时间,运行队列长度达到虚拟处理器个数的3-4倍或更高,需要立即引起注意或采取行动。

解决方式

  1. 增加CPU,分担负载或减少处理器负载,从根本上解决。
  2. 分析系统中运行的应用,改进CPU使用率。解决算法和数据结构效率

线上vmstat 1观察CPU队列情况

procs

  • r:在运行队列中等待的进程数
  • b:在等待IO的进程数

mpstat查看CPU个数以及CPU使用情况,系统负载略高

CPU相关监控以及介绍告一段落。

参考:

http://www.ha97.com/4512.html

http://linuxcommand.org/man_pages/vmstat8.html

时间: 2024-11-06 08:08:33

操作系统性能监控-CPU使用率的相关文章

操作系统性能监控

1. 概述 应用的性能极限是服务等级协议中关注的重点.找到性能极限的关键在于知道该监控哪些数据.监控软件栈的哪些部分以及使用哪些工具.本篇文章将介绍需要监控的操作系统数据以及可用的操作系统性能监控攻击,还会给出一般性指导原则.主要涉及的操作系统是Windows 7和Ubuntu 12.04.5 LTS.我们更多的是介绍哪些是需要重点监控的系统属性以及为何要监控他们. 找到性能问题的第一步是监控应用的行为,通过监控提供的线索,可以将性能问题进行归类. 首先要给出几个概念的定义:性能监控,性能分析和

操作系统性能监控之内存监控

操作系统性能监控 服务端程序除了应用本身性能外,依赖与服务器本身的性能.服务器性能指标包括:CPU.内存.网络IO和磁盘使用率. 今天学习了内存监控的部分. 为什么要监测内存 当应用运行所需内存超过可用物理内存时,就会发生页面交换.通常会在硬盘上分配一个swap空间.当应用耗尽可用内存时,就会把不常用的内容放到swap空间里. 当访问被置换到swap空间的内容时,就需要把swap空间的内容加载到物理内存中,这种置换操作会大大影响应用的吞吐量和响应性. JVM垃圾收集器在进行置换操作时,性能也很差

SQLServer2008-2012资源及性能监控—CPU使用率监控详解

 本文接着上文继续,讲述如何监控CPU的使用情况 前言: CPU是服务器中最重要的资源.在数据库服务器中,CPU的使用情况应该时刻监控以便SQLServer一直处于最佳状态. 本文将会使用可靠性和性能监视器来获取CPU相关的使用统计信息 可靠性和性能监视器是过去性能监视器工具的加强版.同时拥有性能监视器的全部功能. 性能计数器提供对各种系统活动的统计功能.可以找到有数百种性能计数器来针对Windows操作系统或者第三方应用程序的性能.SQLServer同样有数百个性能计数器供DBA使用. 在

操作系统性能监控-磁盘IO

系统IO监控 iostat监控各个磁盘使用情况 rrqm/s:   每秒进行 merge 的读操作数目.即 delta(rmerge)/s wrqm/s:  每秒进行 merge 的写操作数目.即 delta(wmerge)/s r/s:         每秒完成的读 I/O 设备次数.即 delta(rio)/s w/s:        每秒完成的写 I/O 设备次数.即 delta(wio)/s rsec/s:     每秒读扇区数.即 delta(rsect)/s wsec/s:    每

SQLServer2008-2012资源及性能监控—CPU使用率监控具体解释

前言: CPU是server中最重要的资源.在数据库server中,CPU的使用情况应该时刻监控以便SQLServer一直处于最佳状态. 本文将会使用可靠性和性能监视器来获取CPU相关的使用统计信息 可靠性和性能监视器是过去性能监视器工具的加强版.同一时候拥有性能监视器的所有功能. 性能计数器提供对各种系统活动的统计功能.能够找到有数百种性能计数器来针对Windows操作系统或者第三方应用程序的性能.SQLServer相同有数百个性能计数器供DBA使用. 在本文中,我们将跟踪下列相关CPU性能计

操作系统性能监控-网络IO

nicstat是监控网络IO的利器 1.查看网卡信息   2.查看网卡间隔2秒,2次 Time列:表示当前采样的响应时间. lo and eth0 : 网卡名称. rKB/s : 每秒接收到千字节数. wKB/s : 每秒写的千字节数. rPk/s : 每秒接收到的数据包数目. wPk/s : 每秒写的数据包数目. rAvs : 接收到的数据包平均大小. wAvs : 传输的数据包平均大小. %Util : 网卡利用率(百分比). Sat : 网卡每秒的错误数.网卡是否接近饱满的一个指标.尝试去

Zabbix通过SNMP监控多核CPU使用率时, 计算CPU平均使用率

环境:没有Agent,只能通过SNMP监控时,需要获取多核CPU的平均使用率. ZABBIX的使用SNMP监控CPU使用率时,由于设备都是多核CPU,监控的都是单独某一核心的使用率,但单独某一核使用率过高触发告警实际意义不大. 所以写了一个"外部检查"查询CPU的每个核心的使用率,然后再计算该设备CPU的总体的一个使用率. cd /usr/local/share/zabbix/externalscripts/ vim /usr/local/share/zabbix/externalsc

Linux常用系统性能监控命令

-->Linux常用系统性能监控命令 Linux常用系统性能监控命令 2016-01-19 Linux爱好者 Linux爱好者 Linux爱好者 微信号 LinuxHub 功能介绍 伯乐在线旗下账号,「Linux爱好者」专注分享 Linux/Unix 相关内容,包括:工具资源.使用技巧.课程书籍等.   来源:工学1号馆 链接:http://wuyudong.com/archives/56 监控CPU使用率 使用下面的命令: [[email protected] ~]# gnome-system

collectd 检测cpu使用率

进阶 1. 为collectd 增加一个python的plugin来监控cpu 使用率 https://blog.csdn.net/ffeiffei/article/details/50670411 2. How to Write a Collectd Plugin with Python https://www.tuicool.com/articles/niiIFra 原文地址:https://www.cnblogs.com/shaohef/p/9348102.html