Linux进程 管理,Linux进程管理工具详解

进程管理工具

查看进程

pstree  显示进程树

-p:显示PID

ps 查看进程

ps [options]...

支持三种选项

Unix选项:-a -e -f

BSD选项:a u x

GNU选项:--sort

默认显示当前终端的进程

BSD选项

a:显示所有终端的进程

u:显示进程所有者

x:不链接终端的进程

k|--sort 属性:对属性排序,属性前加-表示倒序

f:选项显示进程树,相当于--forest

o 属性...:选项显示定制的信息pid,cmd,%cpu,%me

常用属性

ni:nice值

pri:priority 优先级

psr:prcessor CPU编号

rtpro:实时优先级

ps axo pid,cmd,psr,ni,pri,rtprio

L:显示支持的属性列表

euser:有效用户

ruser:真实用户

Unix选项

-e | -A:显示所有进程

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

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

-C cmdlist:指定命令,多个命令用逗号分隔

-L:显示线程

-H:以层级格式显示进程相关信息

-u userlist:指定有效用户ID或名称

-U userlist:指定真正的用户ID或名称

-g gid或groupname 指定有效的Pid或组名称

-G gid或groupname 指定真正的Gid或组名称

-p pid:显示指定Pid进程

--ppid pid:显示属于Pid的子进程

-M | Z:显示SELinux信息

常用组合

ps aux,ps -ef,ps -eFH

ps -eo pid,tid,class,rtprio,ni,pri,pcpu,stat,comm

ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

通过PID来显示所属的进程:

ps -fp pid1,pid2,...

以父进程ID来显示其下所有的进程

ps -f --ppid #

使用PID来查找进程名称

ps -p pid -o comm=

检查一个进程的执行时间

ps -eo comm,etime,user | grep processname

按tty显示所属进程

ps -ft tty

查找指定进程名所有的所属PID,在编写需要从std输出或文件读取PID的脚本时这个参数很有用

ps -C httpd,sshd -o pid=

搜索进程

ps 选项 | grep

pgrep  搜索进程

pgrep [options] pattern  与pkill共用一个man帮助

-u uid:effective user,生效用户

-U uid:real user,真正发起运行命令者

-l:显示进程名

-a:完整格式显示进程名

-P pid:显示指定进程的子进程

pidof  按程序名查找pid

pidof command系统监控工具

uptime

cfaca84dfaf8e0c37d1402aafa482a82.png

显示系统时间  系统启动到现在所经过的时间   上线用户数   平均负载

free  查看内存信息

871384d1c109a32474ee241276fc5a0a.png

free [options]

-b 以字节为单位

-m 以MB为单位

-g 以GB为单位

-h 易读格式

-o 不显示-/+buffers/cache行

-t 显示RAM + swap的总和

-s n 刷新间隔为n秒

-c n 刷新n次后即退出

pmap  显示进程对应的内存映射

-x:显示详细格式信息

cat /proc/PID/maps  查看内存具体使用情况

top

4c2752fea9b17f3e4f5942ebb24fb3f0.png

第一行:当前系统时间  系统启动到现在所经过的时间  当前上线用户数  系统在1,5,15分钟的平均负载

相当于uptime命令;交互按键:l

注意:平均负载值越小,系统越空闲;如果高于1,当前系统负载过高

a9142e5d17b0676ed33643aeed20239a.png

第二行:显示的是目前进程总量与个别程序在什么状态(running,sleeping,stopped,zombie)

注意:最后的zombie数值,如果不是0就需要查看一下是哪个进程处于僵死态

8bd17ff24cd46203e76aca31dfe7cb26.png

1b8d37019e8e2ff2f42e385006728369.png

第三行: 显示的是CPU整体负载,如果是多核心,可使用数字1键来切换显示方式

us:user space 用户运行程序占用CPU的百分比

sy:system用于运行内核占用CPU的百分比

ni:nice用户进程空间所改变过优先级的进程占用CPU的百分比

id:idle空闲CPU百分比

wa:wait to 等待I/O花费时间

hi:hardware interrupt 硬键中断占用CPU百分比

si:software interrupt 软键中断占用CPU百分比

st:stolen,被虚拟机“偷走”的百分比

