第十一讲: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、网络以及内存使用情况。

  

  

  

 

 

 

  

 

  

  

 

  

  

  

  

  

  

 

posted @ 2020-03-27 17:26  痞子胥  阅读(610)  评论(0)    收藏  举报