Linux命令:6、性能监控和优化

top、free、vmstat、iostat、lsof
1、top [参数] ---- 实时显示各进程的资源占用(cpu、内存等)
top
Linux命令:6、性能监控和优化
注:区分linux的用户、内核空间,物理、虚拟内存
前5行是统计信息区:
   第3行%Cpu占用 : us用户空间,sy内核空间,ni改变过优先级的进程,id空闲cpu的百分比,wa IO等待,hi硬中断,si软中断
   第5行的Swap交换分区的used,如果这个数值不断变化,说明内核在不断进行「内存和swap」的数据交换,表明内存不够用了。
第7行及以下:各进程的状态监控
   PID 进程id,USER进程所有者,PR进程优先级,NI nice值 负值表示高优先级,VIRT 进程使用的虚拟内存大小,RES 进程使用的、未被换出的物理内存大小,SHR共享内存大小,S进程状态(D不可中断的进程、R运行、S睡眠、T停止、Z僵尸进程),%CPU 占用,%MEM 物理内存占用,TIME+使用CPU时间,COMMAND进程命令
   top -c 显示完整命令;top -p 17121 显示指定的进程信息
top交互命令:
   top默认按%CPU排序(同“shift + P” ),“shift + M” 按%MEM排序。c 切换命令名称和完整命令行,m 切换显示内存信息,t 切换显示进程和CPU状态信息。

2、free [参数] ---- 显示系统使用和空闲的内存情况,包括物理内存、交换区内存(swap)和内核缓冲区内存。共享内存将被忽略
free -b/k/m/g 以Byte/KB/MB/GB为单位显示内存使用情况
2、vmstat [参数] ---- 显示虚拟内存的信息
vmstat
Linux命令:6、性能监控和优化
procs进程:r 运行队列中进程数量,b等待IO的进程数量
memory内存:swpd 使用虚拟内存大小,free可用内存大小,buff 用作缓冲的内存大小,cache用作缓存的内存大小
swap:si 每秒从交换区写到内存的大小,so 每秒写入交换区的内存大小,bi 每秒读取的块数,bo每秒写入的块数
系统:in 每秒中断数,cs每秒上下文切换数
CPU(百分比):us 用户进程执行时间,sy系统进程执行时间,id空闲时间,wa等待IO时间
   如果 r 经常大于4,且 id经常少于40,表示cpu负荷很重。如果bi, bo长期不等于0,表示内存不足。
vmstat -s 查看内存使用的详细信息,相当于cat /proc/meminfo, /proc/stat, /proc/vmstat

3、iostat [参数] ---- 对系统的磁盘活动进行监视
iostat是 I/O statistics的缩写,汇报磁盘、CPU活动情况,yum install sysstat安装。
-C 显示cpu使用情况,-d 显示磁盘使用情况,-t 显示终端和cpu星系,-x 显示详细信息
iostat
Linux命令:6、性能监控和优化
%user CPU处在用户模式下的时间百分比,%system CPU处在系统模式下的时间百分比,%iowait CPU等待IO完成时间的百分比,%idle CPU空闲百分比。
    如果%iowait 的值过高,表示硬盘存在IO瓶颈,%idle高 表示CPU较空闲,%idle若持续低于10,那么系统的CPU处理能力相对较低,需解决CPU资源。
4、lsof [参数][文件] ---- list open files 列出当前系统打开的文件
用于查看进程打开的文件,进程打开的端口(TCP、UDP)。lsof需要访问核心内存和各种文件,所以需要root用户执行。