Linux进程管理工具详解:htop、glances、dstat

1.进程相关知识

   

1.操作系统的功能:文件系统、网络功能、进程管理、内存管理、安全功能、驱动程序(Linux是一个多任务的操作系统,而且是抢占式的多任务操作系统);.OS其实就是提供虚拟的计算机,进而能够将有限的资源借助于“保护”机制分配多个同时运行的程序,即“进程”使用,从而实现了所谓的多任务

2.程序执行环境有2种:

内核模式:cpu运行内核级指令

用户模式:cpu运行普通指令

3.应用程序运行普通指令,其实是直接运行于cpu上;应用程序运行特权指令,是通过系统调用(system call)

4.特权指令是指操作硬件的指令。即总线、I\O,控制器;普通指令:计算加、减、乘、除等

5.进程调度(多个进程进行运行时,CPU就要分配时间片给各个进程运行),是有一定的进程调度算法来调优的。

6.进程分类:

CPU bound(CPU密集型):需要跟多的cpu来运行

I/O bound(I/O密集型):需要更多的I/O来运行

7.进程优先级(优先级越高越有资源分配的权利),Linux中进程 优先级有140个优先级,

范围是0-139.其中1-99是实时优先级,数字越大优先级越高;

100-139是静态优先级,数字越小优先级越高。

动态优先级是有内核在维护的。

8.进程的创建是由创建父进程开始的,即进程的请求发出者。由内核负责创建:fork()---创建父进程,然后再创建子进程clone()

9.进程的状态分为:

1.运行态(running)

2.睡眠态(sleeping):分为可中断睡眠态和不可中断睡眠态(后者是通常是被I/O阻塞的进程)

3.就绪态

4.停止态

5.僵死态

10.进程任务结构(task struct:用于保存每个进程的元数据信息,例如:pid、ppid、memory、thread、files)。进程内部组织结构,即进程的线性地址空间

11.task list:用一种称作“链表”的数据结构来保存每个进程的task struct

12.进程切换(context switch),切换进程一定要保存现场,等下一次运行或切换到此进程时,要恢复现场。进程切换是有确定的切换频率(比如100HZ--1S可以切换100次)

13线程(thread):让一个进程中有多个流水线,是进程中的子单位,进而实现运行在多个cpu上。线程是更轻量的、可被单独调用的运行单元,而且还可以共享进程的资源,如打开文件等。线程不能同时运行.线程只适用与多核cpu上,而且是跟进程同级被调度的单位

14.进程常见专用术语

LWP(Light Weight Process)---轻量级线程

COW(Copy On Writing)---时复制

CFS---完全公平调度器

PID---进程的标识号

    

2.工具详解

  1.htop命令

       用法:htop [-dChusv]

   交互式命令:

u:过滤仅显示用户的进程

s:跟踪选定的进程所发起的系统调用

l:显示选定进程所打开的文件

a:设定进程的cpu的亲缘性(将选定的进程绑定在指定的cpu上)

t:显示进程的进程树

选项:

-d #:延迟时常

-u USERNAME:仅显示指定用户的进程

-s COLUMN:根据指定的字段进行排序

监测界面各参数代表含义

首先,左上角:

分别表示cpu的1,2,3,4:4颗cpu的使用情况,

Mem表示内存使用情况,

Swap表交换分区使用情况

然后,右上角的:

Tasks:96,86:进程总数,当前运行进程数 ;

Load average:表示1分钟、5分钟、15分钟系统的平均负载情况,

Uptime:系统运行的时间

再然后,PID表示:进程的标识号;USER表示该运行进程的用户;

PRI:该进程的优先级;NI:该进程的nice值,进程的优先级别值,默认为0;

VIRT: 进程占用虚拟内存值;RES:进程占用的物理内存值     ;SHR:进程占用的共享 内存值;

S:进程的运行状态,R:表示正在运行。S:表示睡眠状态,等待唤醒。Z:表示僵死状态;

CPU%: 进程占用的cpu 百分比 ;MEM%: 进程占用的内存百分比 ;

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

Command:启动该进程的进程命令名称

   2.glances命令

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

     常用选项:

-b:以Bytes/s为单位显示网卡设备数据交换律

-d:禁用显示磁盘I/O的统计数据

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

-o {HTML|CSV}:设定输出格式即:HTML|CSV格式

-m:关闭mount功能模块

-n:关闭网络功能模块

-r:禁止显示进程列表

-t #:指定延迟时长,默认为3s

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

