开发者学堂课程【线上Linux服务器优化经验:Linux性能优化之内存性能评估工具】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/382/detail/4806
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。
p
idstat -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