linux下有四个作业优先级,Linux进程及作业管理相关命令

作为初学者,Linux永远是那么神秘,高大上的内容我也不会,所以在这里只能整理一下与管理相关的命令了,如果有不对的或不准确的地方,请指正。

可参考:Linux内核--进程管理与调度http://www.linuxidc.com/Linux/2014-08/105366.htm

pstree:显示进程状态树

作用:列出当前的进程,以及它们的树状结构

用法:pstree [选项]

-a: 显示执行程序的命令与完整参数

ps:查看系统中进程的状态

在/proc/目录中包含了进程和内核模拟生成的伪文件,该路径下每个进程用自己的PID命名目录,目录里面包含了这个进程运行的各个参数。

内核参数在/proc/sys/目录中,可设置其值动态调整内核运行的特性。

用法:ps [选项]

选项有三种风格

1   UNIX options, which may be grouped and must be preceded by a dash.

2   BSD options, which may be grouped and must not be used with a dash.

3   GNU long options, which are preceded by two dashes.

常用选项组合之一:

# pstree aux

a:所有与终端相关的进程

x:所有与终端无关的进程

u:以用户为中心组织进程状态信息显示

显示字段含义:

USER 表示此进程以哪个用户身份运行

PID 表示进程号

%CPU 表示占用cpu利用率百分比

%MEM 表示占用物理内存百分比

VSZ 表示虚拟内存集大小,包含共享的数据空间

RSS 表示常驻内存集大小,位于物理内存,并不能被交换出去

TTY 表示此进程从哪个终端启动,问号?表示与终端无关的进程

STAT 表示进程状态

R:running

S:interruptable sleeping

D:uninterruptable sleeping

T:Stopped

Z:zombie

+:前台进程

l:多线程进程

N:低优先级进程,一般表示该进程优先级别数值是负数

s:session leader

START 表示进程起始时间

TIME  表示累计占用cpu的时间

COMMAND 表示由哪个命令启动,带中括号的是内核线程

常用选项组合之二:

# pstree �Cef

-e : 显示所有进程

-f : 显示完整格式的进程信息

部分字段含义:

PPID 表示此进程的父进程号

C 表示cpu的占用百分比

常用选项组合之三:

# ps �CeFH

-F:显示完整格式的进程信息

-H:以层级结构显示进程的相关信息

部分字段含义:

SZ 表示虚拟内存集大小,包含共享的数据空间

PSR 表示此进程运行在哪颗cpu上

常用选项组合之四:

# ps �Ceo

# ps axo

o FIELD1,FIELD2,… : 自定义要显示的字段列表,以逗号分隔

常用的FIELD:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio

ni : nice值

pri : priority 优先级

rtprio : real time priority,实时优先级

pcpu : cpu的利用率

pgrep:查找匹配条件的进程

用法:pgrep [options] pattern

-u uid:effective user

-U uid:read user

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

-l:显示进程名

-a:显示完整格式的进程名

-P pid:显示此进程的子进程

pidof:根据进程名,取其pid

[root@localhost ~]# pidof sshd

3987 2368 1062

uptime:显示系统时间、用户登录数、运行时长及平均负载

[root@localhost ~]# uptime

00:06:21 up  7:12,  2 users,  load average: 0.00, 0.01, 0.05

load average:等待运行的进程队列的长度在过去1分钟、5分钟和15分钟的平均负载

top:显示系统当前进程状态

用法:

# top -d 2 :指定2秒延迟时长刷新显示,单位是秒

# top -b :批模式

# top -bn 2 :在批模式下,共显示2批

显示含义:

第一行信息是uptime命令的显示内容

第二行显示的是所有启动的、目前运行的、挂起( Sleeping )的和无用( Zombie )的进程数量

第三号显示的是目前CPU的使用情况,依次为

us用户使用比例

sy系统占用的比列

ni调整以后额外占用的时间百分比

id闲置( Idle)比例

wa等待IO完成占用的百分比

hi处理硬件中断消耗的百分比

si处理软件中断消耗的百分比

st被当前主机上虚拟化技术所分走的百分比

第四行显示物理内存的使用情况,包括总的可以使用内存、空闲内存、已用内存、buff/cache占用的内存

buffers与cached都是内存操作,用来保存系统曾经打开过的文件以及文件属性信息,这样当操作系统需要读取某些文件时,会首先在buffers与cached内存区查找,如果找到,直接读出传送给应用程序,如果没有找到需要数据,才从磁盘读取。

buffers是用来缓冲块设备做的,它只记录文件系统的元数据(metadata)以及tracking in-flightpages,而cached是用来给文件做缓冲。更通俗一点说:buffers主要用来存放目录里面有什么内容,文件的属性以及权限等等。而cached直接用来记忆我们打开过的文件和程序。

第五行显示交换分区的使用情况,包括总的、空闲的、已用的和可用的内存空间大小

7602edc2b4f1a8e81bf8b1f86bc6ae06.png

第六行显示项目如下:

PID : 进程号

USER : 进程所有者

PR : 进程的优先级别

NI : nice值