glances支持远程模式,即可以以C/S模式工作:
           Server: 以监听模式启动glances;
           Client: 以远程模式启动glances,远程连入指定服务器,并Server上的相关性能数据;
          
       服务模式:
         glances -s -B IPADDR
           -B: 用于指明监听的本地地址;
       
       客户端模式:
         glances -c IPADDR
           -c: 用于连入的服务器的地址;

   监测界面

监测界面各参数含义:

从上到下,依次表现cpu的使用情况、用户占用cpu的情况、系统占用cpu的情况、空闲的cpu情况

从上到下,依次表现为1min、5min、15min系统的平均负载情况

从上到下,第一列表现为内存使用情况、总共的内存打下、用户使用的内存大小、空闲的内存大小;第二列表现为活跃的内存大小、不活跃的内存大小、缓冲区的内存大小、缓存区的内存大小

从上到下,交换分区的使用情况(代表着系统)、swap总共大小、已用大小、空闲部分大小

从上到下依次表现为网络接口的状态,第二行:第一块网卡eth0的接收到的数据速率、发出去的数据速率;第3行:回环网卡lo的接收到的数据速率、发出的数据速率

从左到右:进程的总数(264thr)、1个进程处于正在运行状态、177个进程处于 睡眠状态、0个处于其他状态

分别表示sda[1|2|3]磁盘设备的读、写速率

分别挂载设备的内存使用情况,例:第二行分别表示"\"设备的名称、此设备已使用的内存大小、总共的内存大小。

分别表示:进程占用的虚拟内存大小、进程占用的物理内存大小、进程占用的cpu百分比、进程占用的内存百分比、进程的PID号、运行此进程的用户、启动该进程的进程命令名称

3..dtat命令

     用法:dstat [-afv] [options..] [delay [count]]

选项

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

-d:显示disk相关的速率数据

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

-i:显示中断(interrupt)相关的速率数据

-l:显示load average相关的统计数据(即负载)

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

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

-N eth#:显示指定接口的

-p:显示进程的相关的统计数据(新建进程的速率等)

-r:io请求的速率

-s:显示swap的相关数据

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

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

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

--top-mem:显示最占用内存的进程

--top-io:最占有cpu的进程

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

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

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

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

--unix:显示inux sock接口相关统计数据

--socket:显示上面所有的统计相关统计数据(total, tcp, udp, raw)

ip-fragments)

-a:即-cdngy

4.vmstat命令

    用法:

vmstat [-a] [-n] [-t] [-S unit] [delay [ count]]

vmstat [-s] [-n] [-S unit]

vmstat [-m] [-n] [delay [ count]]

vmstat [-d] [-n] [delay [ count]]

vmstat [-p disk partition] [-n] [delay [ count]]

vmstat [-f]

vmstat [-V]

     监测界面

监测界面各参数代表含义

 procs

r:运行的和等待(CPU时间片)运行的进程数,这个值也可以判断是否需要增加CPU(长期大于1)

b:处于不可中断状态的进程数,常见的情况是由IO引起的

Memory

swpd: 切换到交换内存上的内存(默认以KB为单位)。如果 swpd 的值不为0,或者还比较大,比如超过100M了,但是 si, so 的值长期为 0,这种情况我们可以不用担心,不会影响系统性能。

free: 空闲的物理内存

buff: 作为buffer cache的内存,对块设备的读写进行缓冲

cache: 作为page cache的内存, 文件系统的cache。如果 cache 的值大的时候,说明cache住的文件数多,如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi 会非常小。

Swap

si: 交换内存使用,由磁盘调入内存

so: 交换内存使用,由内存调入磁盘

【注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响。磁盘IO和CPU资源都会被消耗。观察系统性能应结合空闲内存(free)、si、so,如果free很少,但是si,so也很少(基本上为0),那么不用担心,系统性能这时不会受到影响】

     磁盘IO

bi: 从块设备读入的数据总量(读磁盘) (KB/s)

bo: 写入到块设备的数据总理(写磁盘) (KB/s)

【注意:随机磁盘读写的时候,bi、bo 值越大(如超出1M),能看到CPU在IO等待的值也会越大

 System

in: 每秒产生的中断次数

cs: 每秒产生的上下文切换次数

【注意:上面这2个值越大,会看到由内核消耗的CPU时间会越多Cpu】

cpu

usr: 用户进程消耗的CPU时间百分比

【注意:usr的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,就该考虑优化程序算法或者进行加速了】

sys: 内核进程消耗的CPU时间百分比

【注意:sys 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现】

wa: IO等待消耗的CPU时间百分比

【注意:wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)】

idl: CPU处在空闲状态时间百分比

时间: 2024-08-03 00:34:52

Linux进程管理工具详解:htop、glances、dstat的相关文章

Linux进程管理工具之top,htop,glances,dstat

