(6)Linux性能调优之理解Linux性能指标

1、前言

前面咱们谈了的内容以下:缓存

(1)Linux性能调优之Linux进程管理bash

(2)Linux性能调优之Linux内存体系服务器

(3)Linux性能调优之Linux文件系统网络

(4)Linux性能调优之磁盘I/O子系统工具

(5)Linux性能调优之网络子系统post

这一节咱们将谈下Linux的性能指标。性能

2、概览

在咱们学习各种调优参数和性能分析工具以前,咱们先理解各个衡量指标和它们在系统性能 中所表示的含义。由于Linux是开源操做系统,因此它有不少性能测试工具。你最终选择的工 具,是根据你的偏好和具体需求来决定的。尽管有不少工具可用,可是它们所衡量的指标是 同样的,因此理解了指标,你可使用任何工具。学习

3、处理器指标

处理器指标以下:测试

  • CPU利用率(CPU utilization) 这个多是最直接的指标,它全面展现了每一个处理器的利用率。通常状况下,若是CPU利用率持续高于80%,就可能遇到了处理器瓶颈。
  • 用户时间(User time) 表示CPU在用户进程上的时间百分比,包括nice时间。用户时间值高是一个较好的状 态,在这种状况下,系统在处理真正的任务。
  • 系统时间(System time) 表示CPU花在内核操做上的时间百分比,包括IRQ和softirq时间。持续的高系统时间多是网络和驱动栈的瓶颈。CPU花在内核上的时间越少越好。
  • 等待(Waiting) CPU花在等待I/O操做上的时间总和。相似blocked值,系统不该该把大量时间花在等待 I/O操做上;不然,你应该调查I/O子系统的性能。
  • 空闲时间(Idle time) 表示系统处于空闲等待任务的时间比。
  • Nice时间(Nice time) 表示CPU花在re-nicing进程,改变进程执行顺序和优先级上的时间。
  • 平均负载(Load average) 平均负载不是百分比,是下面的和的滚动平均值:
1.在队列中等待被处理的进程数
2.等待非中断任务完成的进程数
复制代码

是TASK_RUNNING和TASK_UNINTERRUPTIBLE的和的平均值。若是进程请求 CPU时间被阻塞(表示CPU没有时间处理它们),平均负载就会升高。另外一方面, 若是每一个进程直接就能得到CPU时间而且没有CPU周期丢失,负载就会降下来。spa

  • 可运行进程(Runable processes) 表示已经准备好要执行的进程。这个值不该该持续超过CPU个数的10倍,不然就是出现 了CPU瓶颈。
  • 阻塞的(Blocked) 在等待I/O操做完成的时候,进程不能执行。阻塞进程能够指出你的I/O瓶颈。
  • 上下文切换(Context switch) 系统上有大量的切换在线程间发生,在有大量中断和上下文切换发生时,表示驱动或应 用程序出现了问题。通常来讲,上下文切换不是好现象,由于CPU缓存须要刷新,可是 有些上下文切换是必要的。
  • 中断(Interrupts) 中断值包含硬中断和软中断。硬中断对系统性能有更大的影响。高中断值指示了软件瓶 颈,不管是内核仍是驱动程序层面的。记住中断值包含CPU时钟引发的中断。

4、内存指标

以下是内存度量值:

  • 空闲内存(Free memory) 和其它操做系统相比,不该该过度担忧Linux内存的问题。在“虚拟内存管理”一节中已经 说过,Linux把大部分没用到的内存做为文件系统缓存,因此计算空闲内存的时候还得加 上已用内存中的缓冲(buffer)和缓存(cache)大小。
  • Swap利用率(Swap usage) 这个数值代表已经使用的swap的空间。如“虚拟内存管理”一节中所说的那样,swap使用 率只是代表Linux的内存管理有多么高效。Swap In/Out才是识别内存瓶颈的手段,长时间 每秒200到300以上的swap in/out次数代表可能出现内存瓶颈。
  • 缓冲和缓存(Buffer and cache) cache被用做文件系统缓存和块设备缓存。
  • Slabs 描述内核的内存使用量。注意,内核页不能page out到磁盘。
  • 活动和非活动内存 提供关于系统中活动的内存信息。非活动内存是可能由kswapd守护进程交换到磁盘的候 选。

5、网络指标

如下是网络指标:

  • 接收和发送的包(Packets received and sent) 这个指标告诉你指定网络接口的接收和发送网络包的数量。
  • 接收和发送的字节(Bytes received and sent) 这个值是指定网卡的发送和接收的字节数。
  • 每秒碰撞(collisions per second) 这个值提供了各个网络接口所链接网络的所发生的冲突数量。持续的冲突多是因为网 络基础设施致使的,而不是服务器。在大多数正确配置的网络中,碰撞不多发送,除非 网络是由集线器组成的。
  • 丢包 这是被内核丢弃的包的数量,多是防火墙配置致使的,也多是因为缺乏网络缓冲。
  • 过载(Overruns)  过载表示网络接口用光缓冲空间的次数。这个指标应该和丢包联合起来使用,来判断 瓶颈是由网络缓冲仍是网络队列长度致使的。
  • 错误(Errors) 被标识为故障的帧数目。这一般是因为网络不匹配或者部分网线损坏致使的。在铜基千 兆中,部分损坏网线可能致使显著的网络性能问题。

6、块设备指标

如下是块设备的相关指标:

  • IO等待(Iowait) CPU花在等待I/O操做发生上的时间。该值长时间飙高预示着可能出现了I/O瓶颈。
  • 平均队列长度(Average queue length) 未完成的I/O请求数量。一般,2到3的磁盘队列是很理想的;过高可能表示出现了I/O瓶 颈。
  • 平均等待(Average wait) 一个IO请求被服务的平均等待时间,以毫秒计算。等待时间由真实的I/O操做时间和I/O队 列的等待时间组成。
  • 每秒传输(Transfers per second) 表示每秒有多少个I/O操做被执行(读和写)。transfers per second和kBytes per second 能够联合使用,来表示系统每秒的平均传输大小。平均传输大小一般应该和所使用的磁 盘子系统的条带大小相匹配。
  • 每秒读写块(Blocks read/write per second) 在内核2.6中,它表示每秒读取和写入1024字节块的数目。更早的内核,块大小可能不一 样,从512字节到4K字节不等。
  • 每秒读写的千字节(Kilobytes per second read/write) 从块设备读和写的千字节,表示从块设备中读取和写入的实际大小。
相关文章
相关标签/搜索