进程管理工具htop/glances/dstat的使用
进程管理工具htop/glances/dstat的使用
Linux中进程的相关知识
1、什么是进程呢?
通俗的来说进程是运行起来的程序。唯一标示进程的是进程描述符(PID)。
2、进程的分类
1)根据在linux不同模式下运行分为:
核心态:这类进程运行在内核模式下,执行一些内核指令(Ring 0)。
用户态:这类进程工作在用户模式下,执行用户指令(Ring 3)。
如果用户态的进程要执行一些核心态的指令,此时就会产生系统调用,系统调用会请求内核指令完成相关的请求,就执行的结果返回给用户态进程。
2)按照进程的状态可分为:
运行态:running 正在运行的进程
可中断睡眠态:进程处于睡眠状态,但是可以被中断
不可中断的睡眠态:进程处于睡眠状态,但是不可以被中断
停止态:stoped 不会被内核调度
僵死态:zombie产生的原因是进程结束后,它的父进程没有wait它,所导致的。
3)按照操作的密集程度
CPU密集型:进程在运行时,占用CPU时间较多的进程。
I/O密集型:进程在运行时,占用I/O时间较多的进程。
通常情况下,I/O密集型的优先级要高于CPU密集型。
4)按照进程的处理方式
批处理进程:
交互式进程:
实时进程:
3、进程的优先级
进程的有优先级,是用0-139数字来表示的,数字优先级从小到大依次是:0-99,139-100。
优先级分为2类:
实时优先级:0-99,是由内核维护的
静态优先级:100-139,可以使用nice来调整,nice值的取值范围是[-20,19),分别对应100到139。nice默认值是0。
动态优先级:由内核动态维护,动态调整。
进程管理工具htop/glances/dstat的使用
通用状态显示
# R 进程以什么用户身份运行
# PID 进程描述符 具有唯一性
# %CPU 进程运行时所占的cpu百分比
# %MEM 进程运行时内存所占的百分比
# VSZ Virtual memory SiZe 虚拟内存使用大小
# RSS 常驻内存集,所有不能被置换出去的内存集
# STAT 表示内存状态
# 常用的状态有:
# S:可中段睡眠状态
# R:运行态
# D:不可中断睡眠态
# T:停止态
# Z:僵尸态
# s:session leader 所谓进程的领导者
# +:表示是前台进程
# l:多线程进程
# N:低优先级进程
# <:高优先级进程
# TTY 用来表示终端 显示为"?"的说明是与终端无关的进程
# START 进程开始时间
# TIME 进程运行时间
# COMMAND 执行进程的命令 如果命令被 "[]"包围,说明是内核线程
htop:
htop是linux进程中的一个互动的进程查看器,一个文本模式的应用程序。与linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主体,可横向或纵向浏览进程列表,并支持鼠标操作。
Htop界面:在界面下可以支持鼠标操作
上面左上角显示CPU、内存、交换区的使用情况,右边显示任务、负载、开机时间,下面就是进程实时状况。
下面是 F1~F10 的功能和对应的字母快捷键。
Shortcut Key |
Function Key |
Description |
中文说明 |
h, ? |
F1 |
Invoke htop Help |
查看htop使用说明 |
S |
F2 |
Htop Setup Menu |
htop 设定 |
/ |
F3 |
Search for a Process |
搜索进程 |
\ |
F4 |
Incremental process filtering |
增量进程过滤器 |
t |
F5 |
Tree View |
显示树形结构 |
<, > |
F6 |
Sort by a column |
选择排序方式 |
[ |
F7 |
Nice - (change priority) |
可减少nice值,这样就可以提高对应进程的优先级 |
] |
F8 |
Nice + (change priority) |
可增加nice值,这样就可以降低对应进程的优先级 |
k |
F9 |
Kill a Process |
可对进程传递信号 |
q |
F10 |
Quit htop |
结束htop |
命令行选项(COMMAND-LINE OPTIONS)
-C --no-color 使用一个单色的配色方案
-d --delay=DELAY 设置延迟更新时间,单位秒
-h --help 显示htop 命令帮助信息
-u --user=USERNAME 只显示一个给定的用户的过程
-p --pid=PID,PID… 只显示给定的PIDs
-s --sort-key COLUMN 依此列来排序
-v –version 显示版本信息
交互式命令(INTERACTIVE COMMANDS)
上下键或PgUP, PgDn 选定想要的进程,左右键或Home, End 移动字段,当然也可以直接用鼠标选定进程;
Space 标记/取消标记一个进程。命令可以作用于多个进程,例如 "kill",将应用于所有已标记的进程
U 取消标记所有进程
s 选择某一进程,按s:用strace追踪进程的系统调用
l 显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件
I 倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然
+, - When in tree view mode, expand or collapse subtree. When a subtree is collapsed a "+" sign shows to the left of the process name.
a (在有多处理器的机器上) 设置 CPU affinity: 标记一个进程允许使用哪些CPU
u 显示特定用户进程
M 按Memory 使用排序
P 按CPU 使用排序
T 按Time+ 使用排序
F 跟踪进程: 如果排序顺序引起选定的进程在列表上到处移动,让选定条跟随该进程。这对监视一个进程非常有用:通过这种方式,你可以让一个进程在屏幕上一直可见。使用方向键会停止该功能。
K 显示/隐藏内核线程
H 显示/隐藏用户线程
Ctrl-L 刷新
Numbers PID 查找: 输入PID,光标将移动到相应的进程上
Htop使用:
F1或者点击鼠标F1那,帮助
F2设置文档:
F3进程
鼠标点击Search 或者按下F3 或者输入"/",输入进程名进行搜索,例如搜索ssh
按下F4,进入过滤器,相当于关键字搜索,不区分大小写,例如过滤dev
输入"t"或按下F5,显示树形结构,意思跟pstree 差不多,能看到所有程序树状执行的结构,这对于系统管理来说相当方便,理清程序是如何产生的,当然树状结构的浏览也可以依照其他数据来排序。
按下F6 就可以选择依照什么来排序,最常排序的内容就是cpu吧!
F7、F8分别对应nice-和nice+,F9对应kill给进程发信号,选好信号回车就OK了
显示某个用户的进程,在左侧选择用户
输入"u",在左侧选择用户
也许你用惯了top,我们也可以用top来打开htop。可以使用命令别名来修改。
glances:
glances:另一款进程状态监视工具,支持远程查看。
glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]
-b:以bye为单位显示网卡数据传输单位。
-d:关闭磁盘IO速率显示
-f /path/to/somefile:设置输出文件及其格式(网页数据或excel数据)
-o:输出指定格式
-m:禁用mount模块(挂载)
-n:禁用网络模块
-t #:指定刷新时间间隔,默认3/s
-1(数字):每个CPU的数据单独显示
交互式:有许多交互式命令来定义glances的显示信息,以及排序方式等;
h:显示交互式命令帮助
服务模式:
glances -s -B IPADDR
IPADDR:自己监听的本机地址
客户端模式:
glances -c IPADDR
IPADDR:远程服务器监听的地址
启动状态
交互式命令:
h 查看交互式帮助命令
常用快捷键:
h : 显示帮助信息
q : 离开程序退出
c :按照 CPU 实时负载对系统进程进行排序
m :按照内存使用状况对系统进程排序
i:按照 I/O 使用状况对系统进程排序
p: 按照进程名称排序
d : 显示关闭磁盘读写状况
w : 删除日志文件
l :显示日志
s: 显示传感器信息
f : 显示系统信息
1 :轮流显示每个 CPU 内核的使用情况(次选项仅仅使用在多核 CPU 系统)
glances的高级应用
glances的高级应用让 glances 输出 HTML 格式文件,然后在远程端查看
需要启动HTML应用需要安装python-jinja2组件
yum -y install python-jinja2
显示我已经安装了。将文件保存到/var/www/html文件下,(需要安装nginx组件然后启动)
在浏览器下输入
本地相应的会运行glances命令
glances的高级应用让 glances 输出 HTML 格式文件
本机没有安装查看组件,无法查看,可以复制到windows下查看
glances 服务器 / 客户端工作方式
glances 支持服务器/客户端工作方式,可以实现远程监控。首先假设
服务器 IP 地址:10.0.2.14
客户端 IP 地址:10.0.2.15
确保二者都已经安装好 glances 软件包。
首先在服务器端启动;
指定客户端IP链接,不是指定的IP无法链接上去。
然后在另一台启动
显示连接成功。
绿色表示性能良好,无需做任何额外工作;(此时 CPU 使用率、磁盘空间使用率和内存使用率低于 50%,系统负载低于 0.7)。
蓝色表示系统性能有一些小问题,用户应当开始关注系统性能;(此时 CPU 使用率、磁盘空间使用率和内存使用率在 50%-70% 之间,系统负载在 0.7-1 之间)。
品红表示性能报警,应当采取措施比如备份数据;(此时 CPU 使用率、磁盘空间使用率和内存使用率在 70%-90% 之间,,系统负载在 1-5 之间)。
)。
Dstat
dstat非常强大,可以实时的监控cpu、磁盘、网络、IO、内存等使用情况。直接使用dstat,默认使用的是-cdngy参数,分别显示cpu、disk、net、page、system信息,默认是1秒钟显示一条信息。可以在最后指定显示一条信息的时间间隔,如dstat 5是每5s显示一条,dstat 5 10表示每5s显示一条,一共显示10条后自动退出。
dstat [-afv] [options..] [delay [count]]
dstat 1 3 :每个一秒钟刷新一次,显示3行自动退出
-c:cpu
-d:硬盘
-D:指定显示哪块硬盘
-g:页面统计数据
-i:中断
-l:负载
-m:内存
-n:网卡
-p:进程的统计数据
-r:IO统计数据
-s:swap统计数据
-t:时间
-y:上下文切换时间
--aio:显示异步IO统计数据
--ipc:ipc相关的信息
--raw:裸套接字 raw socket
--tcp:tcp
--udp:udp
--socket:(tcp,udp,raw)的数据
--unix
--top-cpu:最占用cpu的进程
--top-bio:显示最占用block(块) IO的进程
--top-mem:显示最耗费内存的进程
--top-io:最占用IO的进程
如想监控swap,process,sockets,并显示监控的时间:
若要将结果输出到文件可以加--output filename
这样生成的csv文件可以用excel打开,然后生成图表。
通过dstat --list可以查看dstat能使用的所有参数,其中上面internal是dstat本身自带的一些监控参数,下面/usr/share/dstat中是dstat的插件,这些插件可以扩展dstat的功能,如可以监控电源(battery)、mysql等。
下面这些插件并不是都可以直接使用的,有的还依赖其他包,如想监控mysql,必须要装python连接mysql的一些包。
如我们可以看下当前最消耗IO的进程和最消耗块设备IO的进程可以执行如下命令:
这里使用了dstat的插件,更多功能有待进一步挖掘。
参考http://www.ibm.com/developerworks/cn/linux/1304_caoyq_glances/
进程管理工具htop/glances/dstat的使用的更多相关文章
- Linux下取代top的进程管理工具 htop
一.htop 简介 This is htop, an interactive process viewer for Linux. It is a text-mode application (for ...
- 详细说明进程管理工具htop、vmstat等相关命令
htop htop是一款运行于Linux系统监控与进程管理软件,用于取代Unix下传统top.与top只提供最消耗资源进程列表不同,htop提供所有进程的列表,并且使用彩色标识出处理器.swap和内存 ...
- Htop/Glances/Dstat性能测试系统监控工具领域的瑞士军刀
原文链接:https://mp.weixin.qq.com/s/TvfzIy4uXHPOFQ1h5Q4KWg 建议点击原文链接查看 续上篇分享的[性能测试工具],今天整理了常用的系统监控工具,当然有特 ...
- Linux进程管理工具
Linux进程管理工具 Htop yum install htop 参考帮助: http://blog.csdn.net/skh2015java/article/details/53173896 Li ...
- 进程管理工具uptime,top,htop
进程管理工具uptime,top,htop 一uptime 显示当前时间,系统已启动的时间.当前上线人数,系统平均负载(1.5.10分钟的平均负载,一般不会超过1) 系统平均负载:指在特定时间间隔内运 ...
- Linux进程管理工具——supervisor
介绍 Supervisord是用Python实现的一款非常实用的进程管理工具 安装 这里用源码 supervisor-.tar.gz .tar.gz cd supervisor- sudo pytho ...
- supervisor python开发的进程管理工具
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...
- supervisor进程管理工具的使用
supervisor是一款进程管理工具,当想让应用随着开机启动,或者在应用崩溃之后自启动的时候,supervisor就派上了用场. 广泛应用于服务器中,用于引导控制程序的启动 安装好superviso ...
- Linux 进程管理工具 supervisord 安装及使用
Supervisor是用Python实现的一款非常实用的进程管理工具 1.安装过程非常简单 安装python 安装meld3-0.6.8.tar.gz 安装supervisor-3.0a12.tar. ...
随机推荐
- CS:APP3e 深入理解计算机系统_3e CacheLab实验
详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. ...
- mysql基础知识点
/* 启动MySQL */net start mysql /* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */mysqld ...
- gulp杂记
一.什么是gulp gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉 ...
- object 覆盖 div 在IE 和Firefox 的解决方案
问题描述 公司产品需要在三维(3D)控件上显示弹框,按钮等,然而三维控件的object覆盖了div,弹框和按钮不能显示 firefox 解决方案 最外层div的背景使用不透明背景色,必须是不透明的哦 ...
- loadrunner 参数存储在data.ws、paralist、globals.h 中区别(参数与变量额区别于使用)
1.如果变量数据只有一个值,可以直接放在data.ws 中 2.如果变量要根据循环取随机值.序列值等(参数存在一组值),放在paralist中 3.如果是申明全局变量,且要在代码中用到参 ...
- HDU_1698 Just a Hook(线段树+lazy标记)
pid=1698">题目请点我 题解: 接触到的第一到区间更新,须要用到lazy标记.典型的区间着色问题. lazy标记详情请參考博客:http://ju.outofmemory.cn ...
- 黑马day16 jquery&属性过滤选择器
属性过滤选择器的过滤规则是通过元素的属性来获取对应的元素 .[attribute] 使用方法: $("div[id]") ; 返回值 集合元素 说明:匹配包括给定属性的元素.样 ...
- Error: Failed to launch instance "win7": Please try again later [Error: No valid host was found. ].
感谢朋友支持本博客,欢迎共同探讨交流.因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
- C语言可变參函数的实现
1 C语言中函数调用的原理 函数是大多数编程语言都实现的编程要素.调用函数的实现原理就是:运行跳转+參数传递.对于运行跳转,全部的CPU都直接提供跳转指令:对于參数传递,CPU会提供多种方式.最常见的 ...
- 使用docker+consul+nginx集成分布式的服务发现与注册架构
一.环境说明: 1.一台虚拟机,该系统已经装好了docker: ip 192.168.10.224 虚拟网卡,与主机互通 操作系统rhel6 内核 2.6.32 64位 docker版本 1.7.1 ...