借助于本次课程学习外加查阅网上资料,特针对top,glances.dstat做简单介绍. 接触过linux的人都会知道,刚才所述的几个都是与windows中任务管理器一样,只需在命令行中键入这几种命令,就可以定时刷新显示当前系统上各设备使用情况.比如CPU占用百分比.负载,硬盘读写速率,网络传输情况. top 其中显示的从上到下,从左到右各个的含义为: top:当前系统时间: up:系统运行时长: user:当前登陆的用户数: load average:平均负载(逗号隔开的三个数分别为过去一分钟

Linux进程管理工具详解

 进程管理工具 查看进程 pstree  显示进程树 -p:显示PID ps 搜索进程 ps | grep pgrep pidof 系统监控工具 uptime free top 第一行:当前系统时间  系统启动到现在所经过的时间  当前上线用户数  系统在1,5,15分钟的平均负载 相当于uptime命令:交互按键:l 注意:平均负载值越小,系统越空闲:如果高于1,当前系统负载过高 第二行:显示的是目前进程总量与个别程序在什么状态(running,sleeping,stopped,zombie)

Linux进程管理工具--God-详解(1)-入门

God是一个由Ruby编写的监控架构,它可以保障你的进程为运行状态,以及可以对一些特殊情况进行进程的重启.拓展可以通过frigga来进行全局god的管理. 最好的安装方式(通过ruby-gems): gem install god 快速启动 注意:快速启动需要0.12版本以上的,你可以使用以下命令查看版本: god --version 一个简单的例子:使用god保持一个简单的进程. 下面是一个简单的脚本,名字为hello.py #!/usr/bin/env python # import tim

Linux进程管理命令详解

一.ps命令:只显示命令运行这一刻的进程的状态  (一) /proc/:内核中的状态信息:通过这个接口输出给用户        1. 内核参数:            可设置参数:可设置其值从而调整内核运行特性的参数:/proc/sys/            状态变量:其用于输出内核中统计信息或状态信息,仅用于查看:        2. 参数:参数被模拟成文件系统类型:  (二)进程: /proc/#:在proc目录下都有一个以进程号命名的目录,这个目录存放了进程当前状态的各种信息      

Linux系统进程管理命令详解

Linux管理进程的最好方法就是使用命令行下的系统命令.Linux下面的进程涉及的命令有at, bg, fg, kill, crontab, jobs, ps, pstree, top, nice, renice, sleep, nohup. 1.at命令:定时运行命令 作用:at命令在指定时刻执行指定的命令序列. 格式: at [-V] [-q x] [-f file] [-m] time atq [-V] [-q x] atrm [-V] [-q x] job- batch [-V] [-f

Linux服务器管理工具之进程管理工具top、htop、glances、dstat详解

在企业生产环境中,系统管理员通常要不定时的检查服务器上各资源的使用状况,如CPU使用率,负载,磁盘的读写速率,网络传输状况等等.因此,掌握一个进程管理工具的熟练使用,无疑对管理员的工作有事半功倍的效果.本文借助CentOS6.6向读者尽可能详细讲解top.htop.glances.以及dstat工具的使用方法和技巧.    A.top工具 top是CentOS系统自带的一款动态显示系统资源使用状况的进程管理工具,类似于windows下的任务管理器,其支持交互式命令以及定制显示内容.在命令行键入t

linux 进程管理工具

进程管理 狭义定义:进程是正在运行的程序的实例. 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动.它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元. 进程是操作系统中最基本.重要的概念.是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上. 一.进程的属性: 进程ID(PID):是唯一的数值,用来区分进程: 父进程和父进程的ID(PP

Linux进程管理工具的使用

进程管理工具之一 htop htop是基于ncurses做的,可以说是top的升级版,htop在继承了top原有的功能外让界面更加友好,支持交互式操作并且可以使用鼠标操作. 在命令行里输入htop回车就会看到htop的界面(前提是系统上安装了htop) CPU:cpu使用率 Mem:内存使用率 Swp:交换空间的使用率 Tasks:进程数 thr:线程数 Load average:系统平均负载 Uptime:系统运行时间 下方快捷键 F1 打开帮助 F2 打开设定 F3 可以给出关键字进行搜索

linux进程管理工具一

内核最强大功能之一就是进程管理,对于system administrator来说,这部分熟练度对于系统调优起着决定性作用.现在我们一起来了解一下linux的进程管理工具吧,在介绍工具之前,有些基本概念要澄清: task struct:Linux内核存储进程信息的固定格式多个任务的的task struct组件的链表:task list MMU:Memory Management Unit  实现线性地址和物理地址的转换(根据task structure)虚拟内存集:可以被换出到swap的地址空间