目录
一、mpstat
CPU信息统计
参数选项-P 指定CPU编号
例如:-P 0表示第一个
CPU-P 1表示第二个CPU
-P ALL表示所有CPU
第1列:表示当前时间。
第2列:CPU,all表示所有CPU,0表示第一个CPU……
后面9列的含义分别如下
%usr:用户进程消耗的CPU时间百分比。
%nice:改变过优先级的进程占用的CPU时间百分比。
%sys:系统(内核)进程消耗的CPU时间百分比。
%iowait:I0等待所占用的CPU时间百分比。
%irq:硬中断占用的CPU时间百分比。
%soft:软中断占用的CPU时间百分比。
%steal:虚拟机强制CPU等待的时间百分比。
%guest:虚拟机占用CPU时间的百分比。
%idle:CPU处在空闲状态的时间百分比。
主要查看%idle值和%iowait,进行cpu负载时信息分析
二、 iostat
用于报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计信息。
-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况
1.cpu属性值说明:
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。
2.disk属性值说明:
磁盘名称
device:磁盘名称
tps:每秒钟发送到的I/O请求数.
Blk_read/s:每秒读取的block数.
Blk_wrtn/s:每秒写入的block数.
Blk_read:读入的block总数.
Blk_wrtn:写入的block总数.
三、 iotop
用来监视磁盘I/O使用状况的工具,iotop和top显示非常相似,可以很方便的查看每个进程使用IO的情况。
常用选项:
-o:显示出正在进行I/O活动的进程,可以减少输出的干扰。
-p:后面指定进程号,监视指定进程,只输出该进程的统计信息。
-n:后接统计次数
-u:后接进程用户
第一行:
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
READ和WRITE速率总计。
第二行:
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 59.41 K/s
实际读取和写入磁盘速率。
第三行:
PID:进程,按p可切换线程tid
PRIO:优先级
USER:执行进程的用户
DISK READ:磁盘读取速率
DISK WRITE:磁盘写入速率
SWAPIN:swap交换百分比
IO>:IO等待所占用百分比
COMMAND:线程/进程详细信息
常用键说明:
左右箭头:改变排序列,默认按IO排序
r:改变排序顺序,默认由大到小
o:只显示有IO输出的进程
p:进程/线程的显示方式切换
a:显示累积使用量。
q:退出
四、noload
用来即时监看网路状态和各ip所使用的频宽
实时动态显示网卡流量状态
显示依次为 : 网卡名称 、 ip地址;方向键可以切换不同的网卡;q退出
五、pidstat
用于监控全部或指定进程的CPU,内存,线程,设备IO等系统资源的占用情况。
pidstat [参数] [时间] [次数]
-u:默认参数,显示各个进程的使用统计
-r:显示各个进程的内存使用统计
-d:显示各个进程的IO使用情况
-p:指定进程号
-w:显示每个进程的上下文切换
-t:显示选择任务的线程的统计信息的额外信息
-T{ TASK | CHILD | ALL }:TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息,ALL表示报告独立的task和task下面的所有线程。
注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
-V:版本号
-h:在一行上显示了所有活动,这样其他程序容易解析
-I:在SMP环境,表示任务的CPU使用率/内核数量
-l:显示命令名和所有参数
六、lsof
列出当前系统打开文件的工具
参数
lsof filename 显示打开指定文件的所有进程
lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -u username 显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不只一个)
port --> 端口号 (可以不只一个)
各列解释
每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。lsof输出各列信息的意义如下:
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
七、tcpdump
将网络中传送的数据包完全截获下来提供分析。支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句去掉无用的信息。
表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。
-a 将网络地址和广播地址转变成名字;
-d 将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd 将匹配信息包的代码以c语言程序段的格式给出;
-ddd 将匹配信息包的代码以十进制的形式给出;
-e 在输出行打印出数据链路层的头部信息;
-f 将外部的Internet地址以数字的形式打印出来;
-l 使标准输出变为缓冲行形式;
-n 不把网络地址转换成名字;
-t 在输出的每一行不打印时间戳;
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
-vv 输出详细的报文信息;
-c 在收到指定的包的数目后,tcpdump就会停止;
-F 从指定的文件中读取表达式,忽略其它的表达式;
-i 指定监听的网络接口;
-r 从指定的文件中读取包(这些包一般通过-w选项产生);
-w 直接将包写入文件中,并不分析和打印出来;
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单 网络管理协议;)
八、top
显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
第1行“top - 20:56:03 up 39 min, 2 users, load average: 0.00, 0.01, 0.05”显示的内容依次为“系统当前时间 、系统到目前为止已运行的时间、当前登录系统的用户数量、系统负载(任务队列的平均长度)三个值分别为1分钟、5分钟、15分钟前到现在的平均值【这三个一般会小于1,如果持续高于5,请仔细查看那个程序影响系统的运行】”
第2行“Tasks: 233 total, 2 running, 231 sleeping, 0 stopped, 0 zombie”显示的内容依次“所有启动的进程数”、“正在运行的进程数”、“挂起的进程数”、“停止的进程数”、“僵尸进程数”。
第3行“Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st”显示的内容依次为“用户空间占用CPU百分比”、“内核空间占用CPU百分比”、“用户空间内改变过优先级的进程占用CPU百分比”、“空闲CPU百分比”、“等待输入输出CPU时间百分比”、“CPU服务于硬件中断所耗费的时间总额”、“CPU服务软中断所耗费的时间总额”、“Steal Time”
第4行“Mem: 3861508 total, 2575284 free, 668936 used, 617288 buff/cache”显示内容依次为“物理内存总量”、“空闲物理内存”、“已使用的物理内存”、“内核缓存内存量”。
第5行“Swap: 8191996 total, 8191996 free,0 used. 2881688 avail Mem”显示内容依次为“交换区总量”、“空闲交换区总量”、“已使用交互区总量”、“缓冲的交换区总量”。
第5行“PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ”显示内容依次为“进程ID”、“进程所有者”、“优先级”、“nice值,负值表示高优先级,正值表示低优先级”、“进程使用的虚拟内存总量”、“进程使用的、未被换出的物理内存大小”、“共享内存大小”、“进程状态”、“上次更新到现在的CPU时间占用百分比”、“进程使用的物理内存百分比”、“进程使用CPU总时间”、“命令名、命令行”。