Linux性能优化之内存性能评估工具
内容介绍:
一、内存性能评估之free命令
二、内存性能评估之Sat/pidstat命令
三、磁盘性能评估
一、内存性能评估之free命令
(1)主要功能:
监控Linux系统内存使用状况
(2)使用方法:
①不加参数,直接输出 free
②free -m
(3)输出字段分析:
①直接输出
按列分析:
total:总内存量
used:已使用内存量
free:空闲/剩余内存量
shared:共享内存量
buffers:对文件属性(大小、访问时间、修改时间、权限等)缓存量
cached:所有文件实际内容的缓存量
按行分析:
Mem:物理内存
-/+ buffers/cache:目前系统完全可用的物理内存大小
Mem的free值+buffers值+cached值=-/+ buffers/cache的free值
Linux下内存划分为5部分,即used、free、shared、buffers及cached,与windows的内存管理机制有很大差别。Linux作为一个服务器,其管理原则是最大使用内存原则,即任何访问过的文件均会被缓存下来,文件关闭后仍不会被释放,目的是更快读取文件,提高读取效率,而windows系统则会将这部分物理内存会被释放。但系统物理内存并不会超负荷,因为Linux系统会按照最近访问与最常访问原则释放一定量的cached内存。因此,判断内存是否充足,应将free值与cached值相加作为参考值,或者直接看-/+ buffers/cache的free值。
Swap:交换分区,或扩展内存
不论物理内存大小如何,都建议要设置Swap值。若物理内存足够大,可以将Swap设置到很小的数值,可以提高系统的性能,避免一些不必要的问题。Swap的判断方式比较单一,若其Used值较大,则说明内存不足。
②free -m
分析方式相同,只是评估的单位不同,当前方式的单位为M(兆)。
二、内存性能评估之Sat/pidstat命令
(1)主要功能:
监控全部或制定进程占用系统资源的情况,如cpu、内存、设备IO。
(2)使用方法:
①全部进程占用内存状态:sar -r 3 5 表示3秒输出一次,一共输出5次
②某一单一进程占用内存状态:首先之间输入pidstat,得到输出结果
再输入pidstat -r -p 28443 3 表示统计PID为28443的进程内存占用情况,每3秒输出一次,不终止。
③获取cpu状态:-u。
pidstat -u -p 28443 3表示每3秒统计一次PID为28443的进程cpu使用情况
④获取磁盘状态:-d。
(3)输出字段分析:
①全部进程
kbmenfree:空闲内存大小,单位kb
kbmenused:总内存大小,单位kb
%memused:使用内存占比
kbbuffers:对文件属性(大小、访问时间、修改时间、权限等)缓存量,单位kb
kbcached:所有文件实际内容的缓存量,单位kb
kbcommit:应用程序当前使用内存的大小,单位kb
%kbcommit:应用程序当前使用内存所占的百分比
其优点在于统计结果中包含一个测量值的平均值,能综合分析系统内存的使用情况。
②某一单一进程:
VSZ:该进程在该段时间内虚拟内存占用的大小
RSS:该进程在该段时间内物理内存占用的大小
%MEM:该进程占用的总物理内存的占比
三、磁盘性能评估
(1)所有进程磁盘使用状态:iostat -d组合
iostat -d 2 3表示每2秒统计一次磁盘的使用状态,一共统计3次
输出字段分析(第一次输出值是统计从系统启动开始磁盘使用状态,故数值较大,因此该次输出值可忽略):
tps:对IO评判最直观的标准
Blk_read/s:每秒读取的块的数目
Blk_wrtn/s:每秒写入的块的数目
Blk_read:统计频次内读取的块的数目
Blk_wrtn:统计频次内写入的块的数目
(2)某一进程中磁盘使用状态:pidstat -d -p
pidstat -d -p 34777 3表示每3秒统计一次PID为34777的进程磁盘的占用情况(若访问量为0,则无输出值)
输出字段分析:
kB_rd/s:该进程在该段时间内的读取速率
kB_wr/s:该进程在该段时间内的写入速率
(3)某一进程中磁盘使用状态:sar -d -p
sar -d -p 1 3表示每3秒统计一次PID为1的进程磁盘的占用情况,不终止
输出字段(仅显示部分)分析(相较于pidstat,输出结果更为全面):
tps:对IO评判最直观的标准
rd_sec/s:读取速度
wr_sec/s:写入速度
await:等待值
结果显示在该统计区间内,sda盘存在写入进程,等待值为0.50