b61c0fcba2bde7634a8c6db9ac58aa7d.png

VIRT : 进程占用的虚拟内存值

RES : 进程占用的物理内存值

SHR : 进程占用的共享内存值

S : 进程的状态,参见ps命令

%CPU : 该进程占用的CPU使用率

%MEM : 该进程占用的物理内存的百分比

TIME+ : 进程启动后在CPU上运行的时长

COMMAND : 进程启动的启动命令

在top命令使用的过程中,还可以使用一些交互式的命令来完成其他功能,可用以下快捷键:

M: 根据驻留内存大小进行排序

P: 根据cpu使用百分比进行排序

T: 根据累计时间进行排序

l: 是否显示平均负载和启动时间

t: 是否显示进程和cpu状态相关信息

m: 是否显示内存相关信息

c: 是否显示完整的命令行信息

s:修改刷新时间间隔

:立即刷新

k:终止指定的进程

q: 退出top

htop:系统状态显示

htop是top命令在功能上的一个升级命令,因此两者的显示和使用习惯比较相似,但是htop命令需要手动安装,并且在发行版光盘上没有它的安装包,需要通过其他途径获得,建议用yum指向的epel源安装

b630e8edfee18df61ae372662fb6ecf7.png

htop的功能很强大,还能支持鼠标操作,显示项目内容和top命令类似,这里只说一下它的交互命令

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

s: 以指定字段显示

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

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

t: 以层级关系显示各进程状态

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

更多帮助按F1键获得

vmstat:报告虚拟内存统计信息

用法:vmstat [options] [delay [count]]

# vmstat 2 5  //表示每5秒采集一次,共采集5次

-s : 显示内存相关统计信息

-d : 显示磁盘相关统计信息

-S : Switches outputs between 1000  (k),  1024  (K),  1000000  (m),  or 1048576  (M) bytes.  Note this does not change the swap (si/so) or block (bi/bo) fields.

显示字段含义:

------procs------

r:等待运行的进程的个数;CPU上等待运行的任务的队列长度

b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度

------memory------

swpd:交换内存使用总量;

free:空闲的物理内存总量;

buffer:用于buffer的内存总量;

cache:用于cache的内存总量;

------swap------

si:数据进入swap中的数据速率(kb/s)

so:数据离开swap的速率(kb/s)

------io------

bi:从块设备读入数据到系统的速度(kb/s)

bo:保存数据至块设备的速率(kb/s)

------system------

in:interrupts,中断速率

cs:context switch, 上下文 切换的速率

------cpu------

us: user space

sy:system

id:idle

wa:wait

st: stolen

如果bi和bo长期不等于0,则表示物理内存太小

pmap 报告进程内存映射表

用法:pmap [options] pid [...]

-x:显示详细格式的信息

另一种查看方式:cat  /proc/PID/maps

kill

-terminate a process

作用:用于向进程发送信号,以实现对进程的管理

显示当前系统可用信号:

# kill �Cl

每个信号的标识方法有三种:

1) 信号的数字标识

2) 信号的完整名称

3) 信号的简写名称

向进程发信号:

# kill  [-s signal|-SIGNAL]  pid...

常用信号:

1) SIGHUP:无须关闭进程而让其重读配置文件

2)SIGINT:终止正在运行的进程,相当于Ctrl+c

9)SIGKILL:杀死运行中的进程

15)SIGTERM:终止运行中的进程

18)SIGCONT

19)SIGSTOP

killall

-kill processes by name

# killall  [-SIGNAL]  program

jobs

前台作业(foregroud):通过终端启动,且启动后会一直占据终端

后台作业(backgroud):可以通过终端启动,但启动后即转入后台运行(释放终端)

如何让作业运行于后台?

(1) 运行中的作业

Ctrl+z

注意:送往后台后,作业会转为停止态;

(2) 尚未启动的作业

# COMMAND &

注意:此类作业虽然被送往后台,但其依然与终端相关;如果希望把送往后台的作业剥离与终端的关系:

# nohup  COMMAND  &

查看所有的作业:

# jobs

可实现作业控制的常用命令:

# fg  [[%]JOB_NUM]:把指定的作业调回前台

# bg  [[%]JOB_NUM]:让送往后台的作业在后台继续运行

# kill  %JOB_NUM:终止指定的作业

nice:改变优先权等级

0-139 种优先级,数字越小,优先级越高

100-139 :用户可控制

0-99: 内核调整的

优先级高可以:

1、获得更多的CPU运行时间

2、更优先获得运行的机会

可通过nice值调整的优先级范围:100-139

其nice值分别对应于:-20, 19

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

nice 值:数值越小,优先级调高

普通用户只能调大自己进程的nice值

仅管理员可调低nice值

以指定的nice值启动并运行命令

# nice  [OPTION]  [COMMAND [ARGU]...]

选项:-n NICE

# nice �Cn 1 ls > 1.txt

renice

允许用户修改一个正在运行的进程的优先级

# renice  [-n]  NICE  PID...

查看Nice值和优先级:

# ps  axo  pid, ni, priority, comm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值