多语言展示
当前在线:1346今日阅读:39今日分享:10

Linux系统性能分析

下面介绍一些免费的系统性能分析工具(命令),使用这些工具可以监控系统资源使用情况,便于发现性能瓶颈。1Linux的用户管理
工具/原料

CentOS 7.2

方法/步骤
1

系统的整体性能取决于各种资源的平衡,某种资源的耗尽会严重阻碍系统的性能。

2

Linux中需要监控的资源主要有 CPU、主存(内存)、硬盘空间、I/O时间、网络时间、应用程序等。

3

一般认为用户态CPU和内核态CPU花费的时间小于70%时是良好状态。

4

vmstat、sar、mpstat检测是否存在CPU瓶颈;

5

vmstat输出解释1)procs      r列表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,就说明CPU资源不足,可以考虑增加CPU;      b列表示在等待资源的进程数,比如正在等待I/O或者内存交换等。2)memory      swpd列表示切换到内存交换区的内存数量(以KB为单位)。如果swpd的值不为0或者比较大,而且si、so的值长期为0,那么这种情况一般不用担心,不会影响系统性能;      free列表示当前空闲的物理内存数量(以KB为单位);      buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲;      cache:列表示page cached的内存数量,一般作文件系统的cached,频繁访问的文件都会被cached。如果cached值较大,就说明cached文件数较多。如果此时IO中的bi比较小,就说明文件系统效率比较好。3)swap      si列表示由磁盘调入内存,也就是内存进入内存交换区的数量;      so列表示由内存调入磁盘,也就是内存交换区进入内存的数量      c.一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足,需要考虑是否增加系统内存。4)IO      bi列表示从块设备读入的数据总量(即读磁盘,单位KB/秒)      bo列表示写入到块设备的数据总量(即写磁盘,单位KB/秒)      这里设置的bi+bo参考值为1000,如果超过1000,而且wa值比较大,则表示系统磁盘IO性能瓶颈。5)system      in列表示在某一时间间隔中观察到的每秒设备中断数;      cs列表示每秒产生的上下文切换次数。      上面这两个值越大,会看到内核消耗的CPU时间就越多。6)CPU      us列显示了用户进程消耗CPU的时间百分比。us的值比较高时,说明用户进程消耗的CPU时间多,如果长期大于50%,需要考虑优化程序啥的。      sy列显示了内核进程消耗CPU的时间百分比。sy的值比较高时,就说明内核消耗的CPU时间多;如果us+sy超过80%,就说明CPU的资源存在不足。      id列显示了CPU处在空闲状态的时间百分比;      wa列表示IO等待所占的CPU时间百分比。wa值越高,说明IO等待越严重。如果wa值超过20%,说明IO等待严重。      st列一般不关注,虚拟机占用的时间百分比。

6

vmstat、free检测是否存在内存瓶颈;

7

iostat检测是否存在磁盘I/O瓶颈;

8

netstat检测是否存在网络I/O瓶颈。      netstat的输出结果可以分为两个部分:      一个是Active Internet connections,称为有源TCP连接,其中'Recv-Q'和'Send-Q'指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。      另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

9

netstat常见参数-a (all)显示所有选项,默认不显示LISTEN相关-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化成数字。-l 仅列出有在 Listen (监听) 的服務状态-p 显示建立相关链接的程序名-r 显示路由信息,路由表-e 显示扩展信息,例如uid等-s 按各个协议进行统计-c 每隔一个固定时间,执行该netstat命令。提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到例如列出所有监听 tcp 端口netstat -lt

推荐信息