linux运维ps命令,四大命令助你轻松管理Linux进程

在Linux操作系统中,进程应该是重中之重。很多***的发动、***的***都是通过进程来实现的,以至于很多软件的BUG、系统的故障、硬件的检测等等,我们都可以通过进程的管理来判断。因为,进程管理对Linux运维工程师来说,至关重要。

1. 进程的相关概念

1.1 进程是什么?

进程是运行中的程序的一个副本;存在生命周期,创建开始运行,运行结束退出

通俗来讲,进程就是运行中的程序

1.2 进程创建

进程都是由其父进程创建,进程间存在着父子关系

这里以CentOS 6为例,其父进程为 init,我们可以通过pstree命令查看[root@ch ~]# pstree

init─┬─abrtd

├─acpid

├─atd

├─auditd───{auditd}

├─console-kit-dae───63*[{console-kit-da}]

├─crond

├─dbus-daemon───{dbus-daemon}

├─hald─┬─hald-runner─┬─hald-addon-acpi

│      │             └─hald-addon-inpu

│      └─{hald}

├─httpd───8*[httpd]

├─login───bash───htop

├─master─┬─pickup

│        └─qmgr

├─5*[mingetty]

├─rsyslogd───3*[{rsyslogd}]

├─sshd─┬─sshd───bash───htop

│      └─sshd───bash───pstree

├─udevd───2*[udevd]

└─xinetd

启动进程的方式:

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

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

1.3 进程优先级

0-139:

1-99:实时优先级;数字越大,优先级越高

100-139:静态优先级;数字越小,优先级越高;

可以通过修改一个进程的Nice值来调整进程的静态优先级,仅管理员可以调低静态优先级

1.4 进程类型

进程类型:

守护进程 : 在系统引导过程中启动的进程,跟终端无关的进程;

前台进程:跟终端相关,通过终端启动的进程

注意:也可把在前台启动的进程送往后台,以守护模式运行;

1.5 进程状态

运行态:running

就绪态:ready

睡眠态:

可中断:interruptable

不可中断:uninterruptable

停止态:stopped

僵死态:zombie

2. ps命令

ps 用来显示当前系统进程状态

用法:ps [OPTION]

[OPTION] 有三种风格:

UNIX风格:带"-" 例: ps -ef

BSD风格 :不带"-" 例: ps aux

GNU风格 :长格式 例: ps --user root

2.1 BSD风格的选项

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

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

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

常用组合之一:aux[root@ch ~]# ps aux

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root          1  0.0  0.1  17128  1316 ?        Ss   Mar22   0:03 /sbin/init

root          2  0.0  0.0      0     0 ?        S    Mar22   0:00 [kthreadd]

root          3  0.0  0.0      0     0 ?        S    Mar22   0:00 [migration/0]

root          4  0.0  0.0      0     0 ?        S    Mar22   0:03 [ksoftirqd/0]

root          5  0.0  0.0      0     0 ?        S    Mar22   0:00 [stopper/0]

root          6  0.0  0.0      0     0 ?        S    Mar22   0:00 [watchdog/0]

root          7  0.1  0.0      0     0 ?        S    Mar22   2:26 [events/0]

root          8  0.0  0.0      0     0 ?        S    Mar22   0:00 [events/0]

root          9  0.0  0.0      0     0 ?        S

其中首部各字段的含义:

USER :启动进程的用户

PID: 进程号

%CPU :累积CPU使用时间百分比

%MEM : 内存占用百分比

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

RSS:Resident Size,常驻内存集;不能放在交换内存上

TTY:与其相关的终端

COMMAND: 由那个命令启动此进程

带[]的进程表示内核线程

STAT: 状态

R:running  运行态

S:interruptable sleeping 可中断睡眠态

D:uninterruptable sleeping  不可中断睡眠态

T:Stopped  停止态

Z:zombie   僵死态

+:前台进程   运行在终端上

l:多线程进程

N:低优先级进程

s:session leader  会话引领者

2.2 UNIX风格的选项

-e:显示所有进程

-f:显示完整格式的进程信息

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

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

-o: 自定义要显示的字段列表

常用组合之二:-ef

常用组合之三:-eFH

常用组合之四:-eo, axo[root@ch ~]# ps -eFH

UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD

root          2      0  0     0     0   0 Mar22 ?        00:00:00 [kthreadd]

root          3      2  0     0     0   0 Mar22 ?        00:00:00   [migration/0]

root          4      2  0     0     0   0 Mar22 ?        00:00:03   [ksoftirqd/0]

root          5      2  0     0     0   0 Mar22 ?        00:00:00   [stopper/0]

root          6      2  0     0     0   0 Mar22 ?        00:00:00   [watchdog/0]

root          7      2  0     0     0   0 Mar22 ?        00:02:27   [events/0]

