Linux性能优化 第二章 性能工具:系统CPU

2.1 CPU性能统计信息

2.1.1运行队列统计

在Linux中,一个进程要么是可运行的,要么是阻塞的(正在等待一个事件的完成)。阻塞进程可能在等待从I/O设备来的数据,或者是系统调用的结果如果一个进程是可运行的,那就意味着它要和其他可运行的进程竞争CPU时间。一个进程不一定会使用CPU,但是当Linux调度器决定从下一要运行的进程时,它会从可运行进程队列中挑选。如果进程是可运行的,同时又在等待使用处理器,这些进程就构成了运行队列。运行队列越长,处于等待的进程就越多。

性能工具通常会给出可运行的进程个数和等待I/O的阻塞进程的个数。另一种常见的系统统计是系统的平均负载。

2.1.2 上下文切换

处理器(单核)通常一次只能处理一个进程或者线程,多任务的假象就是不断的在进程间切换。这种在不同的进程间的切换叫做上下文切换,因为当其发生时,CPU要保存旧进程的所有上下文信息,并取出新进程的所有上下文信息。上下文的切换涉及大量信息的移动,因此,上下文的切换开销是相当大的,应尽量减少。

上下文切换的产生可能是由内核的调度的结果。为了保证公平地给每个进程分配处理器时间,内核会周期性地中断运行的程序。在适当的情况下,内核调度器会决定开始另一个进程。这样的中断频率与服务器的架构和内核版本有关。检查办法可以查看/proc/interrupts文件。

后面的数减去前面的数再除以10,可以算出每秒CPU大概中断1000次。

2.1.3 中断

此外,处理器还周期性地从硬件设备接收中断。当设备有事件需要内核处理时,它通常就会触发这些中断。比如有外设插入设备,并准备好提供数据给内核,外设就会触发一个中断。内核收到的每个中断,如果已经有相应的已经注册的中断处理程序,就会运行该程序,否则就忽略这个中断。

2.1.4 CPU使用率

CPU使用率是个简单的概念。在任何时间,CPU可以执行以下几件事的其中一个:

1.         CPU可以是空闲的,等待有任务可以执行。

2.         CPU可以运行用户代码,即指定的用户时间。

3.         CPU可以执行内核中的应用程序代码,这就是系统时间。

4.         CPU可以执行比较友好的或者优先级较高的用户代码

5.         CPU可以处于iowait状态,即系统等待I/O的完成。

6.         CPU处于irq状态,即它正在用高优先级代码处理中断。

7.         CPU处于softirq模式,用低优先级代码处理中断。

2.2 Linux性能工具:CPU

2.2.1 vmstat(虚拟内存统计)

vmstat输出的部分说明


r


当前可运行的进程数。


b


等待I/O完成的被阻塞进程数


in


系统发生中断的次数


cs


系统发生上下文切换的次数


us


用户进程消耗的CPU时间百分比


sy


系统进程消耗的CPU时间百分比


id


系统空闲时间的百分比


wa


等待IO消耗的总的CPU时间百分比

vmstat默认显示

vmstat默认显示的是系统启动后记录信息的平均值。vmstat最有用的是运行在采样模式下,如下图:

vmstat  –s 可以显示更多的信息

更多用法可以网上搜索资料。

2.2.2 top

语法


top   [ -d delay ] [ -n iter ] [ -i ] [ -b ]

top参数说明


-d   delay


统计信息更新的时间间隔


-n   iterations


退出前的迭代次数,即更新次数


-i


是否显示空闲进程


-b


以批处理模式运行,会显示全部的进程

top运行时的部分参数


P


按CPU使用率排序


M


按内存使用率排序


N


按PID排序


A


进程信息的另一种显示方式,其内容为各种系统资源的最大消耗者


f


显示配置页面,选择屏幕要出现的统计信息


o


显示配置页面,修改显示在屏幕统计信息的顺序

执行top命令结果如下

top部分输出说明


PR


进程优先级,值越大代表优先级越高。RT代表实施优先级,该优先级高于标准范围


NI


nice值,nice值越高,系统认为该进程越不重要。


VIRT


系统使用虚拟内存的大小,单位为kb VIRT=SWAP+RES


RES


进程使用的,未被换出的物理内存大小,单位kb RES=CODE+DATA


SHR


共享内存的大小,单位kb

2.2.3 mpstat(多处理器统计)

语法


mpstat   [ -P {cpu | ALL } ] [ delay [count ]]

top参数说明


-P{   cpu |ALL }


设置监控的CPU


-d   delay


统计信息更新的时间间隔

mpstat可以用来确定CPU是否得到充分的利用,以及使用情况是否均衡。

2.2.4 sar(系统活动报告)

sar默认会输出过去一天(0点开始统计)的采样数据

sar 1 3 查看系统过去三秒钟的CPU采样数据

原文地址:http://blog.51cto.com/superpcm/2068838

时间: 2024-10-11 17:10:10

Linux性能优化 第二章 性能工具:系统CPU的相关文章

Linux性能优化 第一章 性能追踪建议

