Linux性能优化之内存性能评估工具| 学习笔记

简介: 快速学习Linux性能优化之内存性能评估工具。

开发者学堂课程【线上Linux服务器优化经验Linux性能优化之内存性能评估工具】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/382/detail/4806


Linux性能优化之内存性能评估工具

 

内容介绍:

一、内存性能评估之free命令

二、内存性能评估之Sat/pidstat命令

三、磁盘性能评估

 

一、内存性能评估之free命令

(1)主要功能:

监控Linux系统内存使用状况

(2)使用方法:

①不加参数,直接输出  free

image.png

②free  -m

image.png

(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次

image.png

②某一单一进程占用内存状态:首先之间输入pidstat,得到输出结果

image.png

再输入pidstat -r -p 28443 3 表示统计PID为28443的进程内存占用情况,每3秒输出一次,不终止。

image.png

③获取cpu状态:-u。

pidstat -u -p 28443 3表示每3秒统计一次PID为28443的进程cpu使用情况

image.png

④获取磁盘状态:-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次

image.png

输出字段分析(第一次输出值是统计从系统启动开始磁盘使用状态,故数值较大,因此该次输出值可忽略):

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,则无输出值)

image.png

输出字段分析:

kB_rd/s:该进程在该段时间内的读取速率

kB_wr/s:该进程在该段时间内的写入速率

 

(3)某一进程中磁盘使用状态:sar -d -p

sar -d -p 1 3表示每3秒统计一次PID为1的进程磁盘的占用情况,不终止

image.png

输出字段(仅显示部分)分析(相较于 pidstat ,输出结果更为全面):

tps:对 IO 评判最直观的标准

rd_sec/s:读取速度

wr_sec/s:写入速度

await:等待值

结果显示在该统计区间内,sda 盘存在写入进程,等待值为0.50

相关文章
|
1月前
|
存储 缓存 监控
|
12天前
|
Android开发 开发者
Android性能优化——内存管理的艺术
Android性能优化——内存管理的艺术
|
12天前
|
监控 安全 程序员
如何使用内存池池来优化应用程序性能
如何使用内存池池来优化应用程序性能
|
15天前
|
存储 缓存 Java
结构体和类在内存管理方面的差异对程序性能有何影响?
【10月更文挑战第30天】结构体和类在内存管理方面的差异对程序性能有着重要的影响。在实际编程中,需要根据具体的应用场景和性能要求,合理地选择使用结构体或类,以优化程序的性能和内存使用效率。
|
20天前
|
存储 缓存 监控
|
26天前
|
存储 算法 Java
Java虚拟机(JVM)的内存管理与性能优化
本文深入探讨了Java虚拟机(JVM)的内存管理机制,包括堆、栈、方法区等关键区域的功能与作用。通过分析垃圾回收算法和调优策略,旨在帮助开发者理解如何有效提升Java应用的性能。文章采用通俗易懂的语言,结合具体实例,使读者能够轻松掌握复杂的内存管理概念,并应用于实际开发中。
|
1月前
|
存储 缓存 监控
Linux中内存和性能问题
【10月更文挑战第5天】
39 4
|
25天前
|
存储 分布式计算 安全
阿里云服务器内存型r7、内存型r8y、内存型r8i实例规格性能对比与选择参考
在选择阿里云服务器实例规格时,针对内存密集型应用和数据库应用,内存型r7、内存型r8y和内存型r8i实例是这部分应用场景选择最多的热门实例规格。为了帮助大家更好地了解这三款实例的区别,并为选择提供参考,本文将详细对比它们的实例规格、CPU、内存、计算、存储、网络等方面的性能,并附上活动价格对比。让大家了解一下他们之间的不同,以供参考选择。
|
1月前
|
数据处理 Python
如何优化Python读取大文件的内存占用与性能
如何优化Python读取大文件的内存占用与性能
117 0
|
3月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
378 0