进程小知识

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

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

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

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

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

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

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

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

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

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

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

pgrep
[options] pattern

-u uid: effective user,生效者

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

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

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

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

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

-l: 显示进程名

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

Pgrep -a 支持正则

例如: pgrep -a
"vi*"

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

还有一个比较好用的工具

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

Pidof systemd

Pidof init

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

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

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

0-139(CentOS4,5)

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

0-98, 99(CentOS6)

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

nice值(动态优先级): -20到19,对应系统优先级100-139或99,没有指定默认优先级为0,对应系统的120.

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

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

O(logn) 时间缓慢增长

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

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

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

进程优先级的图片说明:

关于进程优先级的说明:

ni: nice值

pri: priority 优先级

psr: processor CPU编号

rtprio: 实时优先级

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

进程优先级调整:

静态优先级: 100-139

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

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

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

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

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

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

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

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

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

ni:调整nice时间

id:空闲

wa:等待IO时间

hi:硬中断

si:软中断(模式切换)

st:虚拟机偷走的时间

top 内置选项

排序:

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

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

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

首部信息显示:

uptime信息: l命令

tasks及cpu信息: 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: 显示进程树

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

时间: 2025-01-02 09:06:43

进程小知识的相关文章

Linux 小知识翻译 - 「syslog」

这次聊聊「syslog」. 上次聊了「日志」(lgo).这次说起syslog,一看到log(日志)就明白是怎么回事了.syslog是获取系统日志的工具. 很多UINIX系的OS都采用了这个程序,它承担了「获取系统全部的日志」这个维持系统正常运行的重要任务. syslog的本体是「syslogd」这个daemon(一般翻译成守护进程),常驻内存中获取日志. syslog的特点是可以通过配置文件「/etc/syslog.conf」,对「哪种应用程序?哪种重要度的信息?记录在哪个文件中?」等进行细致的

Linux进程管理知识整理

Linux进程管理知识整理 1.进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些? TASK_RUNNING(可运行状态) TASK_INTERRUPTIBLE(可中断等待状态) TASK_UNINTERRUPTIBLE(不可中断等待状态) TASK_STOPPED(进程被其它进程设置为暂停状态) TASK_TRACED(进程被调试器设置为暂停状态) TASK_DEAD(退出状态) 进程由于所需资源得不到满足,从而进入

Linux 小知识翻译 - 「内核(kernel)」

上次介绍了Linus Torvalds, 这次介绍他开发的「内核」. 经常听人提到「Linux kernel」,但如果被问到「kernel究竟是什么?」的话,会出乎意料的觉得难以回答. 那么,kernel到底是什么呢?「kernel」翻译过来就是「核心」的意思,简单来说,「Linux的核心程序就是Linux kernel」. 其实严格来说,「Linux」就是指「Linux kernel」.(最近,「Linux发行版」简称为「Linux」的情况越来越多) 将Linux kernel解释成「系统核心

Linux进程控制知识总结

目录 一:进程标识符(ID) 二:进程操作 2.1创建一个进程 2.2 fork函数出错情况 2.3创建一个共享空间的子进程 2.4退出程序 2.5设置进程所有者 三:执行程序 3.1 exec函数 3.2 执行解释器文件 3.3在程序中执行Shell命令 四:关系操作符 4.1等待进程退出 4.2 等待指定的进程 进程控制 -- 一步 一:进程标识符(ID) 进程ID是用来标识进程的编号,就像身份证一样.不同的进程有不同的ID,可以通过ID来查询进程.进程标识符的类型是pit_t,其本质是一个

Linux 小知识翻译 - 「cron」

这次说说「cron」. 「cron」就是「定期自动执行任务的工具」(相当于windows中的计划任务).读做「库隆」.使用「cron」,可以预先指定任务在某个时间执行. 时间的指定并不只是「一小时一次」这种简单的指定方法,还可以指定只有某天的某时才执行任务,或者指定8点-22点每小时执行一次等等. 还可以指定到具体的时间(可以具体到分钟).使用起来有些规则,但不是很难. 「cron」被称为运用Linux所不可缺少的工具.可用来定期的管理获取日志的软件,定期的检查系统状态. 甚至可用来监视进程或者

Linux 小知识翻译 - 「/proc 文件夹」

这次聊聊 「/proc 文件夹」. /proc 文件夹用来保管系统状态相关的文件的特殊文件夹,这个文件夹中有的文件只是内存上的虚拟文件. /proc 文件夹下有些文件可以反映各个进程的运行状态.所以说是决定Linux运行的非常重要的文件夹. 通过这个文件夹下文件,可以获取各式各样的信息.比如,请在命令行下输入「cat /proc/cpuinfo」试试看.可以获得CPU的信息. 其它还可以获得内存信息,驱动信息,以及其它软硬件方面的各种信息. 因此,修改 /proc 文件夹下的文件,可以调整系统的

电脑系统维护小知识!——————【Badboy】

电脑系统维护小知识 1.经常进行"磁盘清理"和磁盘碎片整理" 当硬盘用久了,无数次的新增.更改和删除程序和文件后,就会造成很多断断续续的扇区,非连续性的文件便会愈来愈多,硬盘磁头便需要花更多时间跳来跳去来读取数据,这就导致硬盘速度减慢.因此,我们应该定期进行"磁盘清理"和磁盘碎片整理",将所有非连续性的文件重新编排整齐.处理方法:点开始-程序-附件-系统工具-磁盘清理程序和磁盘碎片整理程序.有可能整理过程很慢,那是你长时间没有清理或者有只读文件,

面试过程中,你知道这些小知识,将事半功倍

在平时我们面试的过程总总会遇到一些面试官问一些平时我们不怎么注意的问题,当问出来的时候,面试者通常都是一脸懵逼,这和我想象中的不一样阿,怎么不按照套路出牌,当然一些小知识更能体现出你的细心和好学,以下分析20个面试中的小知识,共勉~.·整理的这份PDF有从基础到进阶.含有BATJ.字节跳动面试专题,算法专题,高端技术专题,混合开发专题,java面试专题,Android,Java小知识,到性能优化.线程.View.OpenCV.NDK等应有尽有.还有辅之相关的视频+学习笔记 (更多完整项目下载.未

拿不到想要的offer,只缘身在CV中,关于一些面试小知识

在平时我们面试的过程总总会遇到一些面试官问一些平时我们不怎么注意的问题,当问出来的时候,面试者通常都是一脸懵逼,这和我想象中的不一样阿,怎么不按照套路出牌,当然一些小知识更能体现出你的细心和好学,以下分析20个面试中的小知识,共勉~.·整理的这份PDF有从基础到进阶.含有BATJ.字节跳动面试专题,算法专题,高端技术专题,混合开发专题,java面试专题,Android,Java小知识,到性能优化.线程.View.OpenCV.NDK等应有尽有.还有辅之相关的视频+学习笔记 (更多完整项目下载.未