目录
一、mpstat命令
二、iostat命令
三、iotop命令
四、pidstat命令
五、lsof命令:显示打开文件
六、tcpdump命令
七、top命令(动态查看)
一、mpstat命令
mpstat [-P {|ALL}] [internal [count]]
mpstat -P ALL 5 2
查看总的cpu和各个cpu使用率的变化情况
-P: 指定要监控哪个CPU,范围是[0 ~ n-1], ALL表示监控所有CPU都监控
internal: 相邻两次采样的间隔时间
count: 采样次数。
第一部分:输出首先显示了所有 CPU 的合计指标,然后显示了每个 CPU 各项的指标。
第二部分:在结尾处显示所有 CPU 的平均值。
各列的含义:
%user: 表示用户态所使用 CPU 的百分比。
%nice: 表示使用 nice 命令对进程进行降级时 CPU 的百分比。
%sys: 表示内核进程使用的 CPU 百分比。
%iowait: 表示等待进行 I/O 所使用的 CPU 时间百分比。
%irq: 表示用于处理系统中断的 CPU 百分比。
%soft: 表示用于软件中断的 CPU 百分比。
%steal:虚拟机强制CPU等待的时间百分比。
%guest: 虚拟机占用CPU时间的百分比。
%idle: CPU 的空闲时间的百分比。
二、iostat命令
磁盘IO监控
iostat -x -k 1
-x:展示磁盘的扩展信息
-k:以k为单位展示磁盘数据
1:每1秒刷新一次数据
unti:磁盘IO的使用率,单位%,反应磁盘的繁忙程度,上限100%
r/s:每秒读请求数
w/s:每秒写请求数
rkb:每秒写磁盘的字节数
wkb:每秒读磁盘的字节数
三、iotop命令
iotop 是一个类似 top 的工具,用来显示实时的磁盘活动。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况。iotop 监控 Linux 内核输出的 I/O 使用信息,并且显示一个系统中进程或线程的当前 I/O 使用情况。它显示每个进程/线程读写 I/O 带宽。它同样显示当等待换入和等待 I/O 的线程/进程花费的时间的百分比。
-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n NUM:显示NUM次,主要用于非交互式模式。
-d SEC:间隔SEC秒显示一次。
-p PID:监控的进程pid。
-u USER:监控的进程用户。
四、pidstat命令
查看进程的state
pidstat -urdwt 5 3
u:cpu的使用率
r:内存的占用情况
d:磁盘I/O统计数据
w:上下文切换
-t:thread,输出线程的指标
-p 进程号:查看某个进程的state
五、lsof命令:显示打开文件
-a 列出打开文件存在的进程;
-c<进程名> 列出指定进程所打开的文件;
-g 列出GID号进程详情;
-d<文件号> 列出占用该文件号的进程;
+d<目录> 列出目录下被打开的文件;
+D<目录> 递归列出目录下被打开的文件;
-n<目录> 列出使用NFS的文件;
-i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号> 列出指定进程号所打开的文件;
-u 列出UID号进程详情;
-h 显示帮助信息;
-v 显示版本信息。
六、tcpdump命令
Tcpdum是Linux上强大的网络数据采集分析工具
-A 以ASCII格式打印出所有分组,并将链路层的头最小化。
-c 在收到指定的数量的分组后,tcpdump就会停止。
-C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size 的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。
-d 将匹配信息包的代码以人们能够理解的汇编格式给出。
-dd 将匹配信息包的代码以c语言程序段的格式给出。
-ddd 将匹配信息包的代码以十进制的形式给出。
-D 打印出系统中所有可以用tcpdump截包的网络接口。
-e 在输出行打印出数据链路层的头部信息。
-E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。
-f 将外部的Internet地址以数字的形式打印出来。
-F 从指定的文件中读取表达式,忽略命令行中给出的表达式。
-i 指定监听的网络接口。
-l 使标准输出变为缓冲行形式,可以把数据导出到文件。
-L 列出网络接口的已知数据链路。
-m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。
-M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。
-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。
-n 不把网络地址转换成名字。
-nn 不进行端口名称的转换。
-N 不输出主机名中的域名部分。例如,‘nic.ddn.mil‘只输出’nic‘。
-t 在输出的每一行不打印时间戳。
-O 不运行分组分组匹配(packet-matching)代码优化程序。
-P 不将网络接口设置成混杂模式。
-q 快速输出。只输出较少的协议信息。
-r 从指定的文件中读取包(这些包一般通过-w选项产生)。
-S 将tcp的序列号以绝对值形式输出,而不是相对值。
-s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。
-t 不在每一行中输出时间戳。
-tt 在每一行中输出非格式化的时间戳。
-ttt 输出本行和前面一行之间的时间差。
-tttt 在每一行中输出由date处理的默认格式的时间戳。
-u 输出未解码的NFS句柄。
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv 输出详细的报文信息。
-w 直接将分组写入文件中,而不是不分析并打印出来。
七、top命令(动态查看)
top 命令全屏操作界面快捷键
默认:3s刷新一次,按s修改刷新时间按空格:立即刷新
p:按cpu排序
M:按内存排序
T:按时间排序
P:进程IP,查看某个进程状态
N:键根据启动时间进程排序
u/U:指定显示的用户
h:可以获得lop程序的在线帮助信息
q:键可以正常退出top程序
第一行
top – 10:12:26 #当前系统时间
Up 1:10 #系统已经运行时间
1 users #当前登录用户
Load average 0.00, 0.01, 0.05 #系统平均负载,后面三个数字代表每1分钟,5分钟,15分钟的平均负载
第二行
Tasks: 172 total 进程总数
1 running 正在运行的进程数
171 sleeping 睡眠的进程数
0 stopped 睡眠的进程数
0 zombie 僵尸进程数
第三行
0.0 us 用户空间占用CPU百分比 查看CPU使用率
0.0 sy 内核空间占用CPU百分比
0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
100.0 id 空闲CPU百分比
0.0 wa 等待输入输出的CPU时间百分比
0.0 hi 硬中断消耗时间 硬中断占用
0.0 si 软中断消耗时间 软中断占用
0.0 st 虚拟化占用
第四行
3861508 total 物理内存总量
3095144 free 空闲内存总量
367196 used 已使用的物理内存总量
339168 buff/cache用作内核缓存的内存量
第五行
8191996 total 交换区总量
8191996 free 空闲交换区总量
0 used 已使用的交换区总量
3213272 avail Mem 缓冲的交换区总量