一、操作系统监控数值项
模块 | 监控命令 |
CPU | lscpu、cpuinfo、top、atop、vmstat、mpstat、pidstat、Dstat、Nmon、sar、cpupower、irqbalance |
Memory | top、atop、vmstat、pidstat、Dstat、Nmon、sar、free、smem |
I/O | iostat、iotop、pidstat、Dstat、Nmon、sar |
Network | netstat、ifstat、iftop、Ethtool |
System | top、atop、vmstat、pidstat、Nmon、sar |
Swap | vmstat、Nmon、sar、Meminfo、smem |
当工具让你眼花缭乱的时候,不要忘记最初的目标,我们要监控的是这几大模块:CPU、 I/O、Memory、Network、System、Swap。下图为各个模块各个计数器对应的监控命令。
二、CPU
CPU计数器常见的问题大部分都是体现在这几个计数器上:
- us 【us CPU 是用户态进程消耗的 CPU 百分比】
- wa 【wa cpu是 I/O 读写等待消耗的 CPU 百分比】
- sy 【sy CPU 是内核消耗的 CPU 百分比】
- si 【si CPU 是软中断消耗的 CPU 百分比】
首先,为了确定看到 CPU 高之后,接着往下分析的方向是绝对没有错的,建议用Perf top -g先看一下 CPU 热点。perf默认用的是cpu-clock事件。这一步只是为了确定方向对不对。
简单点来说,当出现异常或资源争用时,它是用来管理秩序的。CPU 正在吭哧吭哧着干活 呢,突然来了一个优先级高的,needs immediate attention,这时就会发一个中断信号给 CPU。作为一个干活的,CPU 谁的话都得听,这时候就把手头的工作现场保存一下,干这 个优先级高的活。除非这个中断是致命的,不然 CPU 会在干完这个活之后再回去干之前的 活,这就是一次软中断。
三、IO
当一个系统调到非常精致的程度时,基本上会卡在两个环节上,对计算密集型的应用来说,会卡在CPU上;对I/O密集型的应用来说,瓶颈会卡在I/O上。
svctm代表 I/O 平均响应时间。请注意,这个计数器的数据不一定准。
w_await表示写入的平均响应时间;r_await表示读取的平均响应时间;r/s表示每秒读取次数;w/s表示每秒写入次数。
IO/s 的关键计算是这样的:
IO/s = r/s + w/s
从上面的Total DISK WRITE/READ就可以知道当前的读写到底有多少了,默认是按照 I/O列来排序的,这里有Total,也有Actual。Total的值显示的是用户态进程与内核态进程之间的速度,而Actual显示的是内核块设备子系统与硬件之间的速度。而在I/O交互中,由于存在cache和在内核中会做I/O排序,因此这两个值并不会相同。如果要看磁盘的读写能力怎么样,应该看的是Actual。
四、Memory
total肯定是要优先看的,其次是available,这个值才是系统真正可用的内存,而不是 free。因为Linux通常都会把用的内存给cache,但是不一定会用,所以free肯定会越来越少, 但是available是计算了buff和cache中不用的内存的,所以只要available多,就表示内存够用。
五、NetWork
数据发送过程是这样的:应用把数据给到tcp_wmem就结束它的工作了,由内核接过来之后,经过传输层,再经过队列、环形缓冲区,最后通过网卡发出去。
数据接收过程则是这样的:网卡把数据接过来,经过队列、环形缓冲区,再经过传输层,最后通过tcp_rmem给到应用。
六、System
最常见的System的计数器是in(interrupts:中断)和cs(context switch:上下文切换)。cs也比较容易理解,就是CPU不得不转到另一件事情上,听这一句你就会知道,中断时肯定会有cs。但是不止中断会引起cs,还有多任务处理也会导致cs。因为cs是被动的,这个值的高和低都不会是问题的原因,只会是一种表现,所以它只能用来做性能分析中的证据数据。
七、Swap
Swap 的逻辑是在磁盘上创建的一个空间,当物理内存不够的时候,可以保存物理内存里的数据.
也就是说,当操作系统中配置了vm.swappiness是 30%,那么当内存用到1-30%=70%的时候,就会发生Swap。注意,下面还有一个参数叫vm.min_free_kbytes。即使把 vm.swappiness改为0,当内存用到小于vm.min_free_kbytes时照样会发生Swap。
想关掉Swap就swapoff -a。
在性能测试和分析中,建议是直接把它关了。为什么呢?因为当物理内存不足的时候,不管怎么交换性能都是会下降的,不管是Swap还是磁盘上的其他空间,都是从磁盘上取数据,性能肯定会刷刷往下掉。
标签:free,Nmon,性能,笔记,Swap,测试,cs,CPU,内存 From: https://www.cnblogs.com/wsmbszyn/p/17779334.html