进程管理工具 htop 、 glances 、dstat 的讲解

在Linux系统中,程序的启动是通过调用库中的指令来程序完成,当程序运行时,即进入内核进行调用,然后内核将指令传输给CPU进程执行。当然单个程序在CPU上运行时,内存空间都是给了单个程序,随着现代的需要,有许多计算机科学家的努力,计算机都是多进程的,当多个进程在计算机上运行时,将会虚拟出多个内存,让单个进程在单个虚拟内存上运行。内核通过将内存分为单独的多个page frame,大小为1k、2k、4k,单个虚拟的内存空间通过实际的内存中取出一定的page frame 线性排列,虚拟成一个内存,用于运行单个程序;因此当有多个程序需要运行时,内存将多个page frame送至CPU运行,不过这样以来,会有许多的需要计算的内存片段,因此,有必须对定义程序的优先级,例如CPU密集型的优先,IO密集型的优先级低。

Linux的进程的优先级有140个,1~99实时优先级,数字越大优先级越高,100~139(静态优先级、动态优先级),数字越小,优先级越高。通过更改ni值来调节优先级。ni值的范围是-20~19.

下面来讲解几个系统管理的命令工具htop、glances以及dstat。


htop是由第三方epel提供,不是由系统自带的,我们可以通过yum info htop来查看摘要信息,可以通过yum install htop来安装htop。我们使用htop命令,会得到如下界面。

技术分享

从上之下来说,首先头部的信息:

技术分享      1、2、3、4是指的CPU的使用情况,由于我虚拟了4个CPU所有显示的4个CPU的使用情况,然后是内存以及交换分区的使用情况。右边Tasks指明的是进程总数,Load average 是指系统1min、5min、10min的平均负载情况,uptime是指系统运行的时间。

技术分享

下面的分别指的是:

 PID:进程号;

 USER:属于哪个用户;

 PRI:当前进程的优先级;

 NI:至的是nice值,即优先级,范围-20~19,数值越小,优先级越高;

 VIRT:进程占用的虚拟内存值;

 RES:进程占用的物理内存值;

 SHR:进程占用的共享内存值;

 S:表示进程状态,R表示运行状态,S表示可中断睡眠,D不可中断睡眠,T不可以被调度,Z僵死态;

 CPU:该进程占用CPU的使用率;

 MEM:该进程占用的内存占总内存的百分比;

 TIME:该进程启动后占用CPU的时间;

 Command:进程启动命令名称;


技术分享

最后一行

F1为htop的帮助信息

F2为htop的设定

F3为搜索进程

F4为过滤过滤

F5为显示树形结构

F6为选择排序方式

F7为可减少nice值,提高优先级

F8为可增加nice值,降低优先级

F9可对进程传递信号

F10为退出htop


glances 工具可以在用户的终端上实时显示重要的系统信息,并动态地对其进行更新。这个高效的工具可以工作于任何终端屏幕。另外它并不会消耗大量的 CPU 资源,通常低于百分之二。glances 在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新。您也可以自己将这个时间间隔更改为更长或更短的数值。glances 工具还可以将相同的数据捕获到一个文件,便于以后对报告进行分析和绘制图形。输出文件可以是电子表格的格式 (.csv) 或者 html 格式。

    先列举一下glances的常用选项:

glances  [-bdehmnrsvyz1]  [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh][-f file] [-o output]

 

        -b :以 Byte/s为单位显示网卡设备数据交换速率;

        -d :关闭磁盘I/O功能模块

        -f:   /PATH/TO/SOMEFILE :设置输出文件的位置及格式;

        -o :以{HTML|CSV}的格式输出

    -m:关闭 mount功能模块

        -n:关闭网络功能模块

        -r :关闭进程列表功能模块

        -t :设定延时时长

        -1 :单独显示每颗CPU相关负载数据信息;

技术分享

 

      glances还支持远程模式,即可以C/S模式工作,Server 以监听模式启动glances;  Client  以远程模式启动glances,远程连入指定服务器,并server上相关性能数据; glances -s -B IPADDR(IP地址)指定可以开启服务模式,然后客户端

用此 glances -c IPADDR指令,可以连接到远程服务器用于监视。

       

 

  最后来简单说下dstat这个指令。dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具., 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3 3即每三秒收集三次, 而且可以通过 --out FILE,将得到的结果输入到文件中。

 

 dstat [-afv] [options..] [delay [count]]

 

-c  :显示CPU性能指标相关的统计数据;

-d :显示disk读写

-g :显示page相关的速率数据

-i :中断相关的速率数据

-l :显示load average 相关的统计数据

-m :显示memory相关的统计数据

-n :显示网络收发数据的速率

-N :只显示指定网卡的速率

-p :显示进程相关的速率数据,

-r  IO请求的速率;

-s :显示swap的速率

-y :显示系统相关的数据,包括终端和进程切换

 

--top-cpu :显示最占用CPU的进程

--top-bio   :显示最消耗block io的进程;

--top-io :显示最占用io的进程

--top-men :最占用内存的进程

 

--ipc :显示进程间通信相关的速率数据;

--raw :显示raw套接的相关数据

--tcp  :显示tcp套接字的相关数据

--udp  :显示udp 套接字的相关数据

--unix  :显示unix sock接口的统计数据

--socket : tcp , udp ,unix 统计此三个

 

总而言之,dstat是强大的实时观察工具。

 







本文出自 “LinuxNew” 博客,请务必保留此出处http://jimchen.blog.51cto.com/10026955/1632885

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。