81eb6640828c5a848d5af8e2475a01aa.png

第四行:物理内存使用情况       第五行:交换分区情况   按m键可切换显示方式

0d9f03ade784e9a93fadcee15565aafa.png

下面部分每一行的含义:

PID:每个进程的PID

USER:进程所属的使用者

PR:Priority,进程优先级,越小越优先

NI:Nice优先级,越小越早被运行

VIRT:进程需要的虚拟内存大小,而非使用的虚拟内存大小

RES:进程当前使用的内存大小,不包括swap

SHR:进程与其它进程共享的内存大小,可通过RES-SHR来计算进程所占用的物理内存大小

S:进程状态

%CPU:CPU使用率

%MEM:内存使用率

TIME+:CPU使用时间的累加

命令用法:

交互按键

l:是否显示首部信息

t:task及cpu信息

1数字:CPU显示方式

m:内存显示方式

P:以占据CPU百分比排序

M:以占据Memory空间大小排序

T:CPU累积占用时间排序

s:修改延迟时长

k:终止指定进程

W:保存

q:退出命令

选项

-d #:指定刷新间隔

-n #:指定刷新次数

-b:全部显示

htop

top的增强版本;可使用选项、交互按键、也可鼠标点击

77b4b608ab4aab48e59012f5adf91f11.png

命令用法:

交互按键

s:显示光标所在进程执行的系统调用

l:显示光标所在处进程所打开的文件列表

a:绑定进程到指定CPU

t:显示进程树

#:快速定位光标至PID为#的进程上

选项

-d #:指定刷新时长

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

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

iotop  监视磁盘I/O使用情况

99e0c348560aced0b08af130940e1488.png

第一行:Read和Write速率总计

第二行:实际的Read和Write速率

第三行:

线程ID(进程ID)  优先级  用户  磁盘读速率  磁盘写速率  swap交换百分比  IO等待所占百分比  线程/进程命令

命令用法:

交互按键

left和right方向键:改变排序

r:反向排序

o:只显示正在产生I/O的进程或线程

p:TID与PID切换

a:显示累积的I/O,而不是带宽

i:改变线程优先级

q:退出

选项

-o|--only:只显示正在产生I/O的进程或线程

-b|--batch:非交互模式;一般用来记录日志

-n N|--iter=N:设置监测次数,默认无限

-d #|--delay=#:设置监测间隔,默认1秒,可接受1.1

-u User|--user=USER:指定监测某个用户产生的I/O

-P|--processes:仅显示进程,默认显示线程

-a|--accumulated:显示累积的I/O,而不是带宽

-k|--kilobytes:使用kB单位,脚本编程有用

-t|--time:加时间戳,非交互模式

-q|--quiet:禁止头几行,非交互模式

-q:只在第一次监测时显示列名

-qq:永远不显示列名

-qqq:永远不显示I/O汇总

glances   远程监控工具(监视CPU,负载,内存,磁盘I/O,网络流量,文件系统,系统温度等信息)

4f8e51cd036f70b8c64b28d2425a6c59.png

上面部分显示的是:CPU,Load系统负载,Mem内存使用,swap交换分区的使用情况

中间部分显示的是:Network网络接口,Tasks任务进程的使用情况

左侧部分显示有磁盘I/O,分区使用情况等

glances可以为Unix和Linux性能专家提供监视和分析性能数据功能,包括:

CPU使用率、内存使用情况、内核统计信息和运行队列信息

磁盘I/O速度、传输和读/写比率,文件系统中的可用空间,磁盘适配器

网络I/O速度、传输和读/写比率,页面空间和页面速度,消耗资源最多的进程,计算机信息和系统资源

命令用法

glances 支持远程模式,基于C/S模式工作

服务器模式

glances  -s  -B  IPADDR   指明监听本机哪个地址

客户端模式

glances  -c  IPADDR    要连接的服务器地址

交互命令

a:Sort processes automatically

l :Show/hide logs

c :Sort processes by CPU%

b :Bytes or bits for network I/O

m :Sort processes by MEM%

w: Delete warning logs

p :Sort processes by name

x: Delete warning and critical logs

i :Sort processes by I/O rate

1 :Global CPU or per-CPU stats

