Linux - 内存性能评估

简介: Linux - 内存性能评估

image.png

概述


内存的管理和优化是系统性能优化的一个重要部分,内存资源的充足与否直接影响应用系统的使用性能。在进行内存优化之前,一定要熟悉Linux的内存管理机制,这里我们重点探讨如何通过系统命令监控Linux系统的内存使用状况。


free 命令

free是监控Linux内存使用状况最常用的指令.

[root@artisan~]# free -m
       total    used    free    shared  buffers   cached
Mem:     8111    7185    925      0     243    6299
-/+ buffers/cache:    643    7468
Swap:     8189      0    8189



“free –m”表示以MB为单位查看内存使用情况。


在这个输出中,我们重点关注的应该是free列与cached列的输出值,由输出可知,


此系统共8GB内存,


系统空闲内存还有925MB,


其中,缓冲区缓存占用了243MB,


页面缓存占用了6299MB,由此可知,系统缓存了很多的文件和目录。


而对于应用程序来说,可以使用的内存还有7468MB,当然,这个7468MB包含了缓冲区缓存和页面缓存的值。


在Swap项可以看出,交换分区还未使用。


所以,从应用的角度来说,此系统内存资源还非常充足。


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


指定的时间段内不间断地监控内存的使用情况

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

[root@VM-24-3-centos ~]# free -b -s 5


image.png


其中,“-b”表示以千字节(也就是1024字节为单位)来显示内存使用情况。 当然了,也可以 free -m -s 5



image.png


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


通过watch,可以动态监控命令的运行结果,省去手动执行的麻烦。

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

watch -n 3 -d free


image.png


其中,

  • “-n”指定重复执行的时间,
  • “-d”表示高亮显示变动。


vmstat命令监控内存


vmstat命令在监控系统内存方面功能强大。


请看下面的一个输出。

procs -----------memory---------- ---swap-- -----io---- --system--  ----cpu----
 r b  swpd  free  buff  cache  si  so   bi  bo  in  cs  us sy id  wa
 0 0 906440 22796  155616 1325496 340 180  2   4   1   4  80 0  10 10
 0 0 906440 42796  155616 1325496 320 289  0  54  1095 287  70 15 0  15
 0 0 906440 42884  155624 1325748 236 387  2  102  1064  276 78 2  5  15


对于内存的监控,在vmstat中重点关注的是swpd、si和so行。从这个输出可以看出,此系统内存资源紧缺,swpd占用了900MB左右内存,si和so占用了很大内在,而由于系统内存的紧缺,导致出现15%左右的系统等待,此时增加系统的内存是必须要做的。


“sar –r”命令组合

sar命令也可以监控Linux的内存使用状况。可以通过“sar –r”命令组合查看系统内存和交换空间的使用率。

[root@VM-24-3-centos ~]#sar -r 2 3
Linux 2.6.9-42.ELsmp (webserver)    11/30/2008   _i686_ (8 CPU)
09:57:33 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit  %commit
09:57:35 PM   897988  7408556  89.19   249428  6496532  786556    4.71
09:57:37 PM   898564  7407980  89.18   249428  6496532  784276    4.70
09:57:39 PM   899196  7407348  89.17   249440  6496520  782132    4.69
Average:    898583  7407961  89.18   249432  6496528  784321    4.70


其中,


kbmemfree表示空闲物理内存大小,

kbmemused表示已使用的物理内存空间大小,

%memused表示已使用内存占总内存大小的百分比,

kbbuffers和kbcached分别表示缓冲区缓存和页面缓存的大小,

kbcommit和%commit分别表示应用程序当前使用的内存大小和使用百分比。

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


小结


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


相关文章
|
3月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
300 0
Linux内存问题排查命令详解
|
3月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
107 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
3月前
|
安全 Linux iOS开发
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
331 0
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
|
4月前
|
安全 Linux iOS开发
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
468 0
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
|
3月前
|
消息中间件 存储 关系型数据库
千亿消息“过眼云烟”?Kafka把硬盘当内存用的性能魔法,全靠这一手!
Apache Kafka 是由 LinkedIn 开发并捐赠给 Apache 基金会的分布式消息队列系统,具备高吞吐、可扩展和容错能力。其核心设计围绕主题、分区、分段和偏移量展开,通过顺序写入磁盘和 Page Cache 提升性能,广泛应用于大数据实时处理场景。
152 0
|
6月前
|
存储 缓存 分布式计算
高内存场景必读!阿里云r7/r9i/r8y/r8i实例架构、性能、价格多维度对比
阿里云针对高性能需求场景,一般会在活动中推出内存型r7、内存型r9i、内存型r8y和内存型r8i这几款内存型实例规格的云服务器。相比于活动内的经济型e和通用算力型u1等实例规格,这些内存型实例在性能上更为强劲,尤其适合对内存和计算能力有较高要求的应用场景。这些实例规格的云服务器在处理器与内存的配比上大多为1:8,但它们在处理器架构、存储性能、网络能力以及安全特性等方面各有千秋,因此适用场景也各不相同。本文将为大家详细介绍内存型r7、r9i、r8y、r8i实例的性能、适用场景的区别以及选择参考。
|
5月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
468 0
|
弹性计算 安全 数据库
【转】云服务器虚拟化内存优化指南:提升性能的7个关键策略
作为云计算服务核心组件,虚拟化内存管理直接影响业务系统性能表现。本文详解了内存优化方案与技术实践,助您降低30%资源浪费。
167 0
【转】云服务器虚拟化内存优化指南:提升性能的7个关键策略
|
7月前
|
存储 分布式计算 安全
阿里云服务器内存型实例怎么选?r7/r8y/r8i实例性能、适用场景与选择参考
在选择阿里云服务器时,针对内存密集型应用和数据库应用,内存型实例因其高内存配比和优化的性能表现,成为了众多用户的热门选择。在目前阿里云的活动中,内存型实例主要有内存型r7、内存型r8y和内存型r8i实例可选。为了帮助大家更好地了解这三款实例的区别,本文将详细对比它们的实例规格、CPU、内存、计算、存储、网络等方面的性能,并附上活动价格对比,以便用户能够全面了解它们之间的不同,以供选择和参考。