进程管理工具
htop
语法
htop [-dChusv]
选项
-C --no-color 使用一个单色的配色方案
-d --delay=DELAY 设置延迟更新时间,单位秒
-h --help 显示htop 命令帮助信息
-u --user=USERNAME 只显示一个给定的用户的过程
-p --pid=PID,PID… 只显示给定的PIDs
-s --sort-key COLUMN 依此列来排序
-v –version 显示版本信息
实例
CPU[* 0.7%] Tasks: 24, 17 thr; 1 running
Mem[||||||||||#**************** 172M/976M] Load average: 0.00 0.01 0.05
Swp[ 0K/2.00G] Uptime: 03:16:26
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
2843 root 20 0 119M 2304 1476 R 0.7 0.2 0:00.10 htop
638 root 20 0 295M 6024 4644 S 0.7 0.6 0:18.16 /usr/bin/vmtoolsd
.............
1502 root 20 0 540M 18464 5788 S 0.0 1.8 0:00.00 /usr/bin/python -Es /usr/sbin/tuned -l -P
1505 root 20 0 540M 18464 5788 S 0.0 1.8 0:00.00 /usr/bin/python -Es /usr/sbin/tuned -l -P
F1Help F2Setup F3Search F4Filter F5Tree F6SortBy F7Nice -F8Nice +F9Kill F10Quit
参数说明
CPU usage bar: [low-priority/normal/kernel/virtualiz used%] //CPU负载
Memory bar: [used/buffers/cache used/total] //内存消耗
Swap bar: [used used/total] //交换空间
Task:进程总数、当前运行的进程数
Load average:系统为1分钟、5分钟、10分钟的平均负载情况
uptime:系统运行时间
PID: 进程的标识号
USER: 运行进程的用户
PRI: 进程的优先级
NI: 进程的优先级别值,默认为0,可以进行调整
VIRT: 进程占用的虚拟内存值
RES: 进程占用的物理内存值
SHR: 进程占用的共享内存值
S: 进程的运行状态,R表示正在运行;S表示休眠,等待唤醒,Z表示僵死状态
CPU%: 进程占用的CPU使用率
MEM%: 进程占用的物理内存和总内存的百分比
TIME+: 进程启动后占用总的CPU时间
Command: 进程启动的启动命令名称
快捷键 | 功能键 | 说明 |
---|---|---|
? | F1 | 查看htop使用说明 |
S | F2 | htop 设定 |
/ | F3 | 搜索,搜索进程名,直接颜色显示 |
\ | F4 | 进程过滤器:相当于模糊查找,不区分大小写,下方输入要搜索的内容后,则界面只显示搜索到的内容,更加方便查看 |
t | F5 | 显示帮助信息 |
<,> | F6 | 选择排序方式 |
[ | F7 | 可减少nice值可以提高对应进程的优先级 |
] | F8 | 可增加nice值,降低对应进程的优先级 |
k | F9 | 可对进程传递信号 |
q | F10 | 结束htop |
vmstat 显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
语法
vmstat(选项)(参数)
选项
-a:显示活动内页;
-f:显示启动后创建的进程总数;
-m:显示slab信息;
-n:头信息仅显示一次;
-s:以表格方式显示事件计数器和内存状态;
-d:报告磁盘状态;
-p:显示指定的硬盘分区状态;
-S:输出信息的单位。
实例
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 706820 1444 161912 0 0 13 1 29 47 0 0 100 0 0
- 参数说明
Procs(进程) r 表示运行队列(就是说多少个进程真的分配到CPU),服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了 b 表示阻塞的进程,这个不多说,进程阻塞 Memory(内存) swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。 free 空闲的物理内存的大小 buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存 cache cache直接用来记忆我们打开的文件,给文件做缓冲。(Linux把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。) Swap si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。 so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。 IO bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,如果没什么IO操作,一直是0,如果处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒 bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。 system in 每秒CPU的中断次数,包括时间中断 cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。 us 用户CPU时间,比如加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。 cpu sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。 id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。 wa 等待IO时间,Wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。 st 从虚拟设备中获得的时间
- 每两秒显示一次统计信息,一个显示5次 vmstat 2 5
[root@localhost ~]# vmstat 2 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 705656 1444 162656 0 0 9 1 27 44 0 0 100 0 0 0 0 0 705640 1444 162656 0 0 0 0 26 39 0 0 100 0 0 0 0 0 705640 1444 162656 0 0 0 0 31 39 0 1 100 0 0 0 0 0 705640 1444 162656 0 0 0 0 32 43 1 0 100 0 0 0 0 0 705640 1444 162656 0 0 0 0 28 33 0 0 100 0 0
- 显示磁盘信息 vmstat -d
[root@localhost ~]# vmstat -d disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec sda 5458 1 238084 28256 482 117 26845 85154 0 20 sdb 362 0 4182 498 10 0 24 4 0 0 sr0 11 0 88 67 0 0 0 0 0 0 dm-0 2966 0 186887 25238 585 0 18613 120307 0 19 dm-1 126 0 1872 38 0 0 0 0 0 0 md0 66 0 962 0 1 0 8 0 0 0 dm-2 128 0 1137 24 4 0 4096 8 0 0
- 显示活跃内存与非活跃内存 vmstat -a
[root@localhost ~]# vmstat -a procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free inact active si so bi bo in cs us sy id wa st 2 0 0 705656 68704 117560 0 0 9 1 27 43 0 0 100 0 0
- 显示启动后创建的进程总数 vmstat -f
[root@localhost ~]# vmstat -f 2439 forks
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96618