d :Show/hide disk I/O stats

h :Show/hide this help screen

f :Show/hide file system stats

t :View network I/O as combination

n :Show/hide network stats

u :View cumulative network I/O

s :Show/hide sensors stats

q :Quit (Esc and Ctrl-C also work)

y :Show/hide hddtemp stats

选项

-b:以Byte为单位显示网卡数据速率

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

-f /path/to/somefile:设定输入文件位置

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

-m:禁用mount模块

-n:禁用网络模块

-t #:延迟时间间隔

-1数字:每个CPU相关数据单独显示

vmstat  可动态显示系统资源使用情况

16ac20354dc7207684229fa2d61eb632.png

显示内容

procs 进程相关

r:等待运行的进程个数;(队列长度)

b:处理不可中断睡眠状态的进程个数(即IO阻塞队列长度)

memory 内存相关

swpd:交换内存使用量

free:空闲物理内存量

buff:用于buffer的内存总量

cache:用于cache的内存总量

swap 交换分区相关

si:数据进入swap中的速率(kb/s)

so:数据离开swap的速率(kb/s)

io

bi:从块设备读入数据到系统的速率

bo:保存数据至块设备的速率

system 系统相关

in:interrupts 中断速率,每秒被中断的次数

cs:context switch 进程切换的速率

cpu CPU相关

us:user space 用户运行程序占用CPU百分比

sy:system(kernel space)用于运行内核占用CPU的百分比

id:idle空闲CPU百分比

wa:wait io等待I/O花费时间

st:stolen,被虚拟机偷走的百分比

命令用法

vmstat [options] [delay [count]]

-s:显示内存统计数据

-S  k, K, m or M 指定单位

x y:每隔x秒刷新y次

iostat 统计CPU和IO等信息

b1ff499d7006aefa25e03962ec1cf531.png

也可动态监测

dstat  系统资源统计  代替vmstat,iostat

8349e1d845eeff7266d2f5059527116a.png

显示内容

total-cpu-usage:cpu使用率

dsk/total:磁盘读写总数

net/total:网络设备发送和接收数据总数

paging: 系统的分页活动,分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,或者说内存非常分散,大多数情况下都希望看到page in和page out的值为0 0

system:中断和上下文切换,这项统计只在比较基线时才有意义

命令用法

选项

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

-c:显示cpu信息;-C #,#,...,total

-d:显示disk相关信息;-D total,sda,sdb,...

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

-g:显示page相关统计数据

-n:显示network相关统计数据

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

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

-s:显示swapped相关统计数据

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

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

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

--top-latency:显示延迟最大的进程

--tcp   --udp   --unix   --rwa   --socket   --ipc

saidar 查看CPU、进程、负载、内存、交换分区、网络、磁盘、文件系统等系统信息

19cf11a19cf9bcb7b9eaf586e7692741.png

这个命令是在博客中看到的,总结到这里供大家参考

管理进程

kill 向进程发送控制信号,以实现对进程管理;每个信号对应一个数字,信号名称以SIG(大小写不敏感)

显示当前系统可用信号:kill -l | trap -l

常用信号:man 7 SIGNAL

1)SIGHUP 不重启进程而让其重读配置文件

2)SIGINT  中止正在运行的进程;相当于ctrl+c

3)SIGQUIT 退出正在运行的进程;相当于ctrl+\

9)SIGKILL   强制中止(杀死)运行的进程

15)SIGTERM  正常中止运行的进程

18)SIGCONT   继续运行

19)SIGSTOP   后台休眠

指定信号的方法

1、信号的数字标识:1,2,9

2、信号的完整名称:SIGHUP

3、信号的简写:HUP,INT

kill 按PID发送信号

kill [-SIGNAL] pid ...

kill -n SIGNAL pid...

kill -s SIGNAL pid...

killall  按名称发信号

killall [-SIGNAL] comm...

pkill  按模式发送信号

pkill [options] pattern

-SIGNAL

-u uid:effective user,生效者

-U uid:real user,真正发起运行命令者

-t terminal:与指定终端相关的进程

-P pid:显示指定进程的子进程

注意:Linux系统各进程相关信息均保存在/proc/PID目录下的各文件中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值