记录几个我常用的。


1. top/htop

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

  • -d : 设定延迟时间 
  • -S : 累计时间模式 
  • k : 结束进程
  • q : 退出top 
  • Z : 改变颜色模板 
  • 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 -h           
                        total        used        free      shared  buff/cache   available           
            Mem:                       1            .8G                    1            .1G         74M        372K        621M        539M           
            Swap:            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包含一系列工具,

官网: http://sebastien.godard.pagesperso-orange.fr/documentation.html

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 为单位。




REFERENCE

[1] http://man.linuxde.net

[3] https://yq.aliyun.com/articles/71664

[5] https://www.linuxidc.com/Linux/2016-01/127431.htm