二十二、进程管理工具-飞外

Linux 系统各进程的相关信息均保存在/proc/PID目录下的个文件中,而进程查看的命令都是遍历去读取该目录下的内容

靠什么命令来启动相应进程的 就在cmdline文件中

一、pstree显示进程树

二、ps

2.1、BSD风格:

ps option

 a 与终端相关的进程 x 与终端无关的进程 u 与用户相关的进程 Z 安全标签(安全上下文) o 自定义显示格式
[root@izpo45bh60h6bsz~]#psauxUSERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
USER: 进程用户PID: 进程PID%CPU: 运行占据CPU时间百分比VSZ:虚拟内存集:可交换出的数据 一般大于RSSRSS: 常驻内存集:不可交换出的数据TTY: 通过哪个终端启动 (?代表与终端无关)STAT:进程状态 R(Running),S(Interrupt Sleeping),D(uninterrupt Sleeping),T(Stopped),z(zombie) +:前台
l: 多线程进程 N:低优先级
:高优先级进程 s 领导进程, START: 进程启动时间TIME: 进程运行过程占据CPU累积时长COMMAND: 由什么命令启动的相关进程

-f:显示详细信息
-F:显示完整格式的进程信息 -H hierarchy 层级结构显示

-eFH :以进程层级格式显示进程相关信息
UID PID PPID C STIME TTY TIME CMD
[root@izpo45bh60h6bsz~]#ps-eFUIDPIDPPIDCSZRSSPSRSTIMETTYTIMECMD
自定义显示:
[root@izpo45bh60h6bsz~]#psaxopid,ppid,ni,psr,pri,rtprio,time,cmdPIDPPIDNIPSRPRIRTPRIOTIMECMD

ppid: 父进程id,0代表 天造地设PRI: priorityPSR: 运行在哪个cpu上rtprio: realtime priority 实时优先级
C cpu编号 (多个CPU时会显示不同编号)

pkill [option] pattern

-u euid :effective user 有效用户(suid的属主)

-U uid : real user真实用户

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

-a 完整格式的进程名

-l 显示进程名

-P PPID 显示PPID的子进程列表

pidof :根据进程名获取其PID

[root@izpo45bh60h6bsz ~]# pgrep sshd10829[root@izpo45bh60h6bsz ~]# pgrep sshd -l4472 sshd10829 sshd[root@izpo45bh60h6bsz ~]# pgrep sshd -a4472 /usr/sbin/sshd -D10829 sshd: root@pts/0 [root@izpo45bh60h6bsz ~]# pgrep -P 447210829[root@izpo45bh60h6bsz ~]# pgrep -t pts/010831[root@izpo45bh60h6bsz ~]# pgrep -t pts/0 -l10831 bash[root@izpo45bh60h6bsz ~]# pgrep -t pts/0 -a10831 -bash

-n # 显示多少批次 与-b连胜

排序方式:(在键盘上输入如下命令进行排序)

P %CPU占据CPU百分比(过去几秒占据CPU百分比:几秒由刷新定义)

M %MEM 占据内存百分比

T TIME :累计占据CPU时长

首部信息

的大小为4K)

3、heap堆、stack栈、anon: anonymous 匿名页---进程自己存储数据的位置,不能交换出去

Address Kbytes RSS Dirty Mode Mapping00007ff5a8000000 164 12 12 rw--- [ anon ]00007ff5a8029000 65372 0 0 ----- [ anon ]00007ff5ac94d000 4 0 0 ----- [ anon ]00007ff5ac94e000 8192 8 8 rw--- [ anon ]00007ff5ad14e000 4 0 0 ----- [ anon ]00007ff5ad14f000 8192 8 8 rw--- [ anon ]00007ff5ad94f000 16 8 0 r-x-- libuuid.so.1.3.000007ff5ad953000 2044 0 0 ----- libuuid.so.1.3.000007ff5adb52000 4 4 4 r---- libuuid.so.1.3.000007ff5adb53000 4 4 4 rw--- libuuid.so.1.3.000007ff5adb54000 228 40 0 r-x-- libblkid.so.1.1.000007ff5adb8d000 2048 0 0 ----- libblkid.so.1.1.000007ff5add8d000 12 12 12 r---- libblkid.so.1.1.000007ff5add90000 4 4 4 rw--- libblkid.so.1.1.0

galances [options...]

-s -B IPADDR 服务端模式

IPADDR:指明监听于本机哪个地址

-c IPADDR 客户端模式

IPADDR:要连入的服务器端地址

常用选项:

b :以字节Byte为单位显示网络速率

m/n/d :控制mount,network,disk模块的显示或隐藏

