linux系统常用的性能监控工具介绍,linux性能监控工具


记录几个我常用的。

1. top/htop

top这个大家都知道,常用的几个参数:(启动也可以,交互也行)

-d : 设定延迟时间-S : 累计时间模式k : 结束进程q : 退出topZ : 改变颜色模板l : 平均负载及系统运行时间显示开关m : 内存及交换空间使用率显示开关t : 当前任务及CPU状态显示开关c : 任务执行的命令行或进程名称f、o : 增加和移除进程信息栏位及调整进程信息栏位显示顺序H : 显示线程S : 时间累计模式u : 监控指定用户相关进程

htop 有Ncurses 风格界面,支持鼠标控制,功能方面和top相似,是top的改进分支。

2. netstat

注意: 显示某些信息需要root权限。

例如 netstat -tunlp

-a或--all:显示所有连线中的Socket; 
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址; 
-c或--continuous:持续列出网络状态; 
-C或--cache:显示路由器配置的快取信息; 
-e或--extend:显示网络其他相关信息; 
-F或--fib:显示FIB; 
-g或--groups:显示多重广播功能群组组员名单; 
-h或--help:在线帮助; 
-i或--interfaces:显示网络界面信息表单; 
-l或--listening:显示监控中的服务器的Socket; 
-M或--masquerade:显示伪装的网络连线; 
-n或--numeric:直接使用ip地址,而不通过域名服务器; 
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称; 
-o或--timers:显示计时器; 
-p或--programs:显示正在使用Socket的程序识别码和程序名称; 
-r或--route:显示Routing Table; 
-s或--statistice:显示网络工作信息统计表; 
-t或--tcp:显示TCP传输协议的连线状况; 
-u或--udp:显示UDP传输协议的连线状况; 
-v或--verbose:显示指令执行过程; 
-V或--version:显示版本信息; 
-w或--raw:显示RAW传输协议的连线状况; 
-x或--unix:此参数的效果和指定"-A unix"参数相同; 
--ip或--inet:此参数的效果和指定"-A inet"参数相同。

3. free [1]

-b:以Byte为单位显示内存使用情况;

-k:以KB为单位显示内存使用情况;

-m:以MB为单位显示内存使用情况;

-o:不显示缓冲区调节列;

-s<间隔秒数>:持续观察内存使用状况;

-t:显示内存总和列;

-V:显示版本信息。

free命令buff和cache的区别 [4]

[root@iz8vb8kca7twx6177bqg0fz~]# free -htotal used free shared buff/cache availableMem:1.8G1.1G 74M 372K 621M 539MSwap: 0B 0B 0B
buff cache

Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的数据先把数据存放到buffer,达到一定程度存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可搜索以干其他的事情。

Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而 Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。
Buffer:一般是用在写入磁盘的,例如:某个进程要求多个字段被读入,当所有要求的字段被读入之前已经读入的字段会先放到buffer中。 Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制权并访问此文件直接从Cache读取,提高系统性能。

SYSSTAT

sysstat包含一系列工具

pidstat 【3】

1. 列出IO统计信息:-d

2. 列出内存使用统计,page fault:-r

3. CPU统计信息:-u

4. 上下文切换统计信息:-w

5. 指定输出的维度

指定命令: -C command

指定进程号:-p { pid [,...] | SELF | ALL }

将所有列输出到单行、便于导入单张表中:-h

按每个CPU核的统计:-I

按所有CPU核统计:默认

列出命令的完整内容,包括参数:-l

列出线程统计信息:-t

按进程维度单独统计、按进程全局+子进程单独统计、按进程全局、单独统计同时按子任务单独统计:-T { TASK | CHILD | ALL }

vmstat [5]

$ vmstat 1 一秒刷新

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

r b swpd free buff cache si so bi bo in cs us sy id wa st

重要参数:

swpd,已使用的 SWAP 空间大小,KB 为单位。

free,可用的物理内存大小,KB 为单位。

buff,物理内存用来缓存读写操作的buffer大小,KB 为单位。

cache,物理内存用来缓存进程地址空间的 cache 大小,KB 为单位。

si,数据从 SWAP 读取到 RAM(swap in)的大小,KB 为单位;

so,数据从 RAM 写到 SWAP(swap out)的大小,KB 为单位。

相关内容