root          8      2  0     0     0   0 Mar22 ?        00:00:00   [events/0]

root          9      2  0     0     0   0 Mar22 ?

与 ps aux类似,其中不一样的首部字段信息:

PPID:父进程的进程号

STIME:启动时间

TIME:累计运行时间

C: cpu utilization  CPU的占用百分比

PSR:运行于哪颗CPU之上

CMD: 启动此进程的命令

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

3. top命令

top  动态显示Linux系统进程信息

3.1 排序方式

P:以占据CPU百分比排序;默认为P

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

T:累积占用CPU时间排序;

3.2 隐藏/关闭首部信息

l: uptime信息  也可以在命令行使用uptime命令显示

t: tasks及cpu信息

m: 内存信息

3.3 首部字段的含义[root@ch ~]# top

top - 20:15:10 up 1 day, 11 min,  3 users,  load average: 0.00, 0.01, 0.00

Tasks: 100 total,   1 running,  99 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.3%us,  1.0%sy,  0.0%ni, 90.0%id,  8.7%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1004768k total,   528624k used,   476144k free,   128244k buffers

Swap:  2097148k total,        0k used,  2097148k free,   219320k cached

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

6565 root      20   0  109m 1872 1240 S  0.7  0.2   8:31.44 htop

17919 root      20   0  110m 2024 1236 S  0.7  0.2   1:20.08 htop

1 root      20   0 17128 1316 1068 S  0.0  0.1   0:03.08 init

2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd

3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

4 root      20   0     0    0    0 S  0.0  0.0   0:03.37 ksoftirqd/0

5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0

6 root      RT   0     0    0    0 S  0.0  0.0   0:00.20 watchdog/0

top:

load average : 平均负载

Tasks:

# total 运行有多少个进程

%Cpu:

us 用户空间进程占用百分比

sy 内核空间进程占用百分比

ni nice调整额外占用的百分比

id 空闲百分比

wa 等待io完成时间百分比

hi 处理硬件中断所占用的百分比

si 处理软件终端所占用的是百分比

st 被虚拟化程序偷走的时间百分比

KiB Mem:

total 总空间

free 空闲空间

used 已使用空间间

buff/cache 用于缓存和缓冲的空间

avail Mem :可用内存空间

3.4 命令选项

-d #:指定刷新时间间隔,默认为3秒;

-b:以批次方式显示;

-n #:显示多少批次;

例:~]# top -d 5 -b -n 2

3.5 htop命令

f3cc9f393eb78b1fca1d8295dc31d8f7.png

top的升级版,可支持鼠标操作

top的内建命令和选项 htop都可兼容使用

额外的常用选项和子命令

选项:

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

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

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

子命令:

l:显示选定的进程打开的文件列表;

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

t:以层级关系显示各进程状态;

a:将选定的进程绑定至某指定的CPU核心;

注:htop不是系统自带的,需要自己额外安装

4. dstat命令

dstat 多用途工具生成系统资源统计数据(非常强大的一款工具)

cf584ecddeb52bc697b71bb5d764cfeb.png

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

常用选项:

-c, --cpu:显示cpu相关信息;

-C #,#,...,total 看那颗CPU信息

-d, --disk:显示磁盘的相关信息

-D sda,sdb,...,tobal   某一块磁盘的相关信息

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

-m:Memory的相关统计数据

-i: 显示中断的信息

-l: 显示平均负载

-n:Interface的相关统计数据; 网络

-p:显示process的相关统计数据;

-r:显示io请求的相关的统计数据;

-s:显示swapped的相关统计数据; 交换内存

-y: 显示system

-t: 统计当前时间

--tcp  TCP链接相关数据

--udp

--raw

--socket

--ipc 进程间通信的相关数据

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

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

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

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

5. kill命令

5.1 kill命令

kill 用于向进程发送信号,以实现对进程的管理

每个信号的标识方法有三种:

1) 信号的数字标识;

2) 信号的完整名称;

3) 信号的简写名称;

用法: kill  [-s signal|-SIGNAL]  pid...

显示当前系统可用信号:

kill -l [signal]

向进程发信号:

kill  [-s signal|-SIGNAL]  pid...

常用信号:

1) SIGHUP:无须关闭进程而让其重读配置文件;

2)SIGINT:终止正在运行的进程,相当于Ctrl+c

9)SIGKILL:杀死运行中的进程;

15)SIGTERM:终止运行中的进程;

18)SIGCONT:继续

19)SIGSTOP:停止   相当于Ctrl+z

例:杀掉htop进程[root@ch ~]# pgrep htop

18099

[root@ch ~]# kill -9 18099

5.2 killall命令

killall 根据进程名来杀掉进程

用法:killall  [-SIGNAL]  program

例:杀掉htop进程[root@ch ~]# killall htop

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值