t # :延迟间隔

1 : 每个cpu信息单独显示

-f /path/to/somefile galance:显示的结果保存至文件中

-o {HTML|CSV} 文件的格式

galance内建命令

服务端


[root@localhost ~]# glances -s -B 192.168.1.103 -p 8888 -P "1234"Glances server is running on 192.168.1.103:8888

[root@localhost ~]# glances -c 192.168.1.103 -p 8888Error: Connection to server failed. Bad password.[root@localhost ~]# glances -c 192.168.1.103 -p 8888 -P "1234"[root@localhost ~]# Connected to 192.168.1.103 | Press 'h' for help

-m,--mem 显示内存相关统计数据;

-n,--net 显示网络相关统计数据;

-p,--proc 进程状态

-r,--io 显示io相关的统计数据

-s,--swap 显示swap相关的统计数据

-t,--time 时间输出

--aio 异步io

--fs,--filesystem 显示文件系统

--ipc (message queue(signal),semephores,shared memory)

--lock 文件锁

--socket (total,udp,tcp,raw,ip-fragment分片)

--tcp (listen,established,syn,time_wait,close)

--udp (listen,active)

--unix (datagram, stream, listen, active)

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--usr sys idl wai hiq siq| read writ| recv send| in out | int csw total-cpu-usage cpu使用状态dsk/total 磁盘读写速率net/total 网络的收发速率paging 页面的换进换出(内存页面,交换内存。 si,so)system 中断和上下文切换 (int: interrupt, csw: context swtich。 in,cs )

Terminal width too small, trimming output.----total-cpu-usage------------cpu0-usage------ -dsk/total- -net/total- ---paging-- usr sys idl wai hiq siq:usr sys idl wai hiq siq| read writ| recv send| in out
[root@localhost ~]# dstat -D total,/dev/sda----total-cpu-usage---- -dsk/total----dsk/sda-- -net/total- ---paging-- ---system--usr sys idl wai hiq siq| read writ: read writ| recv send| in out | int csw
[root@localhost ~]# dstat -a 1 1----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--usr sys idl wai hiq siq| read writ| recv send| in out | int csw[root@localhost ~]# dstat --disk-utilutil

[root@localhost ~]# dstat --freespace-----/----------/shm-------/boot-------/home--------/usr--------/var--- used free: used free: used free: used free: used free: used free3101M 44.9G: 0 121M:57.4M 419M: 260M 4534M:2091M 12.3G: 714M 9001M

1)SIGHUP: 不关闭进程重读配置文件。服务程序

2)SIGINT: 终止信号(interrupt) 相当于 Ctrl + c

9)SIGKILL: 杀死正在运行的进程 ,直接终止,

15)SIGTERM: 终止指定的进程(优雅) ,处理的数据存回磁盘中,再终止

18)SIGCONT 让停止态的信号,continue

19)SIGSTOP 让运行中的进程,stop

使用发信号的方法 SIGNAL:

1、信号完整名称 : SIGHUP

2、信号的简写名称: HUP

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

向进程发信号:

kill -SIGNAL pid

终止“名称”之下的所有进程

killall -SIGNAL 进程名

十一、linux的作业控制

jobs一个任务可能包含单个进程也可能包含多个进程

前台作业:与终端相关,占据命令提示符

后台作业:与终端相关,但启动后即转入后台运行(不占据命令提示符)

送到后台剥离与终端关系: # nohup COMMMAND

作业送到后台:

运行中的程序:Ctrl + z

尚未启动的程序:COMMAND

注:此类作业虽然被送往后台运行,但其依然与终端相关:如果希望送往后台,剥离与终端的关系

查看所有作业情况: # jobs

+ 没有作业号,默认管理的作业

- 下一个

