进程小知识

首先来介绍一下什么是进程?

当一个程序在运行的时候会读取到内存中,当再次使用的时候就会再复制一份运行,这时候就是每个独立的进程,程序是在磁盘上的,进程是在内存中。每个进程都是独立的进程,都是系统编号的。当进程结束,内存空间就会释放,也就是说每个进程都是都是有生命周期的。每个进程运行的环境就是context。如果父进程关闭子进程也会关闭。需要知道的是,父进程创建子进程的时候只分配名称不分配空间,当数据发生改变的时候才会分配独立的空间节省空间。下面介绍一些关于进程的小命令。

----------ps -report a snapshot(快照) of the current processes(显示当前的状态),支持正则表达式。

1.ps axo pid,cmd,%mem,rss k %mem :按照内存排名显示

Init 3关掉图形化界面,此时按照%mem排序显示就不会有上面图形化界面的显示了。

wKiom1m12MfRP7RLAAAlHxsXosc644.png

2.ps axo pid,cmd,%mem,user,ruser :user等同于euser就是生效者的名称,ruser就是发起者的名称。

wKioL1m122XQTFXyAAIJP05onzo818.png

3.ps aux  :详细显示进程每个字段的值

wKioL1m12JeQtESqAABPnPfLBuo466.png

4.watch -n1 "ps axo pid,cmd,psr|grep sleep" :实时观察使用的是哪一个cpu来休眠。

wKiom1m12L2BEo8OAAAy7Td4OZ0759.png

5.ps -C aa.sh o pid,cmd -C后面直接跟命令,注意:如果后面跟的是脚本就要运用shebang机制,不然不会显示指定选项的信息。(便于运行脚本查看进程)

wKiom1m12L3Dv6T7AAA6ZonqNHg807.png

6. nice -n 10 ping 127.17.0.1:指定ping的优先级,然后查询ping的优先级用-C

wKioL1m12JjD5_RgAABUG1MosPo681.png

 

wKiom1m12L6AlxvaAAAwneQudxg595.png

-------pgrep选项:用于搜索进程

pgrep [options] pattern

-u uid: effective user,生效者

例如: pgrep -lu root 就可以看到以root真正身份运行的进程

   pgrep -au root 完整地显示以root真正身份运行的进程的信息,提示:a选项在centos6上并不是很好用。

wKioL1m12Jmy4ZJ0AAA_SM0aeN4622.png

-U uid: real user,真正发起运行命令者

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

例如: pgrep -at  pts/0 显示pts/0进程的信息

wKiom1m12MGyEPUEAAA7IaqKNFk264.png

-l: 显示进程名

-a: 显示完整格式的进程名 (这个选项在centos6中好像不能用)

Pgrep -a 支持正则

例如: pgrep -a "vi*"

wKioL1m12JzzBkPMAABEf6IH5QI643.png

-P pid: 显示指定进程的子进程

还有一个比较好用的工具

Pidof 进程名 :根据进程名查pid

Pidof systemd

wKioL1m12JySTbTHAAAfk6GYKj0395.png

Pidof init

wKiom1m12MKRzOZOAAArVJgInEg829.png

例如:如果想要定时开启某一个服务就可以在脚本中运用pidof,用来开启某一个服务。

wKiom1m12MKTpRd6AABMAXLSTmo327.png

-------进程优先级(意味着cpu会先响应你,但是并不是说速度就快,例如ping,看回来的包的情况):

系统优先级: 数字越小,优先级越高

0-139CentOS4,5

各有140个运行队列和过期(等待)对列,也就是一共280个队列,和进程的多少,规模的大小没关系,时间是一致的O(1)

0-98 99CentOS6

realtime实时优先级(静态优先级): 99-0 值最大优先级最高,文档里的描述错误。

nice值(动态优先级): -2019,对应系统优先级100-13999,没有指定默认优先级为0,对应系统的120.

Big O:时间复杂度,用时和规模的关系

O(1),跟进程的规模无关,时间是一样的,时间恒等不变的,横线

O(logn) 时间缓慢增长

O(n)线性 增长较快,效率不如logn

O(n^2)抛物线 后续增长速度没有2^n

O(2^n) 后续增长较快

进程优先级的图片说明:

wKioL1m12KGC_SB3AAC7MiIn0Kk138.jpg

关于进程优先级的说明:

ni: nice

pri: priority 优先级

psr: processor CPU编号

rtprio: 实时优先级

例如:ps axo pid,cmd,psr,ni,pri,rtprio

进程优先级调整:

静态优先级: 100-139

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

只有根用户才能降低nice值(提高优先性)

1nice -n 10 ping 127.0.0.1指定优先级为10

2nice --10(负数10ping 172.17.0.1指定优先级为-10

3renice -30 3941 更改3941号进程的优先级

wKiom1m12MPCdmYBAABa3dJh2yM362.png

------------进程管理工具top

相当于windows的任务管理器动态显示

wKioL1m12KDCJP93AACHHHMf3XI493.png

us:用户空间  就是在应用程序层面做的操作(例如小计算),涉及不到内核操作系统,。

sy:内核空间  如果存储数据,就需要通过内核访问硬盘,这就是内核空间。

ni:调整nice时间

id:空闲

wa:等待IO时间

hi:硬中断

si:软中断(模式切换)

st:虚拟机偷走的时间

top 内置选项

排序:

P:以占据的CPU百分比,%CPU默认排序

M:占据内存百分比,%MEM

T:累积占据CPU时长,TIME+

首部信息显示:

uptime信息: l命令

taskscpu信息: t命令

cpu分别显示: 1 (数字)

memory信息: m命令

退出命令: q

修改刷新时间间隔: s 默认三秒,不要太快。

终止指定进程: k

保存文件: W

top命令行选项:

-d #: 指定刷新时间间隔,默认为3

-b: 全部显示所有进程

-n #: 刷新多少次后退出

-------------htop命令: EPEL源,推荐使用,里面有很多内置选项

选项:

-d #: 指定延迟时间;

-u UserName: 仅显示指定用户的进程

-s COLUME: 以指定字段进行排序

子命令:

s: 跟踪选定进程的系统调用

l: 显示选定进程打开的文件列表

a:将选定的进程绑定至某指定CPU核心

t: 显示进程树

今天的分享就到这了,下周再继续分享啦~~~~~~~~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章