mysql nginx Firefox 微软 shell linux命令 wordpress 程序员 Windows linux 开源 apache google centos Ubuntu HTML5 php java Android Python

调优指南:了解Linux性能指标

在我们了解Linux 操作系统中各种调优参数和性能度量工具前,有必要讨论一下关于系统性能的各种可用指标和他们的意义。我们只涉及了最重要的一些指标。

处理器性能指标

【CPU Utilization】

CPU 使用率,这可能是最直接的指标了,它表示每个处理器的整体使用率。在IBM System x 架构中,如果在持续一段时间里CPU 使用率超过80%,就可能预示着CPU 出现了瓶颈。

【User time

用户时间,表示用户进程所花费的CPU 百分比,包括nice 时间。在用户时间值很高的情况下,表明系统正在执行实际的工作。

【System Time】

系统时间,表示内核操作所花费的CPU 百分比,包括硬中断(IRQ) 和软中断(SoftIRQ)。系统时间值持续很高表明网络或驱动器堆栈可能存在瓶颈。通常系统只花费很少时间在内核时间上。

【Waiting】

等待,花费在等待I/O 操作所需的CPU 时间总和,与阻塞【Blocked】值相似,系统不应该花费过多的时间等待I/O 操作;否则你应该检查一下I/O子系统各方面性能。

【Idle time】

空闲时间,表示CPU 空闲的百分比。

【Nice time】

Nice 时间,表示花费在执行re-nicing(改变进程的执行顺序和优先级)进程的CPU 百分比。

【Load average】

平均负载,不是百分比,是TASK_RUNNING 和TASK_UNINTERRUPTIBLE 之和的平均值。如果请求CPU 时间的进程发生阻塞,平均负载将会上升。相反如果每个进程都可以立即执行不会错过CPU周期,平均负载就会降低。

【Runable processes】

可运行进程,表示准备执行的进程。这个值在持续一段时间内应该不会超过物理处理器数量的10 倍,否则CPU 可能存在瓶颈。

【Blocked】

堵塞,在等待I/O 操作完成前,进程是不能继续执行。进程堵塞可能意味着I/O 存在瓶颈。

【Context switch】

上下文交换,系统中进程之间进行交换的数量。上下文交换次数过多与大量的中断有关,这可能暗示着驱动器或应用程序存在问题。通常是不需要上下文交换的,因为每次只需要刷新CPU 缓存,但有些上下文交换是必要的。

【Interrupts】

中断数量中包括硬中断和软中断。硬中断会对系统性能产生非常不利的影响。高中断值表明软件存在瓶颈,可能是内核或者驱动。请记住中断值中也包括CPU 始终所导致的中断。

内存性能指标

free memory】

空闲内存,与其它操作系统相比,不必过分在意空闲内存值。Linux 内核将大量未使用的内存分配作为文件系统缓存使用,所以在已用内存扣除用于缓冲和缓存的数量得到实际空闲内存。

【Swap usage】

交换空间使用,这个值表示已使用的交换空间数量。交换空间的使用只能告诉你Linux 在管理内存上是多么有效。要想确定内存是否存在瓶颈,Swap In/Out 的数量才以为着用来。如果Swap In/Out 长时间保持在每秒钟超过200 到300 页以上可能表示内存存在瓶颈。

【Buffer and cache】

缓冲与缓存,被用来作为文件系统和块设备的缓存

【Slabs】

表示内核所使用的内存。注意内核的页是不能被交换到硬盘上的。

【Active versus inactive memory】

活动与非活动内存,提供关于活动内存的相关信息。非活动内存会作为候选被kswapd 交换到硬盘。

网络性能指标

【Packets received and sent】

特定网卡已收到和已发送的封包数量。

【Bytes received and sent】

特定网卡已收到和已发送的字节数量。

【Collisions per second】

每秒钟冲突数,发生在指定网卡的网络冲突的数量。持续出现冲突值表示在网络架构中存在瓶颈而不是服务器。在大多数正确配置网络中,冲突是非常罕见的,除非网络架构是由hub 组成的。

【Errors】

错误,被标示为失败的帧的数量。这经常是由于网络不匹配或部分网线损坏引起的。对于铜缆千兆网部分网线损坏会产生严重的性能问题。

延伸阅读

评论