ps命令:

report a snapshot of the current processes

 

/proc/:内核中的状态信息;

内核参数:可设置其值从而调整内核运行特性的参数;/proc/sys/

状态变量:用于输出内核中统计信息或状态信息,仅用于查看;

 

 参数:被模拟成文件系统类型;

 

进程:

/proc/#

#:代表数字,为进程的PID

例如:

]# ls /proc/1/:表示系统的父进程,里面的文件都代表内核参数;

内核参数就是保存当前系统状态的;

]# cat /proc/1/cmdline:显示启动1号进程的命令行程序是什么;

]# cat /proc/1/maps:为内存映射,显示1号进程启动后用到的物理内存空间,且里面存了什么数据;

 

ps [options]

 

选项有三种风格:

       1   UNIX options, which may begrouped and must be preceded by a dash.

       2   BSD options, which may begrouped and must not be used with a dash.

       3   GNU long options, which arepreceded by two dashes.

Unix风格:必须使用-

BSD风格:不能使用-

GNU风格:使用--

 

启动进程的方式:

系统启动过程中自启动:与终端无关的进程;

用户通过终端启动:与终端相关的进程;

 

选项:

a:所有与终端相关的进程;

x:所有与终端无关的进程;

u:以用户为中心组织进程状态信息显示;

 

常用组合之一:psaux

 

例如:

]# ps a:显示所有与终端相关的进程;

]# ps x:显示所有与终端无关的进程;

]#  ps aux

显示字段表示含义:

USER:启动进程的用户;

PID:进程号;默认以PID排序;

%CPU:累计占用cpu的比率;

%MEM:内存空间占用比率;

VSZ:占用虚拟内存集的大小;

 

虚拟内存空间中数据的空间叫页面page,每个页面都映射到物理内存中的可用页框pageframe,且是不连续的;操作系统中可有共享库,多个进程可使用共享库,在内存中只存一份即可;

比如进程1虚拟内存空间中有5个页面,其中2个是使用的共享库的数据;

进程2虚拟内存空间中有4个页面,其中2个是使用共享库的数据;

那么,事实上,它们真正占用的空间是不包括共享库的,进程1占用为3个内存页框,进程2占用为2个内存页框;

 

RSSResidentSize常驻内存集;

 

内存空间分两类:物理内存和交换内存,当物理内存不够用是,可把一些数据放在交换内存上,但有些数据是不能放在交换内存中的就叫常驻内存集;

 

TTY?表示不知道终端是什么;如果知道就显示终端名称;

STAT:当前进程的状态;(BSD风格)

Rrunning,运行态;

Sinterruptablesleeping,可中断睡眠;

Duninterruptablesleeping,不可中断睡眠;

TStopped,停止态;

Zzombie,僵死态;

 

+:前台进程,运行在终端上,占用命令行;

l:多线程进程;

N:低优先级进程;

<:高优先级进程;

ssessionleader,会话进程首进程;

START:启动时间;

TIMEcpu累计运行时间;

COMMAND:有中括号的表示内核线程;

 

-e:显示所有进程;

-f:显示完整信息;

 

例如:

]# ps -e:可显示字段为PIDTTYTIMECMD

]# ps -ef:可显示字段为UIDPIDPPIDCSTIMETTYTIMECMD

PPID为父进程的进程号;

Ccpu占用百分比,cpuutilization

STIME:启动时间;

TTY:与终端相关;

TIME:累计运行时间;

CMD:启动进程的命令;

 

常用组合之二:ps-ef

 

-F:显示完成格式的进程信息;

 

例如:

]# ps -eF:可显示字段有:UIDPIDPPIDCSZRSSPSRSTSTIMETTYTIMECMD

PSR:进程运行在哪颗cpu上;

 

-H:以层级结构显示进程的相关信息(显示进程及子进程);

 

例如:

]# ps -eFH:查看所有进程,完成格式,以层级结构显示;

 

常用组合之三:ps-eFH

 

-o field1,field2,...:自定义要显示的字段列表,以逗号分隔;

常用的fieldpidnipripsrpcpustatcommttyppidrtprio

nincie值;-2019

prioritypriority,优先级;

rtprio:实时优先级;

psr:进程运行在哪颗cpu上;

pcpucpu的利用率;

ppid:父进程的进程号;

 

 

常用组合之四:o一定要写在后面,因为后面要带参数;

ps -eo

ps axo

 

例如:

]# ps axo pid,comm:查看pidcomm两字段,所有与终端相关,与终端无关的进程;

 

top命令:

display Linux processes

有点类似于windows中的任务管理器;以动态方式不断刷新的查看当前系统上状态信息;

 

显示字段说明:

 

top - 20:01:57 up  1:17,  1 user,  load average:0.00, 0.01, 0.05

Tasks: 356 total,   1 running, 355 sleeping,   0stopped,   0 zombie

