htop,glances,dstat命令简单使用
在CPU中存在着有两种指令,分别是特权指令和普通指令;特权指令是只有内核才有操作特权指令的权力,特权指令用于总线控制、IO控制、内存设备控制、CPU控制和磁盘读写控制;普通指令是应用程序发的。
特权指令是工作于内核模式中,而普通指令是工作于用户模式。当一个应用程序要使用特权指令时,就需要通过系统调用(system call),此时会触发一次软中断。
进程是有优先级的,优先级一共有140个数字从0-139,其中1-99为实时优化级,数字越大优先级越高;100-139为动态优先级,数字越小,优先级越高。
进程在执行过程中有很多种变化,不同的变化代表不同的状态,进程的状态有:就绪态、运行态、睡眠态(可中断睡眠、不可中断睡眠)、停止态、僵死态。
在Linux系统运行中所有与内核相关的信息都存放在/proc伪文件系统中,每个进程都有一个以其PID命名的子目录,每个子目录中有许多目录或文件存放与进程相关的状态信息。
htop命令:
htop命令是一个交互式的命令,它是用来取代top命令的,支持top命令的所有功能,如CPU利用情况,内存使用情况,进程状态等等。
htop的安装介绍使用yum命令进行安装,不过要把yum源指向epel。
epel镜像地址:http://mirrors.fedoraproject.org/publiclist/EPEL/
(1)安装完htop后直接在命令行运行htop命令,将会出现以下的界面,是不是很好看呀!!!
注意:htop默认是按占用CPU百分比进行排序的,可以使用按“M”来以使用内存百分比排序,“T”是以占用CPU累积时长排序,“P”是以占用CPU百分比进行排序。
(2)使用“u”来显示指定用户的进程
在左边列出了当前系统所有以用户身份运行的用户名,使用上下方向键来选择相应的用户,然后回车即可。
(3)查看当前系统上某进程所发起的系统调用
如果要查看进程所发起的系统调用情况,可以使用字母“s”,在进程列表中使用上下方向键来选择相关的进程,如我们要查看/sbin/init进程所发起的系统调用。如果查看完以后想退出此界面,使用Esc键即可。
(4)查看某进程所打开的文件
当我们要知道某个进程打开了哪些文件时,选择相应的进程,使用字母“l”键来查看,退出此界面按Esc键。如果一屏无法显示完所有的信息进,使用PgUP、PgDn键进行翻屏。
glances命令
glances命令是由Python编写的,用于报告统计的CPU,内存,磁盘,进程,挂载,网络状态的。
安装glances命令到官方站点下载:http://nicolargo.github.io/glances/,或把yum源指向epel使用yum命令安装。
命令格式:
glances [-bdehmnrsvyz1] [-B bind] [-c server] [-Cconffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-ooutput]
(1) 关闭磁盘I/O功能模块
使用glances -d命令选项,进行界面的显示,glances也是一个交互式的界面,可以使用帮助“h”,来更取交互式的帮助。
(2) 关闭glances显示的进程列表,使用glances -r命令选项
(3)关闭网络功能模块,使用glances -n命令选项
dstat命令
dstat是一个功能强大的软件,它集合了vmstat, iostat, netstat and ifstat四个工具的功能,可以实时的监控CPU,磁盘、网络、IO、进程、内存等的使用状态情况。
dstat是一个有很多参数,并支持插件,默认运行dstat是使用的dstat -cdngy参数。
命令格式:dstat [-afv] [options..] [delay [count]]
(1)默认参数dstat命令的显示界面,它默认是每一秒刷新一次。有点像ping命令一样,一直显示下去。
分别显示了有CPU、Disk、Net、Page、System信息:
usr:用户空间的程序占用CPU百分比
sys:内核空间运行内核中的内核代码占用CPU百分比
idl:CPU空闲百分比
wai:等待IO完成占据的百分比
hiq:处理磁盘中断占据的CPU百分比
siq:处理软件中断占据的CPU百分比
read:磁盘读出的速率
writ磁盘写入的速率
recv:网卡接收的速率
send:网卡发送的速率
in:内存页框写的速率
out:内存页模型读出的速率
int:系统的中断次数
csw:上下文切换次数
(2) 显示最占用CPU的进程,使用dstat --top-cpu命令选项
(3)查看最占用内存的进程,使得dstat --top-mem命令选项
(4)显示所有套接字相关的数据,使得dstat --socket命令选项
提示:更多的命令选项请man dstat获取帮助。