[#]作业号

作业管理控制

送到前台: fg [[%]JOB_NUM]

送到后台: bg [[%]JOB_NUM]

终止作业: kill -SIGNAL [%JOBNUM]

十二、nice值

动态优先级:进程消耗过多的cpu资源时,内核自动调整,

静态优先级: 100-139 (数据越小,优先级越高)

实时优先级: 0-99 (数字越大,优先级越高)

进程默认启动优先级120,nice值为 0

nice [-n # ] command

-n # 启动后以#值作为Nice值运行,不给-n #,默认nice=10

对已经运行的进程做优先级调整

renice -n # pid(相应command的进程号)

-n # 重新设置优先级

查看nice值: # ps axo pid,command,ni


详解:-B

pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s

pgpgin/s 物理内存到磁盘swap

fault 缺页异常发生的速率

majflt/smajor faults

pgfree/s page free place on

pgscank/skswapd daemon scan pages

pgscnd/s page scan directly

pgsteal/spage reclaimed from cache(pagecache and swap-cache)

详解: -u 报告cpu使用率

CPU %user %nice %system %iowait %steal %idle

详解: -b

tps rtps wtps bread/s bwrtn/s

t 总传输

rtps 读传输

wtps 写传输

bread/s 从块读

bwrtn/s 写到块

tsar

iostat

Report Central Processing Unit (CPU) statistics and input/output statistics

for devices and partitions.

Central Processing Unit (CPU) 中央处理单元cpu

statistics 统计数据

for prep.为,为了;倾向于;关于;当作

为设备和分区报告CPU,I/O统计数据

iostat [-u | -d | -h | -k | -m]

-u cpu

-d disk

-h human readable

-k KB

-m MB

-N LVM2统计数据

CPU Utilization Report(Utilization 利用率)

%user 运行用户级别/用户空间的进程CPU利用率百分比

%nice nice priority占据CPU利用百分比

%system system level(kernel)

%iowait 系统有突出IO时,CPU空闲百分比。进程等待IO的百分比

%steal 被虚拟化技术偷走的时间

%idle CPU空闲和系统无IO所占时间百分比

Device Utilization Report

Device 显示dev目录下的设备或Partition名

tps 显示每秒IO请求传输至设备的数量,IO请求可以是单个,或多个IO请求组合成单个,大小不确定

kB_read/s 每秒从块或扇区读取数据量

kB_wrtn/s 每秒写

kB_read 总读

kB_wrtn 总写

rrqm/s queued to device read request merged 合并读请求队列的速率

wrqm/s 合并写请求速率

iftop

1)获取命令的信息命令行模式显示网络接口带宽统计数据“为什么我的ADSL连接如此慢”

[root@izpo45bh60h6bsz~]#dnfinfoiftopUsingmetadatafromWedAug2300:36:042017可安装的软件包名称:iftop架构:x86_64时期:0版本:1.0发布:0.14.pre4.el7大小:52k仓库:epel概要:CommandlinetoolthatdisplaysbandwidthusageonaninterfaceURL:http://www.ex-parrot.com/~pdw/iftop/协议:GPLv2+描述:iftopdoesfornetworkusagewhattop(1)doesforCPUusage.Itlistensto:networktrafficonanamedinterfaceanddisplaysatableofcurrentbandwidth:usagebypairsofhosts.Handyforansweringthequestion"whyisourADSLlink:soslow?".

2)安装包

[root@izpo45bh60h6bsz ~]# dnf install iftop

3)获取帮助

# man iftop 显示主机接口之上的网络带宽使用情况

iftop -h | [-nNpblBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]

默认情况会反解主机名,-n选项或运行中使用r命令关闭dns反解

默认会显示通过过滤器的所有IP包,IP包的方向是通过接口的方向

-F NETWORK 显示给定网络输入或输出的数据包

忽略广播数据包: not ether hostff:ff:ff:ff:ff:ff

过滤仅显示web数据包,排除:port http and not host webcache.example.com

用户浪费了多少带宽弄清楚网络如此慢:icmp

-h 获取帮助

-n 不从IP包中反解主机名

-N 不反解端口号

-p promise模式,流量不经过此接口也会统计

-P 打开端口显示

-b bar开关

-m #[km] 仅显示由#指定的宽带比例上限对应的数据包

-i IFACE 指监听接口

-f filter code 过滤

-F net/mask 过滤仅显示什么ip的数据包,包的方向由网络边界决定

-c config_file 给出一个临时配置文件,默认 ~/.iftoprc

内建命令

S ,D , P ,p ,n ,N

Hostdisplay:General:n-toggleDNShostresolutionP-pausedisplays-toggleshowsourcehosth-togglethishelpdisplayd-toggleshowdestinationhostb-togglebargraphdisplayt-(revice,sent,twoline,oneline)B-cyclebargraphaverageT-togglecumulativelinetotalsPortdisplay:j/k-scrolldisplayN-toggleserviceresolutionf-editfiltercodeS-toggleshowsourceportl-setscreenfilterD-toggleshowdestinationportL-lin/logscalesp-toggleportdisplay!-shellcommandq-quitSorting:1/2/3-sortby1st/2nd/3rdcolumn -sortbysourcename -sortbydestnameo-freezecurrentorder

显示注释

每个字段10秒平均流量显示foo.example.com= bar.example.com1Kb500b100b流量从foo.example.com到bar.example.com1Kb前2秒数据被接收或发送的速率500b前10秒100b前40秒