目录
Mpstat命令
实时系统监控工具,此命令会展现cpu、的一些统计信息,这些信息存放在/proc/stat文件中,在多cpu系统里,其不但能查看所有cpu的平均状况信息,而且能够查看特定cpu信息。
Mpstat语法:
-p【0-cpu个数-1中取值】或者使用all
Internal 相邻的两次采样的间隔时间
Count 采样的次数,count只能和delay一起使用
- 直接使用mpstat命令
Cpu:处理器id
Usr:在internet时间段里,cpu一共花了多少比例的时间运行在用户态空间或者说是用户进程。
Nice:用户空间进程的cpu‘的调度优先级
Sys:核心时间,CPU花了多少比例的时间在内核空间运行。分配内存、IO操作、创建子进程……都是内核操作。这也表明,当IO操作频繁时,System参数会很高。
Iowait:硬盘io等待时间,在计算机中,读写磁盘的操作远比cpu运行的速度要慢,cpu负载处理数据,而数据一般在磁盘上需要读到内存中才能处理
Irq:硬中断时间,硬中断是由外部事件引起的具有随机性和突发性
Soft:软中断时间,软中断是执行中断指令产生的
Steal:显示虚拟机管理器在服务另一个虚拟处理器时虚拟cpu处在非资源等待下花费时间的百分比即虚拟机强制cpu等待的时间的百分比
Gnice:CPU运行niced guest虚拟机所花费的时间百分比
Guest:显示运行虚拟处理器时花费时间的百分比
Idle:cpu出去等待磁盘io操作外的因为任何原因而空闲的时间闲置时间即cpu空闲时间百分比
查看所有cpu信息,每三秒刷新一次,查看两次
Mpstat -P ALL 3 2
单独指向一个cpu,需要注意的cpu序号是从0开始的
Mpstat -P 0 3 2
Top命令可以实时显示系统中各个进程的资源占用状况,类似于windows的任务管理器,而mpstat命令更偏向于显示性能的工具更类似于windows窗口的性能窗口,当出现cpu某个cpu核的负载过高的情况下可以清晰查看cpu每个核心的状况来进行调优。
压力测试
使用stress命令将cpu每个核拉满
Stress -c
另开虚拟机进行检测
发现其空闲值为0
总结:Top命令可以实时显示系统中各个进程的资源占用状况,类似于windows的任务管理器,而mpstat命令更偏向于显示性能的工具更类似于windows窗口的性能窗口,当出现cpu某个cpu核的负载过高的情况下可以清晰查看cpu每个核心的状况来进行调优。
Iostat命令
Iostat主要用于输出磁盘io和cpu的统计信息
Iostat命令语法
Iostat 【选项】【时间间隔】【次数】
-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况
Iostat使用
显示所有设别负载情况
1. Iostat
cpu属性说明:
user:CPU处在用户模式下的时间百分比。
nice:CPU处在带NICE值的用户模式下的时间百分比。
system:CPU处在系统模式下的时间百分比。
iowait:CPU等待输入输出完成时间的百分比。
steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
idle:CPU空闲时间百分比。
磁盘属性说明:
device:磁盘名称
tps:每秒钟发送到的I/O请求数.
Blk_read/s:每秒读取的block数.
Blk_wrtn/s:每秒写入的block数.
Blk_read:读入的block总数.
Blk_wrtn:写入的block总数.
2.iostat 1 5
间隔1秒,总共显示5次
3.iostat -d 2
每隔2秒,显示一次设备统计信息.
此命令为动态查看每个磁盘使用情况
- iostat -d 2 3
每隔2秒,显示一次设备统计信息.总共输出3次.
6.iostat -x sda sdb 2 3
每隔2秒显示一次sda, sdb两个设备的扩展统计信息,共输出3次.
rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
r_await:每个读操作平均所需的时间
不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间。
w_await:每个写操作平均所需的时间
不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比
7. iostat -p sda 2 3
每隔2秒显示一次sda及上面所有分区的统计信息,共输出3次.
8.iostat -m
以M为单位显示所有信息
8. iostat -d -x -k 1 1
查看设备使用率(%util)、响应时间(await)
总结:iostat命令主要用于输出磁盘信息,可以和许多选项搭配其中相对重要的选项为-d显示磁盘使用情况,-k以kb为单位显示,-m以m为单位显示-x查看详细信息-p显示磁盘和分区的情况
Iotop命令
iotop命令是一个用来监视磁盘io使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看。
Io命令使用方法:
Iotop(选项)
-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n NUM:显示NUM次,主要用于非交互式模式。
-d SEC:间隔SEC秒显示一次。
-p PID:监控的进程pid。
-u USER:监控的进程用户。
iotop常用快捷键:
1.左右箭头:改变排序方式,默认是按lO排序。
2.r:改变排序顺序。
3.o:只显示有IO输出的进程。
4.p:进程/线程的显示方式的切换。
5.a:显示累积使用量。
6.q:退出。
命令使用:
- 直接使用iotop命令
Iotop
- 主要参数-o用来查看哪个进程实际在做i/o操作
Iotop -o
总结:iostat用于输出CPU和磁盘I/O相关的统计信息.
iotop 是用于查看硬盘操作的工具,可显示 Linux 系统上哪些进程执行最多的I/O。
Nload命令
用来监听网络状态和各ip所使用的带宽
安装nload
Yum install -y epel-release
Yum install -y nload
直接使用nload
显示依次为:网卡名称,ip地址,且方向键可以切换不同的网卡,q为退出
Pidstat命令
pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存一、线程、设备IO等系统资源的占用情况。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
Pidstat安装
pidstat是sysstat软件套件的一部分,sysstat包含很多监控linux系统状态的工具,它能够从大多数linux发行版的软件源中获得。
Yum install -y sysstat
Pidstat使用方法:
Pidstat 【选项】 【时间间隔】【次数】
常用参数:
-u:默认的参数,显示各个进程的cpu使用统计
-r:显示各个进程的内存使用统计
-d:显示各个进程的IO使用情况
-p︰指定进程号
-w:显示每个进程的上下文切换情况
-t:显示选择任务的线程的统计信息外的额外信息
-T { TASK | CHILD |ALL }
这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。
注意: task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
-V:版本号
-h:在一行上显示了所有活动,这样其他程序可以容易解析
-I:在SMP环境,表示任务的CPU使用率/内核数量
-:显示命令名和所有参数
查看所有进程的cpu使用情况
Pidstat -u -p ALL-u是默认参数统计cpu的参数,-p参数是显示指定进程,而这里是显示所有进程
PID:进程ID
usr:进程在用户空间占用cpu的百分比
system:进程在内核空间占用cpu的百分比
guest:进程在虚拟机占用cpu的百分比
%CPU:进程占用cpu的百分比
CPU:处理进程的cpu编号
Command:当前进程对应的命令
Cpu使用状况统计
Pidstat -u
内存使用状况
Pidstat -r
PID:进程标识符
Minflt/s:任务每秒发生的次要错误,不需要从磁盘中加载页
Majflt/s:任务每秒发生的主要错误,需要从磁盘中加载页
VSZ:虚拟地址大小,虚拟内存的使用KB
RSS:常驻集合大小,非交换区五里内存使用KB
Command:task命令名
查看各个进程的io使用情况
Pidstat -d
PID:进程id
kB_rd/s:每秒从磁盘读取的KB
kB_wr/s:每秒写入磁盘KB
kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache[11] 的时候会发生。
COMMAND:task的命令名
显示每个进程的上下文切换情况(指令替换)
Pidstat -w -p ALL
PID:进程id
Cswch/s:每秒主动任务上下文切换数量
Nvcswch/s:每秒被动任务上下文切换数量
Command:命令名
Pidstat -T
pidstat -T TASK
pidstat -T CHILD
pidstat -T ALL
TASK表示报告独立的task即任务或进程
CHILD关键字表示报告进程下所有线程统计信息。
ALL表示报告独立的task和task下面的所有线程。
PID:进程id
Usr-ms:任务和子线程在用户级别使用的毫秒数。
System-ms:任务和子线程在系统级别使用的毫秒数。
Guest-ms:任务和子线程在虚拟机(running a virtual processor)使用的毫秒数。
Command:命令名
[11]page cache,又称pcache,其中文名称为页高速缓冲存储器,简称页高缓。page cache的大小为一页,通常为4K。在linux读写文件时,它用于缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访问。
Lsof命令
lsof 命令常用于查找进程打开了哪些文件以及与打开文件相关联的内容,包括普通文件,目录,块特殊文件,字符特殊文件,正在执行的文本引用,库,流或网络文件
使用选项
-p : 输出指定进程打开的文件;
-l : 输出中使用ID代替用户名;
-u : 输出指定用户打开的文件;
-c : 输出 COMMAND 列中包含 string 的项;
-d : 输出包含指定描述符的项;
fileName : 输出打开文件 fileName 的所有项;
直接使用lsof无其它参数
1. COMMAND : 命令名称;
2. PID : 进程ID;
3. TID : 线程ID,如果为空代表列出的是进程;
4. TASKCMD : 任务名称,通常与 COMMAND 相同;
5. USER : 用户ID号或登录名;
6. FD : 文件描述符;
7. TYPE : 与文件关联结点的类型;
8. DEVICE : 设备号;
9. SIZE/OFF : 文件大小/偏移量,以字节为单位;
10. NODE : 文件结点;
11. NAME : 文件挂载点和文件所在的系统;
Lsof -p参数
输出指定进程打开的参数
Lsof -p 1列出1号进程打开的文件
Lsof -l参数
输出中使用用户 ID 代替用户名
上图中将user处改为了用户id替换。
Lsof -u参数
输出指定用户打开的文件
Lsof -u root
Lsof -d参数
Lsof -d 12 输出打开文件描述符12的所有项
Losf filename
输出打开文件/usr/lib64/ld-2.17.so的进程项
Tcpdump命令
Tcpdump是一个抓包工具
Tcpdump使用
Tcpdump -i ens33
用法相当多,使用前可以查阅资料
Top命令
动态查看系统进程信息
Load average:平均负载值,此三个数值为第一分钟,第三分钟和第五分钟的cpu平均负载值。
PID:进程编号
USER:进程的持有用户
PR:进程运行的优先级,值越小优先级越高,会越早获取CPU的执行权
NI:进程的nice值,表示进程可被执行的优先级的修正数值
VIRT:进程使用虚拟内存,单位kb
RES:常驻内存,单位kb
SHR:进程使用的共享内存,单位kb
S:进程运行状态。(S:休眠;D:不可中断睡眠;R:运行中;T:跟踪/停止;Z:假死中)
%CPU:进行运行时CPU的占用比
%MEM:进程使用的内存占用比
TIME+:进程占用的CPU总时长
COMMAND:进程名