笔记整理1.8-进程管理

ps -aux | head -n 2
USER: 启动这些进程的用户
PID: 进程的ID
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
STAT:该程序目前的状态,Linux进程有5种基本状态:
R :运作 可被
S :睡眠
T :停止
Z:该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
D 不可中断
5个基本状态后,还可以加一些字母,比如:Ss、R+,如下图

它们含意如下::
<: 表示进程运行在高优先级上
N: 表示进程运行在低优先级上
L: 表示进程有页面锁定在内存中
s: 表示进程是控制进程
l: 表示进程是多线程的
+: 前台

START:该 process 被触发启动的时间;
TIME:该 process 实际使用 CPU运作的时间。
COMMAND:该程序的实际指令

ps -ef

UID: 启动这些进程的用户
PID: 进程的ID
PPID: 父进程的进程号
C: 进程生命周期中的CPU利用率
STIME: 进程启动时的系统时间
TTY: 表明进程在哪个终端设备上运行 ?表示与终端无关 内核态进程。tty1-tty6本机上面的登入者程序 pts/0则表示运行在虚拟终端上的进程。
TIME: 运行进程一共累计占用的CPU时间
CMD: 启动的程序名称


例1:测试CPU使用时间。
dd if=/dev/zero of=/a.txt count=10 bs=100M
[root@localhost ~]# ps -axu | grep dd
注:
ps aux 是用BSD的格式来显示进程。
ps -ef 是用标准的格式显示进程


[root@node62 ~]# uptime
22:51:33 up 33 days, 1:18, 1 user, load average: 0.00, 0.01, 0.05

top
Tasks: 481 total 进程总数
1 running 正在运行的进程数
480 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数

Cpu(s): 0.0% us 系统用户进程使用CPU百分比。
0.0% sy 内核中的进程占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id 空闲CPU百分比
0.0% wa cpu等待I/0完成的时间总量。
测试:
终端1:执行:top
终端2:dd if=/dev/zero of=/a.txt count=10 bs=100M
终端3:dd if=/dev/zero of=/a.txt count=10 bs=100M

0.0 st (steal 偷)虚拟机占用cpu时间

Mem:2033552k total 物理内存总量

used 使用的物理内存总量
free 空闲内存总量
buff/cache 用作内核缓存的内存量。
和free -k 一个意思


PID 进程id
USER 进程所有者的用户名
PR 优先级(由内核动态调整),用户不能
NI 进程优先级。 nice值。负值表示高优先级,正值表示低优先级,用户可以自己调整
VIRT(virtual memory usage) 虚拟内存,是进程正在使用的所有内存(ps中标为VSZ)
VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES(resident memory usage) 是进程所使用的物理内存。实际实用内存(ps中标为RSS)
RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR 共享内存大小,单位kb
SHR:shared memory 共享内存
1、除M了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来
S 进程状态。
D=不可中断的睡眠状态
R=运行中或可运行
S=睡眠中
T=已跟踪/已停止
Z=僵停
%CPU CPU百分比
%MEM 物理内存
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行

lsof 命令

-i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<pid>:列出指定进程号所打开的文件;
[root@node62 ~]# lsof -i:10050
[root@node62 ~]# lsof -p 2

pstree或pstree -p #进程树


& 后台执行.
ctrl+z 后台执行,并且暂停.
jobs 查看当前有多少在后台运行的进程.它是一个作业控制命令
fg 恢复到前台
bg 后台命令继续执行

实战恢复被挂起的进程(了解)
例: vim a.txt 按下: ctrl+z
[root@xuegod63 ~]# vim a.txt #打开后,然后执行 ctrl+z

[root@xuegod63 ~]# ps -axu | grep vim
root 43710 0.8 0.2 151744 5304 pts/3 T 18:26 0:00 vim a.txt
root 43720 0.0 0.0 112676 984 pts/3 S+ 18:26 0:00 grep --color=auto vim
[root@xuegod63 ~]# jobs #查看当前有多少在后台运行的进程
[1]+ 已停止 vim a.txt
[root@xuegod63 ~]# fg 1 #将后台挂起的进程恢复到前台运行

kill和killall终止进程
[root@xuegod63 ~]# kill -9 2342
[root@xuegod63 ~]# killall sshd
[root@xuegod63 ~]# pkill sshd

nice -n 5 vim a.txt #指定优先级

renice -10 pid

yum -y install screen

screen -S test -> 新建一个叫test的会话
screen -ls -> 列出当前所有的会话
screen -r test -> 回到test会话

posted @ 2019-03-03 18:05  夜辰雪扬  阅读(112)  评论(0)    收藏  举报