Bootstrap

Mpstat命令,Iostat命令,Iotop命令,Pidstat命令,Lsof命令,Tcpdump命令,Top命令

目录

Mpstat命令

Iostat命令

Iotop命令

Pidstat命令

Lsof命令

Tcpdump命令

Top命令


Mpstat命令

实时系统监控工具,此命令会展现cpu、的一些统计信息,这些信息存放在/proc/stat文件中,在多cpu系统里,其不但能查看所有cpu的平均状况信息,而且能够查看特定cpu信息。

Mpstat语法:

-p0-cpu个数-1中取值】或者使用all

Internal 相邻的两次采样的间隔时间

Count 采样的次数,count只能和delay一起使用

  1. 直接使用mpstat命令

Cpu:处理器id

Usr:在internet时间段里,cpu一共花了多少比例的时间运行在用户态空间或者说是用户进程。

Nice:用户空间进程的cpu‘的调度优先级

Sys:核心时间,CPU花了多少比例的时间在内核空间运行。分配内存、IO操作、创建子进程……都是内核操作。这也表明,当IO操作频繁时,System参数会很高。

Iowait:硬盘io等待时间,在计算机中,读写磁盘的操作远比cpu运行的速度要慢,cpu负载处理数据,而数据一般在磁盘上需要读到内存中才能处理

Irq:硬中断时间,硬中断是由外部事件引起的具有随机性和突发性

Soft:软中断时间,软中断是执行中断指令产生的

Steal:显示虚拟机管理器在服务另一个虚拟处理器时虚拟cpu处在非资源等待下花费时间的百分比即虚拟机强制cpu等待的时间的百分比

GniceCPU运行niced guest虚拟机所花费的时间百分比

Guest:显示运行虚拟处理器时花费时间的百分比

Idlecpu出去等待磁盘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主要用于输出磁盘iocpu的统计信息

Iostat命令语法

Iostat 【选项】【时间间隔】【次数】

-c 显示CPU使用情况
-d 显示磁盘使用情况
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS 使用情况
-k  KB 为单位显示
-m  M 为单位显示
-t 报告每秒向终端读取和写入的字符数和CPU的信息
-V 显示版本信息
-x 显示详细信息
-p[磁盘] 显示磁盘和分区的情况

Iostat使用

        显示所有设别负载情况

1. Iostat

cpu属性说明:

userCPU处在用户模式下的时间百分比。
niceCPU处在带NICE值的用户模式下的时间百分比。
systemCPU处在系统模式下的时间百分比。
iowaitCPU等待输入输出完成时间的百分比。
steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
idleCPU空闲时间百分比。

磁盘属性说明:

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,显示一次设备统计信息.

此命令为动态查看每个磁盘使用情况

  1. 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:退出。

命令使用:

  1. 直接使用iotop命令

Iotop

  1. 主要参数-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:进程名

;