详解Linux性能指标:处理器、内存、网络和磁盘
概述
一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息。通常来说运维人员、系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候,这些蛛丝马迹往往会帮助快速定位跟踪问题。 下面主要 从处理器、内存、网络和磁盘四个方面来介绍下Linux性能指标。
处理器指标
处理器指标如下:
1、CPU利用率
这个可能是最直接的指标,它全面展示了每个处理器的利用率。在IBM Systemx架构 中,如果CPU利用率持续高于80%,就可能遇到了处理器瓶颈。
2、用户时间
表示CPU在用户进程上的时间百分比,包括nice时间。用户时间值高是一个较好的状 态,在这种情况下,系统在处理真正的任务。
3、系统时间
表示CPU花在内核操作上的时间百分比,包括IRQ和softirq时间。持续的高系统时间可以 指出网络和驱动栈的瓶颈。CPU花在内核上的时间越少越好。
4、等待
CPU花在等待I/O操作上的时间总和。类似blocked值,系统不应该把大量时间花在等待 I/O操作上;否则,你应该调查I/O子系统的性能。
5、空闲时间
表示系统处于空闲等待任务的时间比。
6、Nice时间
表示CPU花在re-nicing进程,改变进程执行顺序和优先级上的时间。
7、平均负载
- 平均负载不是百分比,是下面的和的滚动平均值:
- 在队列中等待被处理的进程数 等待非中断任务完成的进程数
- 是TASK_RUNNING和TASK_UNINTERRUPTIBLE的和的平均值。如果进程请求 CPU时间被阻塞(表示CPU没有时间处理它们),平均负载就会升高。另一方面, 如果每个进程直接就能获得CPU时间并且没有CPU周期丢失,负载就会降下来。
8、可运行进程
表示已经准备好要执行的进程。这个值不应该持续超过CPU个数的10倍,否则就是出现 了CPU瓶颈。
9、阻塞的
在等待I/O操作完成的时候,进程不能执行。阻塞进程可以指出你的I/O瓶颈。
10、上下文切换
系统上有大量的切换在线程间发生,在有大量中断和上下文切换发生时,表示驱动或应 用程序出现了问题。一般来说,上下文切换不是好现象,因为CPU缓存需要刷新,但是 有些上下文切换是必要的。
11、中断
中断值包含硬中断和软中断。硬中断对系统性能有更大的影响。高中断值指示了软件瓶 颈,无论是内核还是驱动程序层面的。记住中断值包含CPU时钟引起的中断。
内存指标
如下是内存度量值:
1、空闲内存
和其它操作系统相比,不应该过分担心Linux内存的问题。Linux把大部分没用到的内存作为文件系统缓存,所以计算空闲内存的时候还得加 上已用内存中的缓冲(buffer)和缓存(cache)大小。
2、swap利用率
这个数值表明已经使用的swap的空间。swap使用 率只是表明Linux的内存管理有多么高效。SwapIn/Out才是识别内存瓶颈的手段,长时间 每秒200到300以上的swapin/out次数表明可能出现内存瓶颈。
3、缓冲和缓存
cache被用作文件系统缓存和块设备缓存。
4、Slabs
描述内核的内存使用量。注意,内核页不能page out到磁盘。
5、活动和非活动内存
提供关于系统中活动的内存信息。非活动内存是可能由kswapd守护进程交换到磁盘的候选。
网络指标
以下是网络指标:
1、接收和发送的包
这个指标告诉你指定网络接口的接收和发送网络包的数量。
2、接收和发送的字节
这个值是指定网卡的发送和接收的字节数。
3、每秒碰撞
这个值提供了各个网络接口所连接网络的所发生的冲突数量。持续的冲突可能是由于网 络基础设施导致的,而不是服务器。在大多数正确配置的网络中,碰撞很少发送,除非 网络是由集线器组成的。 丢包 这是被内核丢弃的包的数量,可能是防火墙配置导致的,也可能是由于缺少网络缓冲。
4、过载
过载表示网络接口用光缓冲空间的次数。这个指标应该和丢包联合起来使用,来判断 瓶颈是由网络缓冲还是网络队列长度导致的。
5、错误
被标识为故障的帧数目。这通常是由于网络不匹配或者部分网线损坏导致的。在铜基千兆中,部分损坏网线可能导致显著的网络性能问题。
磁盘设备指标
以下是磁盘设备的相关指标:
1、IO等待
CPU花在等待I/O操作发生上的时间。该值长时间飙高预示着可能出现了I/O瓶颈。
2、平均队列长度
未完成的I/O请求数量。通常,2到3的磁盘队列是很理想的;太高可能表示出现了I/O瓶 颈。 3、平均等待
一个IO请求被服务的平均等待时间,以毫秒计算。等待时间由真实的I/O操作时间和I/O队 列的等待时间组成。
4、每秒传输
表示每秒有多少个I/O操作被执行(读和写)。transferspersecond和kBytespersecond 可以联合使用,来表示系统每秒的平均传输大小。平均传输大小通常应该和所使用的磁 盘子系统的条带大小相匹配。
5、每秒读写块
在内核2.6中,它表示每秒读取和写入1024字节块的数目。更早的内核,块大小可能不一 样,从512字节到4K字节不等。
6、每秒读写的千字节
从块设备读和写的千字节,表示从块设备中读取和写入的实际大小。
后面会分享更多关于devops和DBA方面的内容,感兴趣的朋友可以关注下!!