第十一讲:CPU篇命令及字段总结整合
一:top命令:
(1):作用:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器;

(2):参数详解:
第一行:任务队列消息:同 uptime 命令的执行结果
(1):系统时间
(2):系统运行了多长时间
(3):当前登录用户数
(4):load average: 1.99, 2.12, 2.09 average后面的三个数分别是1分钟、5分钟、15分钟的平均负载情况
平均负载(load average),一般对于单个cpu来说,负载在0~1.00之间是正常的,超过1.00须引起注意。在多核cpu中,系统平均负载不应 该高于cpu核心的总数。
第二行:Tasks-任务(进程)
(1):进程总数(total)
(2):运行进程数(running)
(3):休眠进程数(sleeping)
(4):终止进程数(stopped)
(5):僵死进程数(zombie)
第三行:cpu状态信息
(1):us【user space】— 用户空间占用CPU的百分比
(2):sy【sysctl】— 内核空间占用CPU的百分比
(3):ni【】— 用户进程空间内改变过优先级的进程占用CPU的百分比
(4):id【idolt】—空闲cpu百分比,反映一个系统cpu的闲忙程度。越大越空闲
(5):wa【wait】— 等待输入输出(I/O)的cpu百分比
(6):hi【Hardware IRQ】— CPU处理硬件中断的时间占用CPU的百分比
(7):si【Software Interrupts】— CPU处理软件中断的时间占用CPU的百分比
第四行:内存状态
(1):total总的物理内存
(2):used使用物理内存大小
(3):free空闲物理内存
(4):buffers用于内核缓存的内存大小
第五行:swap交换分区信息
(1):total总的交换空间大小;
(2):used已经使用交换空间大小;
(3):free空间交换空间大小;
(4):cached缓冲的交换空间大小
(5):buffers与cached区别:buffers指的是块设备的读写缓冲区,cached指的是文件系统本身的页面缓存;他们都是Linux系统底层的机制,为了加速对磁盘的访问。
第六行:空行
第七行: 与ps相仿的各进程情况列表了
(1):PID — 进程id
(2):USER — 进程所有者
(3):PR — 进程优先级
解释:优先级:PR(Priority)所代表的值有什么含义?它其实就是进程调度器分配给进程的时间片长度,单位是时钟个数,那么一个时钟需要多长时间呢?这跟CPU的主 频以及操作系统平台有关,比如linux上一般为10ms,那么PR值为15则表示这个进程的时间片为150ms。
(4):NI — nice值。负值表示高优先级,正值表示低优先级
(5):VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
(6):RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
(7):SHR — 共享内存大小,单位kb
(8):S —进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
(9):%CPU — 上次更新到现在的CPU时间占用百分比
(10):%MEM — 进程使用的物理内存百分比
(11):TIME+ — 进程使用的CPU时间总计,单位1/100秒
(12):COMMAND — 进程名称(命令名/命令行)
二:mpstat 命令
(1):作用:是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标,这些信息存放在/proc/stat文件中。
(2):mpstat的语法如下:
mpstat [-P {cpu|ALL}] [internal [count]]

(3):使用mpstat命令
3.1:直接使用mpstat命令:
当mpstat不带参数时,输出为从系统启动以来的平均值。
3.2:使用mpstat -P ALL 5 2命令:
表示每5秒产生了2个关于处理器的统计数据报告,一共产生2个interval 的信息,然后再给出这2个interval的平均信息,默认时,输出是按照CPU 号排序;第一个行给出了从系统引导以来的所有活跃数据。接下来每行对应一个处理器的活跃状态。
(4):输出参数含义:


三:pidstat 命令
(1):作用:pidstat 是一个常用的进程性能分析工具,用来实时查看全部或指定进程的 CPU、内存、线程 或I/O 以及上下文切换等性能指标;pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
(2):pidstat 语法如下:
(3):使用pidstat命令
3.1:查看所有进程的 CPU 使用情况( -u -p ALL)


3.2:内存使用情况统计(-r)


3.3:显示各个进程的IO使用情况(-d)


3.4:显示每个进程的上下文切换情况(-w)


3.5:显示选择任务的线程的统计信息外的额外信息 (-t)


四:vmstat 命令
作用:vmstat 是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数。
1.vmstat和mpstat 命令的差别:mpstat 可以显示每个处理器的统计,而 vmstat 显示所有处理器的统计。因此,编写糟糕的应用程序(不使用多线程体系结构)可能会运行在一个多处理器机器上,而不使用所有处理器。从而导致一个 CPU 过载,而其他 CPU 却很空闲。通过 mpstat 可以轻松诊断这些类型的问题。
2.vmstat中所有关于CPU的总结都适合mpstat。当您看到较低的 %idle 数字时,您知道出现了 CPU 不足的问题。当您看到较高的 %iowait 数字时,您知道在当前负载下 I/O 子系统出现了某些问题。
五:dstat 命令:
作用:是一个新的性能工具,它吸收了 vmstat、iostat、ifstat 等几种工具的优点,可以同时观察系统的 CPU、磁盘 I/O、网络以及内存使用情况。

浙公网安备 33010602011771号