首页 百科知识 内存性能评估

内存性能评估

时间:2022-10-11 百科知识 版权反馈
【摘要】:内存的管理和优化是系统性能优化的一个重要部分,内存资源的充足与否直接影响应用系统的使用性能,在进行内存优化之前,一定要熟悉Linux的内存管理机制,这一点在前面的章节已经有深入讲述。本节的重点是如何通过系统命令监控Linux系统的内存使用状况。“free-m”表示以M为单位查看内存使用情况。而由于系统内存的紧缺,导致出现13%左右的系统等待,此时增加系统内存的工作是必须要做的。

14.2 内存性能评估

学习目标

·内存性能评估的方法

内存的管理和优化是系统性能优化的一个重要部分,内存资源的充足与否直接影响应用系统的使用性能,在进行内存优化之前,一定要熟悉Linux的内存管理机制,这一点在前面的章节已经有深入讲述。本节的重点是如何通过系统命令监控Linux系统的内存使用状况。

1.free命令

free是监控Linux内存使用状况的最常用的指令。看下面的一个输出:

img546

“free-m”表示以M为单位查看内存使用情况。在这个输出中,我们重点关注的应该是free列与cached列的输出值。由输出可知,此系统共8GB内存,系统空闲内存还有925MB,其中,buffers占用了243MB,cached占用了6 299MB,由此可知系统缓存了很多的文件和目录。而对于应用程序来说,可以使用的内存还有7 468MB,当然这个7 468MB包含了buffer cache和page cache的值。从Swap项可以看出,交换区还未使用,所以从应用的角度来说,此系统内存资源还非常充足。

注意

一般有这样一个经验公式:应用程序可用内存/系统物理内存>70%时,表示系统内存资源非常充足,不影响系统性能;应用程序可用内存/系统物理内存<20%时,表示系统内存资源紧缺,需要增加系统内存;20%<应用程序可用内存/系统物理内存<70%时,表示系统内存资源基本能满足应用需求,暂时不影响系统性能。

free命令还可以实时地监控内存的使用状况,使用“-s”参数可以在指定的时间段内不间断地监控内存的使用情况。

img547

img548

其中,“-b”表示以千字节(也就是1 024字节为单位)来显示内存使用情况。

2.通过watch与free相结合动态监控内存状况

watch是一个非常有用的命令,几乎每个Linux发行版都带有这个工具,通过watch,可以动态地监控命令的运行结果,省去手动执行的麻烦。

可以在watch后面跟上需要运行的命令,watch就会自动重复去运行这个命令,默认是2秒钟执行一次,并把执行的结果更新在屏幕上。例如:

img549

3.vmstat命令监控内存

vmstat命令在监控系统方面的功能很强大。请看下面的一个输出:

img550

此系统内存资源紧缺,swpd占用了900MB左右内存,si和so占用很大。而由于系统内存的紧缺,导致出现13%左右的系统等待,此时增加系统内存的工作是必须要做的。

4.sar-r命令组合

sar命令也可以监控Linux的内存使用状况,可以通过“sar-r”组合查看系统内存和交换空间的使用率。请看下面的输出:

img551

kBmemfree表示空闲物理内存大小,kBmemused表示已使用的物理内存空间大小,

%memused表示已使用内存占总内存大小的百分比,kBbuffers和kBcached分别表示buffer cache和page cache的大小,kBcommit和%commit分别表示应用程序当前使用的内存大小和使用百分比。

可以看出sar的输出其实与free的输出完全对应,不过sar更加人性化,不但给出了内存使用量,还给出了内存使用的百分比以及统计的平均值。从%commit项可知,此系统目前内存资源充足。

上面介绍了内存监控常用的几个指令以及一些经验规则,其实现在的系统在内存方面出现的瓶颈已经很少,因为内存价格很低,充足的内存已经完全能满足应用程序和系统本身的需要。如果系统在内存方面出现瓶颈,很大的可能是应用程序本身的问题造成的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