您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
马哥linux运维学习笔记-Linux进程管理之二
发布时间:2018-09-08 19:02:25编辑:雪饮阅读()
进程
优先级:
进程的优先级分为两部分,优先级在0-99为系统内核负责,用户可控制的优先级范围在100-139内。
获取到优先级的好处:
1、获得更多的cpu运行时间
2、更优先获得运行的机会
关于nice值:
进程的优先级不能直接调节,可通过调节进程的nice值来间接实现
nice值与优先级的对应关系:
nice为-20---19,对应优先级100-139
进程号:
进程号与文件的对应关系:
在/proc目录中所有带数字的文件就是进程号
ps:
ps的命令风格:
ps命令有两种参数使用风格一种是SysV风格,即参数中使用"-",其中V表示罗马数字五
另外一种风格就是BSD风格,就是参数中不使用"-"
SysV和BSD是unix的两大分支
ps的参数:
a:显示所有与终端有关的进程
u:显示进程属主
x:显示所有与终端无关的进程
e:显示所有程序等同于"-A"
l:显示为BSD风格
f:显示程序间的关系
o:指定显示字段,当要指定多个字段时用英文逗号分隔,指定字段时不受命令风格影响,组合ax可显示所有进程,否则只会显示当前bash的
ps的列:
TTY:该列表示进程所属终端,若为问号,则表示该进程与终端无关
STAT:该列显示进程状态
D:不可中断的睡眠
R:运行或就绪
S:可中断的睡眠
T:停止
Z:僵死
<:高优先级进程
N:低优先级进程
+:前台进程组中的进程(从命令行中运行的进程,从命令行中运行会产生以一个新的bash为组的一系列命令)
l:多线程进程
s:会话进程
VSZ:虚拟内存集
RSS:常驻内存集
COMMAND:启动进程的命令,如果有中括号则表示是内核启动的进程,则该进程就是内核进程
PRI:该列只有在BSD风格时才会出现,该列表示该进程的优先级
一般优先级都是数字表示,若有RT表示,则表示该优先级是实时优先级
NI:表示该进程的nice值
pgrep
该命令可按bash名称来查找进程,返回以进程号为结果
如:
查询bash名为bash的进程
pgrep bash
查询bash名为bash且所属主为root的进程
pgrep -u root bash
pidof
该命令可根据进程名,反查其进程号
如:pidof sshd
top
top命令可以查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。
参数:
-d:指定刷新时长
-b:自动翻屏,默认只显示第一屏
-n:指定只显示多少屏
交互参数
交互排序:
M:根据驻留内存大小进行排序
P:根据cpu使用百分比进行排序
T:根据累计时间进行排序
交互显示(结果头):
l:是否显示平均负载和启动时间
t:是否显示进程和cpu状态相关信息
m:是否显示内存相关信息
1:cpu信息是否统一显示,还是每个cpu单独显示
交互显示(结果体):
c:是否显示COMMAND完整的命令行信息
其它交互:
q:退出top命令
k:终止某个进程
结果头:
第一行:
当前时间
当前登录用户数(同一用户不同终端登录都会被计入)
平均负载:分别包含过去1分钟、5分钟、15分钟的平均负载,值(队列长度)越小,负载越小
第二行:
进程总数
运行中进程数
睡眠进程数
已停止进程数
僵死进程数
第三行:
Cpu(s):该字段名默认为Cpu(s)当你有多颗cpu,并且通过交互命令1可以展开分别显示每个cpu各自独立的信息,则此时会占两行,则对应该字段名以Cpu为前缀并连接cpu序号进行显示,如Cpu0,Cpu1
us:处于用户空间中的进程所用cpu百分比
sy:处于内核空间中的进程所用cpu百分比
ni:为了调整nice的进程所用cpu百分比
id:空闲进程百分比
wa:等待io完成的进程所用cpu百分比
hi:被硬件中断的进程所用cpu百分比
si:被软中断的进程所用cpu百分比
st:被偷走时间的进程所用cpu百分比
第四行:
内存总计
已用内存
空闲内存
缓冲内存
第五行
交换区总计
已用交换区
空闲交换区
交换区缓存
结果体
VIRT:虚拟内存集
RES:常驻内存集
SHR:共享内存大小
S:表示状态,和上面ps命令中的状态字段一样
TIME:表示该进程真正占据cpu的时长,而不是挂载时长
kill
kill命令用来删除执行中的程序或工作。
参数:
-l:查看所有可用信号
重要信号
1:SIGHUP:让一个进程不用重启,就可以重读其配置文件,并让其新的配置信息生效
2:SIGINT同CTRL+C:中断一个进程
9:SIGKILL:杀死一个进程
15:SIGTERM:终止一个进程
注意:9与15的区别,9只杀该进程,该进程所关联的其它后事不予处理,15则在杀死该进程同时料理其后事。
使用
kill 信号id或信号名称 进程号
如:
kill 3077(没有信号id或信号名称参数时默认为15)
kill -9 3175
kill -15 3177
killall
该命令同kill命令相同,但其根据进程名进行杀进程而不是根据进程号来杀进程,直接杀进程名,无论该进程名对应多少进程id
如:killall nginx
renice
该命令用于设置已启动进程的nice值。如:
[root@www ~]# renice 3 3191
3191: old priority 0, new priority 3
[root@www ~]# renice -3 3191
3191: old priority 3, new priority -3
nice
该命令用来给某个命令执行时设置初始nice值
-n指定nice值
如:
nice -n -3 /usr/local/nginx/sbin/nginx
命令的前后台
ctrl+z:将当前正在执行命令放置后台(会自动停止执行)
jobs:查看后台所有作业
作业号
+:命令将默认操作的作业
-:命令的第二个默认操作的作业,当第一个作业完成,该作业就会由减号变成加号,后续作业以此类推。
bg:将后台命令列表中第一个命令变成继续执行,也可以直接指定作业号
&:命令后跟上这个参数也可使得该命令放置后台(不会自动停止执行)
fg:类似bg,将后台中的命令调至前台继续运行
杀死作业
使用kill命令也可以杀死作业,“kill %+作业id”命令如:
kill %1
vmstat
参数:
跟上一个数字参数表示该命令结果的动态刷新时间间隔即为该数字
跟上两个数字参数,第一个数字参数同上,第二个数字参数表示动态刷新的次数
结果体
用来显示Linux系统虚拟内存状态,也可以报告关于进程、内存、I/O等系统整体运行状态。
procs:
r:运行队列长度
b:阻塞队列长度
memory:
swpd:交换区
free:空闲内存
buff:缓冲区
cache:缓存
swap:
si:swap-in
so:swap-out
io:
bi:磁盘块调进内存
bo:磁盘块调出内存
uptime
uptime命令能够打印系统总共运行了多长时间和系统的平均负载
结果体
当前时间,系统开机运行以来的累计时间、登录用户数(相同用户不同会话也会被计入),平均负载(同上top命令的平均负载)
查看内存信息
[root@www ~]# cat /proc/meminfo
MemTotal: 1915460 kB
MemFree: 1162664 kB
Buffers: 27448 kB
Cached: 388188 kB
SwapCached: 0 kB
Active: 383092 kB
Inactive: 222140 kB
Active(anon): 189820 kB
Inactive(anon): 3060 kB
Active(file): 193272 kB
Inactive(file): 219080 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Dirty: 4 kB
Writeback: 0 kB
AnonPages: 189592 kB
Mapped: 59040 kB
Shmem: 3288 kB
Slab: 85908 kB
SReclaimable: 22200 kB
SUnreclaim: 63708 kB
KernelStack: 2088 kB
PageTables: 28040 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3054876 kB
Committed_AS: 684744 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 150132 kB
VmallocChunk: 34359573148 kB
HardwareCorrupted: 0 kB
AnonHugePages: 45056 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 6144 kB
DirectMap2M: 1042432 kB
DirectMap1G: 1048576 kB
查看一个进程所占用的内存地址信息
cat /proc/进程号/maps
如:
[root@www 3216]# cat /proc/3216/maps
00400000-0047c000 r-xp 00000000 fd:00 1052651 /usr/local/nginx/sbin/nginx
0067b000-0068b000 rw-p 0007b000 fd:00 1052651 /usr/local/nginx/sbin/nginx
0068b000-00699000 rw-p 00000000 00:00 0
008dc000-0091e000 rw-p 00000000 00:00 0
0091e000-01119000 rw-p 00000000 00:00 0
373f400000-373f420000 r-xp 00000000 fd:00 782357 /lib64/ld-2.12.so
373f61f000-373f620000 r--p 0001f000 fd:00 782357 /lib64/ld-2.12.so
373f620000-373f621000 rw-p 00020000 fd:00 782357 /lib64/ld-2.12.so
373f621000-373f622000 rw-p 00000000 00:00 0
373f800000-373f802000 r-xp 00000000 fd:00 782359 /lib64/libdl-2.12.so
373f802000-373fa02000 ---p 00002000 fd:00 782359 /lib64/libdl-2.12.so
373fa02000-373fa03000 r--p 00002000 fd:00 782359 /lib64/libdl-2.12.so
373fa03000-373fa04000 rw-p 00003000 fd:00 782359 /lib64/libdl-2.12.so
373fc00000-373fd8a000 r-xp 00000000 fd:00 782358 /lib64/libc-2.12.so
373fd8a000-373ff8a000 ---p 0018a000 fd:00 782358 /lib64/libc-2.12.so
373ff8a000-373ff8e000 r--p 0018a000 fd:00 782358 /lib64/libc-2.12.so
373ff8e000-373ff8f000 rw-p 0018e000 fd:00 782358 /lib64/libc-2.12.so
373ff8f000-373ff94000 rw-p 00000000 00:00 0
3740000000-3740017000 r-xp 00000000 fd:00 782360 /lib64/libpthread-2.12.so
3740017000-3740217000 ---p 00017000 fd:00 782360 /lib64/libpthread-2.12.so
3740217000-3740218000 r--p 00017000 fd:00 782360 /lib64/libpthread-2.12.so
3740218000-3740219000 rw-p 00018000 fd:00 782360 /lib64/libpthread-2.12.so
3740219000-374021d000 rw-p 00000000 00:00 0
3740c00000-3740c15000 r-xp 00000000 fd:00 782378 /lib64/libz.so.1.2.3
3740c15000-3740e14000 ---p 00015000 fd:00 782378 /lib64/libz.so.1.2.3
3740e14000-3740e15000 r--p 00014000 fd:00 782378 /lib64/libz.so.1.2.3
3740e15000-3740e16000 rw-p 00015000 fd:00 782378 /lib64/libz.so.1.2.3
374ac00000-374ac73000 r-xp 00000000 fd:00 782362 /lib64/libfreebl3.so
374ac73000-374ae72000 ---p 00073000 fd:00 782362 /lib64/libfreebl3.so
374ae72000-374ae74000 r--p 00072000 fd:00 782362 /lib64/libfreebl3.so
374ae74000-374ae75000 rw-p 00074000 fd:00 782362 /lib64/libfreebl3.so
374ae75000-374ae79000 rw-p 00000000 00:00 0
374b000000-374b007000 r-xp 00000000 fd:00 782363 /lib64/libcrypt-2.12.so
374b007000-374b207000 ---p 00007000 fd:00 782363 /lib64/libcrypt-2.12.so
374b207000-374b208000 r--p 00007000 fd:00 782363 /lib64/libcrypt-2.12.so
374b208000-374b209000 rw-p 00008000 fd:00 782363 /lib64/libcrypt-2.12.so
374b209000-374b237000 rw-p 00000000 00:00 0
3da4000000-3da402c000 r-xp 00000000 fd:00 781882 /lib64/libpcre.so.0.0.1
3da402c000-3da422c000 ---p 0002c000 fd:00 781882 /lib64/libpcre.so.0.0.1
3da422c000-3da422d000 rw-p 0002c000 fd:00 781882 /lib64/libpcre.so.0.0.1
7f1c00dba000-7f1c00de9000 rw-p 00000000 00:00 0
7f1c00de9000-7f1c00df5000 r-xp 00000000 fd:00 781856 /lib64/libnss_files-2.12.so
7f1c00df5000-7f1c00ff5000 ---p 0000c000 fd:00 781856 /lib64/libnss_files-2.12.so
7f1c00ff5000-7f1c00ff6000 r--p 0000c000 fd:00 781856 /lib64/libnss_files-2.12.so
7f1c00ff6000-7f1c00ff7000 rw-p 0000d000 fd:00 781856 /lib64/libnss_files-2.12.so
7f1c00ff7000-7f1c00ffc000 rw-p 00000000 00:00 0
7f1c0100a000-7f1c0100b000 rw-s 00000000 00:04 125498 /dev/zero (deleted)
7f1c0100b000-7f1c0100c000 rw-p 00000000 00:00 0
7fff40502000-7fff40517000 rw-p 00000000 00:00 0 [stack]
7fff405ff000-7fff40600000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
关键字词:linux,进程,top,ps,vmstat