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

相关文章
|
27天前
|
缓存 监控 IDE
linux如何查看io性能
linux如何查看io性能
|
2月前
|
运维 监控 Linux
深入了解 Linux 常用性能统计命令
深入了解 Linux 常用性能统计命令
20 2
|
2月前
|
存储 监控 Linux
性能工具之linux三剑客awk、grep、sed详解
Linux 三剑客 awk,sed和grep 在性能领域广泛用于性能建模、性能监控及性能分析等方面,也是各大互联网公司测试岗高频面试题,中高端测试人员必备技能之一。
57 1
性能工具之linux三剑客awk、grep、sed详解
|
3天前
|
Linux 数据安全/隐私保护
影响Linux性能的各种因素
【4月更文挑战第20天】介绍了影响Linux系统性能的硬件资源,包括CPU、内存、磁盘I/O性能和网络宽带。
11 3
|
1月前
|
缓存 算法 Java
Java内存管理:优化性能和避免内存泄漏的关键技巧
综上所述,通过合适的数据结构选择、资源释放、对象复用、引用管理等技巧,可以优化Java程序的性能并避免内存泄漏问题。
28 5
|
2月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 实时监控系统性能 top命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 实时监控系统性能 top命令 使用指南
40 2
|
2月前
|
监控 Java Android开发
构建高效Android应用:从内存管理到性能优化
【2月更文挑战第30天】 在移动开发领域,打造一个流畅且响应迅速的Android应用是每个开发者追求的目标。本文将深入探讨如何通过有效的内存管理和细致的性能调优来提升应用效率。我们将从分析内存泄露的根本原因出发,讨论垃圾回收机制,并探索多种内存优化策略。接着,文中将介绍多线程编程的最佳实践和UI渲染的关键技巧。最后,我们将通过一系列实用的性能测试工具和方法,帮助开发者监控、定位并解决性能瓶颈。这些技术的综合运用,将指导读者构建出更快速、更稳定、用户体验更佳的Android应用。
|
2月前
|
存储 设计模式 缓存
C++享元模式探索:轻松优化内存使用和性能提升之道
C++享元模式探索:轻松优化内存使用和性能提升之道
41 0
|
2月前
|
存储 缓存 算法
深入探究LRU缓存机制:优化内存利用与提升性能
深入探究LRU缓存机制:优化内存利用与提升性能
159 1