首页 > 代码库 > Linux上的进程管理
Linux上的进程管理
一、何为进程
通常来讲,进程时运行起来的程序,为什么这样说呢,程序文件是存放在磁盘上的,一旦内核将其加载至内存中运行起来,它就成为了一个进程,而且系统还会给予进程一个ID号,成为PID,用来标识进程。同时根据启动这个进程的使用者的相关属性信息,给予这个PID一组有效的权限配置。
二、如何产生一个进程
运行一个程序或者命令就可以触发一个事件而取得一个PID,因为系统只识别二进制程序文件,所以我们可以通过执行系统上的二进制程序文件来运行程序,进而产生进程
三、如何管理进程
为方便管理,Linux为我们提供了许多进程管理的命令,下面让我来简单介绍一下
▲ps命令 查看进程信息
ps [option]
选项有三种风格:
This version of ps accepts several kinds of options:
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.
选项:
a:所有与终端相关的进程
x:所有与终端无关的进程;
u:以用户为中心组织进程状态信息显示;
USER:进程的属主
PID:进程的PID号,用来表示此进程
CPU%:占CPU的百分比
MEM%:占内存的百分比
VSZ:虚拟内存集
RSS:常驻内存集
TTY:与其相关的终端
STAT:进程的状态
R:running
S: interruptablesleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前台进程
l: 多线程进程
N:低优先级进程
<: 高优先级进程
s: session leader,会话(子进程)发起者
TIME:使用掉CPU的时间
COMMAND:与此进程相关的命令
常用组合:
●-ef
-e: 显示所有进程
-f: 显示完整格式程序信息
-●eFH
-F: 显示更完整格式的进程信息
-H: 以进程层级格式显示进程相关信息
● 自定义
-eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
▲top命令 动态的显示进程信息
界面如下图 ,红色标识的是有关CPU参数,下面的PID,USER那一栏参数基本上和ps命令一样 top中有许多的内置命令:
●排序:
P:以占据的CPU百分比,%CPU
M:占据内存百分比,%MEM
T:累积占据CPU时长,TIME+
●首部信息显示:
uptime信息:l命令
tasks及cpu信息:t命令
cpu分别显示:1 (数字)
memory信息:m命令
●退出命令:q
●修改刷新时间间隔:s
●终止指定进程:k
●保存文件:W
▲htop
htop与top很类似,界面比hop做的漂亮,它通过文字图形化地显示每一个进程的CPU和内存使用量、swap使用量。界面如下图所示
▲uptime 显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(1、5、10分钟的平均负载,一般不会超过1)
●系统平均负载:
指在特定时间间隔内运行队列中的平均进程数。值越小服务器负载越小
●如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。
●如果linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。
▲vmstat命令:虚拟内存信
●procs:
r:等待运行的进程的个数,和核心数有关
b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)
●memory:
swpd: 交换内存的使用总量
free:空闲物理内存总量
buffer:用于buffer的内存总量
cache:用于cache的内存总量
●swap:
si:从磁盘交换进内存的数据速率(kb/s)
so:从内存交换至磁盘的数据速率(kb/s)
●io:
bi:从块设备读入数据到系统的速率(kb/s)
bo: 保存数据至块设备的速率
●system:
in: interrupts, 中断速率,包括时钟
cs: context switch, 进程切换速率
●cpu:
us:Timespent running non-kernel code
sy: Time spent running kernel code
id: Time spent idle. Linux 2.5.41前,包括IO-wait time.
wa: Time spent waiting for IO. 2.5.41前,包括in idle.
st: Time stolen from a virtual machine. 2.6.11前, unknown
▲glances 在EPEL源里下载安装
●常用选项:
-b: 以Byte为单位显示网卡数据速率
-d: 关闭磁盘I/O模块
-f /path/to/somefile: 设定输入文件位置
-o {HTML|CSV}:输出格式
-m: 禁用mount模块
-n: 禁用网络模块
-t #: 延迟时间间隔
-1:每个CPU的相关数据单独显示
●此外,glances还可以给予C/S模式来监控系统信息
服务模式:
glances -s -B IPADDR
IPADDR: 指明监听的本机哪个地址
客户端模式:
glances -c IPADDR
IPADDR:要连入的服务器端地址
▲kill命令:向进程发送控制信号,以实现对进程管理
常用信号:man 7 signal
1) SIGHUP: 无须关闭进程而让其重读配置文件
2) SIGINT: 中止正在运行的进程;相当于Ctrl+c
9) SIGKILL: 杀死正在运行的进程
15) SIGTERM:终止正在运行的进程
18) SIGCONT:继续运行
19) SIGSTOP:后台休眠
按PID:kill [-SIGNAL] pid…
按名称:killall[-SIGNAL] comm…
按模式:pkill[options] pattern
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正发起运行命令者
-t terminal: 与指定终端相关的进程
-l: 显示进程名
-a: 显示完整格式的进程名
-P pid: 显示父进程为此处指定的进程的进程列表
●下图举例通过ps命令查找进程号,然后杀死这个进程
本文出自 “学無止境” 博客,请务必保留此出处http://dashui.blog.51cto.com/11254923/1851591
Linux上的进程管理