介绍Linux进程查看及管理的工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup
一. pstree命令:
pstree - display a tree of processes
二. ps: process state, report a snapshot of the current processes
Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中,每一个PID都是一个进程号,PID中的cmdline文件说明了这个进程是由哪个文件启动的;
ps [OPTION]... 选项:支持两种风格
1) BSD风格,前面没- ,
常用组合:aux
u: 以用户为中心组织进程状态信息显示
a: 与终端相关的进程;
x: 与终端无关的进程;
~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
VSZ: Virtual memory SiZe,能使用的虚拟内存大小
RSS: ReSident Size, 常驻内存大小,不能放在交换分区中的
STAT:进程状态
R:running
S: interruptable sleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前台进程
l: 多线程进程
N:低优先级进程
<: 高优先级进程
s: session leader,会话创建者,这个启动后,会引起很多其他进程,如果它被终止,与它相关的进程也会终止
COMMAND: 由什么命令启动的进程
2) 标准风格:
常用组合1:-ef (PPID是父进程号)
-e: 显示所有进程
-f: 显示完整格式程序信息
-U: 显示指定用户进程 ps -U root
-o: 自定义显示输出
常用组合2:-eFH
-F: 显示完整格式的进程信息
-H: 以进程层级格式显示进程相关信息
常用组合3:-eo, axo,指明要显示的字段
例如: ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ni: nice值
pri: priority,优先级
psr: processor, CPU
rtprio: 实时优先级
三. pgrep, pkill:
pgrep [options] pattern------进程显示过滤,用法和pkill一样,比如pgrep -u root -l
pkill [options] pattern
-u uid: effective user,真实有效的用户
-U uid: real user,看到的用户
-t terminal: 与指定终端相关的进程
-l: 显示进程名
-a: 显示完整格式的进程名
-P pid: 显示其父进程为此处指定的进程的进程列表
四. pidof:
根据进程名获取其PID;
五. top:
1)有许多内置命令(就是进入top显示界面后直接按命令键):
排序:默认以CPU排序
P:以占据的CPU百分比;
M:占据内存百分比;
T:累积占据CPU时长;
首部信息显示:
uptime信息:l命令
tasks及cpu信息:t命令, cpu分别显示:1 (数字)
memory信息:m命令,其中us:用户空间,sy:内核空间,ni:nice值,id:空闲时间,wa:等待I/O时间,hi:硬件中断时间,si:软件中断时间,st:被虚拟技术偷走的时间
退出命令:q
修改刷新时间间隔:s
终止指定进程:k
2)参数选项:
-d #: 指定刷新时间间隔,默认为3秒;
-b: 以批次方式;自动翻页
-n #: 显示多少批次;比如 top -b -n 1--只显示第一屏
六. htop命令:
选项:
-d #: 指定刷新时间间隔;
-u UserName: 仅显示指定用户的进程;
-s COLOMN: 以指定字段进行排序;
内建命令:
s: 跟踪选定进程的系统调用;(上下键选进程)
l: 显示选定进程打开的文件列表;
a:将选定的进程绑定至某指定CPU,比如有多个CPU时,要把进程运行在哪个CPU上
t: 显示进程树
注意:Fedora-EPEL源中提供此软件,比如在镜像源中指定base=mirrors.aliyun.com/epel/7/x86_64/
七 vmstat命令:虚拟内存状态工具---经典
vmstat [options] [delay [count]] ,比如 vmstat 2,表示2秒刷新一次,vmstat 2 5,显示5次退出
1)procs相关:
r:等待运行的进程的个数,单个CPU时,超过3个就说明CPU性能不够了;
b:处于不可中断睡眠态的进程个数;(被阻塞的队列的长度);
2) memory:
swpd: 交换内存的使用总量;
free:空闲物理内存总量;
buffer:用于buffer的内存总量;
cache:用于cache的内存总量;
3)swap:
si:数据进入swap中的数据速率(kb/s)
so:数据离开swap中的数据速率(kb/s),重新载入内存
4)io:
bi:从块设备(磁盘)读入数据到系统(内存)的速率;(kb/s)
bo: 保存数据至块设备的速率;
5)system:
in: interrupts, 中断速率;
cs: context switch, 进程切换速率;
6)cpu:
us--用户空间占据CPU的比例
sy--内核空间
id--空闲比例
wa--等待I/0完成所消耗的时间比例
st--被虚拟化技术偷走的比例
选项:
-s: 显示内存的统计数据
八. pmap命令:
pmap - report memory map of a process,查看进程都占用了哪些内存空间
pmap [options] pid [...]
-x: 显示详细格式的信息;
另外一种实现方式:
# cat /proc/PID/maps
九. dstat命令:-系统资源统计数据,支持插件来扩展功能,比较好用
dstat [-afv] [options..] [delay [count]]
-c: 显示cpu相关信息;
-C #,#,...,total ---显示哪一个CPU信息
-d: 显示disk读写相关信息;
-D total,sda,sdb,...单独显示某个disk,或全部disk
-g:显示page相关统计数据;
-m: 显示memory相关统计数据;
-n: 显示network相关统计数据;
-p: 显示process相关统计数据;
-r: 显示io请求相关的统计数据;
-s: 显示swapped相关的统计数据;
--tcp
--udp
--unix
--raw
--socket---相当于参数tcp,udp,raw一起用
--ipc ----进程间通讯的相关信息
--top-cpu:显示最占用CPU的进程;
--top-io: 显示最占用io的进程;
--top-mem: 显示最占用内存的进程;
--top-latency: 显示延迟最大的进程,运行起来最慢,跟不上CPU;
十. kill命令:
向进程发送控制信号,以实现对进程管理,不单是杀死进程
显示当前系统可用信号:
# kill -l 列出kill支持能发出的信号
# man 7 signal
常用信号:
1) SIGHUP: 无须关闭进程而让其重读配置文件,就是不重启就让修改的配置生效;
2) SIGINT: 中止正在运行的进程;相当于Ctrl+c;
9) SIGKILL: 杀死正在运行的进程;
15) SIGTERM:终止正在运行的进程,温柔的关闭;
18) SIGCONT:进程继续态
19) SIGSTOP:进程暂停态
指定信号的方法:
(1) 信号的数字标识;1, 2, 9
(2) 信号完整名称;SIGHUP
(3) 信号的简写名称;HUP,就是把前面的SIG去掉就行
向进程发信号:
kill [-SIGNAL] PID...
终止“名称”之下的所有进程:
killall [-SIGNAL] Program
十一. Linux的作业控制
前台作业:通过终端启动,且启动后一直占据终端;
后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端);
如何让作业运行于后台?
(1) 运行中的作业
Ctrl+z
(2) 尚未启动的作业
# COMMAND &
此类作业虽然被送往后台运行,但其依然与终端相关;如果希望送往后台后,剥离与终端的关系。也就是终端关闭,进程依然运行:
# nohup COMMAND &
查看所有作业:
# jobs ,这个命令输出会显示作业号
作业控制:
# fg % JOB_NUM:把指定的后台作业调回前台;
# bg % JOB_NUM:让送往后台的作业在后台继续运行;
# kill % JOB_NUM:终止指定的作业,这里的%不能省去
十二. 进程优先级调整:
静态优先级:100-139,数字越小,优先级越高
进程默认启动时的nice值为0,优先级为120,nice值的范围是(-20,19)
nice命令:启动进程时,以指定优先级运行
nice [OPTION] [COMMAND [ARG]...],例如:nice -n 5 htop
renice命令:对已处于运行态的进程,调整优先级
renice [-n] priority pid...,例如: renice -n 2 3618
查看:
ps axo pid,comm,ni
- Linux - 进程查看与管理
标签(空格分隔): Linux 进程的静态查看 查看系统所有进程 ps -ef -- 输出来好乱,看不懂..: ps aux -- a表示所有与终端相关的进程,u表示所有以用户组织的进程状态的信息,x ...
- linux:查看以及管理进程
学习笔记内容概要 进程查看的命令:top,ps,pstree 进程管理的命令:kill,nice,renice 查看进程: 一.top工具 top 工具是我们常用的一个查看工具,能实时的查看我们系统的 ...
- 关于Linux下进程的详解【进程查看与管理】
一.关于进程 进程: 已经启动的可执行程序的运行实力 进程的组成:一个进程包含内核中的一部分地址空间和一系列数据结构.其中地址空间是内核标记的一部分内存以供进程使用,而数据结构则用来纪录每个进程的具体 ...
- Linux进程虚拟地址空间管理2
2017-04-12 前篇文章对Linux进程地址空间的布局以及各个部分的功能做了简要介绍,本文主要对各个部分的具体使用做下简要分析,主要涉及三个方面:1.MMAP文件的映射过程 2.用户 内存的动态 ...
- linux中的调试知识---基础gdb和strace查看系统调用信息,top性能分析,ps进程查看,内存分析工具
1 调试一般分为两种,可以通过在程序中插入打印语句.有点能够显示程序的动态过程,比较容易的检查出源程序中的有关信息.缺点就是效率比较低了,而且需要输入大量无关的数据. 2 借助相关的调试工具. 3 有 ...
- ps -ef | grep Linux进程查看命令
我们常常会想查看Linux的一些进程,很自然地用到了: ps -ef | grep xxx ps: process show 展示进程 参数:1. e 显示所有程序. 2. f 显示UID,PPIP ...
- Linux进程管理及while循环
目录 进程的相关概念 进程查看及管理工具的使用 Linux系统作业控制 调整进程优先级 网络客户端工具 bash之while循环 20.1.进程类型 守护进程 daemon,在系统引导过程中启动的进程 ...
- Linux进程管理之top
关于Linux进程查看,前面讲解了ps命令,下面拉介绍另一个命令top ps:静态查看 top:动态查看 动态查看进程的状态 # top [root@wei ~]# top top - 18:38:4 ...
- circus 进程以及socket 管理工具&&docker运行
circus 是由mozilla 团队开发基于python 以及zeromq 的进程以及socket 管理的工具,类似supervisord 但是比supervisord 更灵活方便 来自官方的使用比 ...
随机推荐
- python实例、类方法、静态方法
[python实例.类方法.静态方法] 参考:http://blog.163.com/yang_jianli/blog/static/161990006201122411586729/
- 【Python爬虫】听说你又闹书荒了?豆瓣读书9.0分书籍陪你过五一
说明 五一将至,又到了学习的季节.目前流行的各大书单主打的都是豆瓣8.0评分书籍,却很少有人来聊聊这9.0评分的书籍长什么样子.刚好最近学了学python爬虫,那就拿豆瓣读书来练练手. 爬虫 本来思路 ...
- xshell评估过期解决办法
1.登录网景官网的下载页面: https://www.netsarang.com/download/down_form.html?code=522 2.直接在页面中有红色*号的地方输入个人信息,lic ...
- 关于流程图设计,你需要Get的几点必备知识
流程图(Flow Chart)这个概念对很多人来说并不陌生,但如果让你定义或者举例说明什么是产品流程图,恐怕还是有难度的.或许诸如“用户体验”.“交互设计”.“逻辑关系”等词会像走马灯般闪现在你的脑海 ...
- 用MapReduce读HBase写MongoDB样例
1.版本信息: Hadoop版本:2.7.1 HBase版本:1.2.1 MongDB版本:3.4.14 2.HBase表名及数据: 3.Maven依赖: <dependency> < ...
- C# Redis Server分布式缓存编程(一)(转)
出处:http://www.cnblogs.com/davidgu/p/3262571.html 这篇文章我将介绍如果用最简洁的方式配置Redis Server, 以及如何使用C#和它交互编程 一. ...
- 【工具推荐】ELMAH——可插拔错误日志工具(转)
出处:http://www.cnblogs.com/liping13599168/archive/2011/02/23/1962625.html 今天看到一篇文章(构建ASP.NET网站十大必备工具( ...
- C++ 类 & 对象-类成员函数-类访问修饰符-C++ 友元函数-构造函数 & 析构函数-C++ 拷贝构造函数
C++ 类成员函数 成员函数可以定义在类定义内部,或者单独使用范围解析运算符 :: 来定义. 需要强调一点,在 :: 运算符之前必须使用类名.调用成员函数是在对象上使用点运算符(.),这样它就能操作与 ...
- 安装完 swoole 后出现 PHP Warning: PHP Startup: Unable to load dynamic library 'swoole.so'的解决方法
安装完 swoole 后出现 PHP Warning: PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /home/s ...
- Array对象的创建及其操作方法
一.创建数组,即实例化数组对象 有三种方式:1. new Array(); 2.new Array(size); ...