1.1常用建议1.1.1记大量的笔记(记录所有的事情)在做性能调优问题的时候很重要的一个操作就是记录下所有的事情,包括每一个输出.执行的结果.可以新建一个文件夹,然后把结果的文件都塞到该文件夹内.包括如下: 记录硬件/软件的配置情况,比如dmesg和uname –a的输出 保存并组织性能结果,记录系统配置的同时也要保存测试的结果. 写下命令行调用,可以把复杂的命令写成script或者记录到终端上. 记录研究信息和URL,将互联网找到的相关信息记录下来.记录这些信息之外,在调查问题时,还要牢记以下

Java性能优化的9大工具

在这篇文章中,我会带着大家一起看一下9个可以帮助我们优化Java性能的工具.有一些我们已经在IDR Solutions中使用了,而另外一些有可能在个人项目中使用. NetBeans Profiler NetBeans profiler是一个NetBeans IDE插件,主要为NetBeans IDE提供性能分析相关的功.NetBeans IDE是一个开源的集成开发环境.它很好地支持所有Java应用类型(包括Java SE.JavaFX.Java ME.Web.EJB和移动应用)的开发. 这个性能

sql2005性能优化(在32位系统上突破2G内存使用量的方法) .

转载自http://blog.csdn.net/soldierluo/article/details/6589743 服务器磁盘为(SAS)IBM组成RAID0+1,SQL2K5只识别4G内存,实际只占用2G内存.而使用 AWE的话,应用程序可以直接将操作系统允许的最大物理内存量保留为未分页的内存.使用 AWE 使 SQL Server 可以缓存详细信息,而不用从磁盘上的系统页面文件中读取详细信息.通过更快的数据访问提高了性能并减少了访问磁盘的频率.故决定打开SQL2K5的AWE参数,将6G的内

Android App性能优化笔记之一:性能优化是什么及为什么?

By Long Luo 周星驰的电影<功夫>里面借火云邪神之口说出了一句至理名言:“天下武功,唯快不破”. 在移动互联网时代,同样如此,留给一个公司的窗口往往只有很短的时间,如何把握住这个时机,迅速开发出产品,成为至关重要的一环.相对传统互联网时代的PC产品,用户对移动端产品的容忍度更低.而一款移动应用在推出的时候可能只是接近完成的状态,这就需要通过快速的迭代开发来更新产品,不断完善产品来留住用户.同时,通过更新产品也能唤醒一些沉默用户,让一些原本下载了应用但使用次数非常少的用户给该应用多一次

性能优化——Web前端性能优化

核心知识点: 1.排查网站性能瓶颈的手法:分析各个环节的日志,找出异常部分 2.Web前端:网站业务逻辑之前的部分(浏览器.图片服务.CDN) 3.优化手段 1)浏览器优化 (1)减少http请求 a.http请求的开销:建立通信链路.进行数据传输.,同时要启动独立的线程去处理. b.减少http的手段:合并CSS.合并JavaScript,合并图片,这样浏览器就只有一次请求. (2)使用浏览器缓存 a.将静态资源缓存到客户浏览器上, b.更新时是生成新的JavaScript文件,并更改html

mysql 查询性能优化第一章 为什么查询速度会慢

一 为什么查询速度会慢 在尝试编写快速的查询之前,咱们需要清楚一点,真正重要的是响应时间.如果把查询看成是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要有 优化查询,实际上要优化起子任务,要么消除其中一些子任务,要么减少子任务的执行次数,Mysql在执行查询的时候有哪些子任务,哪些子任务运行的速度很慢?这里还不好给出完 整的列表.一般来说,查询的生命周期大致可以按照顺序爱看:从客户端->服务器->然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端.其中执行

Linux性能优化实战:负载均衡与CPU使用率(01)

一.CPU使用率并没有直接关系 1.平均负载 单位时间内,系统处于可运行状态和不可终端状态的平均进程数也就是平均活跃进程数,它和cpu使用率并没有直接关系, 可运行状态: 正在使用的cpu或者正在等待cpu的进程 不可中断状态 进程是正处于内核关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备I/O响应,也就是我们在ps命令中看到的D状态的状态 或者中断打断的 ,这个时候的 进程处于不可终端状态,如果此时的进程被打断了 ,就容易出现磁盘数据与进程不一致的 问题 所以,不可中断

性能优化指南:性能优化的一般性原则与方法

作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统.本文从以下几个方面来思考这个问题:性能优化的一般性原则,性能优化的层次,性能优化的通用方法.本文不限于任何语言.框架,不过可能会用Python语言来举例. 不过囿于个人经验,可能更多的是从Linux服务端的角度来思考这些问题. 本文地址:http://www.cnblogs.com/xybaby/p/9055734.html 一般性原则 依据数据而不是凭空猜测 这是性能优化的第一

linux基础学习 第二章-第四章笔记

第二章 ####linux系统结构#### linux系统结构是倒树形 /bin        ###二进制可执行文件也就是系统命令 /sbin       ###系统管理命令存放位置 /boot       ###启动分区,负责系统启动 /dev        ###设备管理文件 /etc        ###大多数系统管理文件 /home       ###普通用户的家目录 /lib        ###32位系统库文件存放位置 /lib64      ###64位系统库文件存放位置 /me