0%

进程管理命令ps和top

进程管理命令ps和top

1.进程的生命周期

1
2
3
4
1)父进程接收到调度任务的时候,会fork子进程,子进程去完成调度任务
2)父进程进入等待的状态,如果父进程退出,子进程会变成僵尸进程
3)如果子进程退出,父进程会继续fork出来新的子进程
4)父进程有自己的PID,子进程有自己的PPID

2.进程管理命令:ps

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
a:与终端相关的进程
u:用户
x:与终端无关的进程
o:自定义字段
f:查看子进程
--sort:排序

#用户
USER
#进程号
PID
#占用CPU百分比
%CPU
#占用内存百分比
%MEM
#虚拟内存
VSZ
#物理内存
RSS
#终端
TTY
1)? 内核相关的进程
2)tty1 物理终端
3)pts/0 远程连接终端

#状态
STAT
S:进入睡眠状态的进程
s:父进程
N:优先级低
<:优先级高
T:暂停,停止的进程
D:不可中断的进程
Z:僵尸进程
l:多线程的
|:多进程
x:死掉的进程
R:运行状态的进程
+:前台运行的进程
#启动的时间
START
#进程使用CPU时间
TIME
#进程运行的命令
COMMAND
[]: 内核的进程
没有[] 命令的进程
pstree
pgrep
pidof

#动态管理进程命令:top

    系统时间     服务器运行的时间         一个用户         平均负载      1分钟  5分钟   5分钟
top - 08:56:48         up 13:24,              1 user,      load average: 0.00,   0.01,   0.05

121个工作任务      1个在运行(R)      120个睡眠状态(S)     0个停止(T)        0个僵尸进程(Z)
Tasks: 121 total,   1 running,         120 sleeping,           0 stopped,           0 zombie

    用户态    内核态    优先级        空闲      等待    硬中断    软中断     虚拟机占用物理机的百分比

%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

        物理内存        空闲的内存        已使用的内存        缓冲区/缓存区

KiB Mem :  2028116 total,  1750156 free,   113752 used,   164208 buff/cache

虚拟内存        总量        空闲的内存            已使用的     可用的
KiB Swap:  2097148 total,  2097148 free,        0 used.  1731140 avail Mem

进程号     用户       优先级     虚拟内存    物理内存    共享内存    状态    占CPU百分比        占内存的百分比    
PID         USER      PR  NI    VIRT        RES            SHR         S          %CPU             %MEM    
运行时间        运行的命令
TIME+             COMMAND

进程的优先级:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
nice值越高:表示优先级越低,例如19,该进程容易将CPU使用量让给其他进程。
nice值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。

#重新设置一个进程的优先级
[root@oldboyedu ~]# renice -n -20 6684
6684 (process ID) old priority 0, new priority -20

6684 -20 /usr/sbin/sshd -D
9038 -20 sshd: root@pts/0
9067 -20 sshd: root@pts/1

1.网络
ping 10.0.0.100

2.端口
telnet 10.0.0.150 22
tcping 10.0.0.150 22
3.用户
root
4.密码
1


nice:设置优先级
-n:指定优先级

nice -n -20 command
renice -n -5 pid

后台进程管理:

jobs:查看后台进程
bg:永久放到后台
fg:调出后台任务

screen:
-S:起名
-ls:查看后台进程的列表
-r:指定pid或者名字,进入后台进程
kill + pid 杀掉进程


退出终端:ctrl +a +d


[root@oldboyedu ~]# yum install -y screen
[root@oldboyedu ~]# screen -ls
There is a screen on:
9461.pts-1.oldboyedu (Detached)
1 Socket in /var/run/screen/S-root.

[root@oldboyedu ~]# screen -r 9461
[root@oldboyedu ~]# screen -S ping_baidu
[detached from 9539.ping_baidu]
[root@oldboyedu ~]# screen -ls
There are screens on:
9539.ping_baidu (Detached)
9518.pts-1.oldboyedu (Detached)
9461.pts-1.oldboyedu (Detached)
3 Sockets in /var/run/screen/S-root.

[root@oldboyedu ~]# screen -r ping_baidu
[detached from 9539.ping_baidu]
[root@oldboyedu ~]# screen -r 9539
[detached from 9539.ping_baidu]

系统平均负载

4 2
2 2
1 2

stress:是Linux系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。
[root@oldboyedu ~]# yum install -y stress

mpstat:是多核CPU性能分析工具,用来实时检查每个CPU的性能指标,以及所有CPU的平均指标。
[root@oldboyedu ~]# yum install -y sysstat

pidstat:是一个常用的进程性能分析工具,用来实时查看进程的CPU,内存,IO,以及上下文切换等性能指标。
[root@oldboyedu ~]# yum install -y sysstat

总结:

1.平均负载高有可能是CPU密集型进程导致的
2.平均负载高并不一定代表CPU的使用率就一定高,还有可能是I/O繁忙
3.当发现负载高时,可以使用mpstat、pidstat等工具,快速定位到,负载高的原因,从而做出处理

开机启动流程CentOS6:
1.加电自检(BIOS)检查硬件
2.内核引导MBR
3.grub菜单 —>选择系统
4.加载内核
5.加载init
6.进入终端