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秒