%Cpu(s):  0.2 us,  0.3 sy,  0.0 ni, 99.5 id, 0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :  1003184 total,   724204 free,   127660used,   151320 buff/cache

KiB Swap:  2097148 total,  2097148 free,       0 used.   721960 avail Mem 

 

   PID USER      PR  NI   VIRT    RES    SHR S  %CPU %MEM    TIME+ COMMAND

 

20:01:57:为当前系统时间;

up:为运行时长;

user:登录当前系统的用户数量;

load average: 0.00, 0.01, 0.05

平均负载:过去1分钟,5分钟,15分钟的平均队列长度,(是在cpu上等待运行进程的队列长度,等待越长负载越大,通常队列长度总数量不能大于cpu数量);

Tasks:进程总数、运行态、睡眠态、停止态、僵死态进程的数量;

%Cpu(s)cpu占用百分比;

us:用户空间进程占用cpu百分比;

sy:内核空间占用cpu百分比;

ninice值调整后额外占用cpu的时间百分比;

id:空闲百分比;

wa:等待IO完成占用cpu的百分比;

hi:处理硬件中断占用cpu的百分比;

si:处理软中断占用cpu的百分比;

st:被虚拟化偷走的cpu的百分比;

KiB MemKiBSwap:以KiB为单位显示物理内存和交换分区的空间占用情况;

total:总空间;

free:空闲空间;

used:已用空间;

buff/cache:用于缓冲和缓存的空间(可回收,不算真占用,因此真正可用空间为free+buff/cache);

avail Men:可用内存空间;

 

显示进程状态字段说明:

PID

USER:用户;

PR:优先级;

NInice值;

VIRT:虚拟内存集;

RES:常驻内存集;

SHR:共享内存空间;

S:当前状态;

%CPUcpu占用累计时间百分比;

%MEN:内存占用百分比;

TIME+:运行时长;

COMMAND:启动命令;

 

显示时是默认以cpu百分比排序的,有很多交互式命令:

P:以占据cpu占用百分比排序;(默认)

M:以占据内存百分比排序;

T:以累计占用cpu时间排序;

 

首部信息:

uptime信息:l命令,开启或关闭;

taskscpu信息:t命令,开启或关闭;

内存信息:m命令,开启或关闭;

 

退出使用:q

修改刷新时间间隔:s设定;

指定PID,终止指定的进程:k PID

 

选项:

-d #:启动top命令,指定刷新时间间隔,默认3秒;

-b:以批次方式显示所有进程状态信息;

-n #:显示多少批次;

1:可以分散显示cpu各个核心信息;

 

例如:

]# top -b -n1:仅显示一批次所有进程状态信息,就退出;

 

htop命令:

交互式进程查看器

各显示字段同top

 

选项:

-d #:指定延迟时间间隔;

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

-s COLUME:以指定字段进行排序;

子命令:

top相同;

l:显示选定进程打开的文件列表,能跟踪一个进程所打开的文件;

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

tF5:以层级关系显示各进程状态,树状结构显示进程父子关系;

a:将选定的进程绑定在指定的CPU核心,设置进程在哪颗CPU上运行(affinity);

F2:设定显示格式、显示方式等

 

u:显示用所有户进程;

H:隐藏/显示用户线程threads

K:隐藏/显示内核线程;

F:使用光标选择进程;

P M T:根据CPU%MEM%TIME排序;

c:标记进程和子进程;

Esc:返回主界面;

 

dstat命令:

versatile tool for generating system resource statistics

 

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

 

默认显示:cdngy

-c:显示cpu状态相关信息;

-C ##..total:表示查看指定cpu核心的信息;

-d:磁盘IO状态信息;

-D sdadsb...total

-nInternet的相关统计数据,网络状态信息;

-g:显示page相关的速率数据,内存页信息;

-y:系统状态信息;

-i:显示中断状态信息;

-l:显示平均负载状态信息;

-mMemory的相关统计数据,显示内存状态信息;

-N eth1total:指定网卡信息;

-p:显示process的相关统计数据,(包括运行队列,不可中断睡眠,新建进程速率);

-r:显示IO请求的相关统计数据,(包括读,写);

-s:显示swap的相关统计数据,(包括已用,空闲);

-S swap1total:指定swap信息;

-t:显示当前时间;

 

--aio:显示异步IO状态信息;

--ipc:显示进程间通信状态信息(包括消息队列,semaphores,共享内存);

--lock:显示文件锁;(posixflockreadwrite

--raw:显示裸套接字状态信息;

--tcp:显示tcp状态的进程信息;

--udp:显示udp状态的进程信息;

 

--top-bio:显示最消耗磁盘IO的进程;

--top-cpu:显示最消耗cpu的进程;

--top-int:显示最多中断数量的进程;

--top-mem:显示最消耗内存的进程;

--top-lantency:延迟最大的进程;

 

 

例如:

]# dstat 2 5:每2秒钟刷新一次,只显示5次;

]# dstat --tcp:查看tcp状态的进程信息;