Linux 系统 内存通用指标以及查询方式

简介: Linux 系统 内存通用指标以及查询方式

指标

指标 含义 作用
MemTotal 系统总内存 表示系统可用的总物理内存大小
MemFree 系统空闲内存 表示当前未被使用的物理内存大小
MemAvailable 可用内存 估算的可供应用程序启动而不需交换的内存
Buffers 缓冲内存 由内核分配的缓冲区大小
Cached 缓存内存 由内核分配的缓存大小,用于存储最近使用的文件数据
SwapCached 交换缓存 已被交换出去的内存,但仍被存储在swap文件中,以便更快的重新调入内存
Active 主动使用内存 最近被使用的内存,不太可能被移至swap(交换空间)
Inactive 不活跃内存 不常被使用的内存,更可能被移至swap
SwapTotal 交换总空间 系统总的交换空间大小
SwapFree 空闲交换空间 当前未被使用的交换空间大小
Dirty 脏页 等待被写回到磁盘的内存
Writeback 正在写回 正在被写回到磁盘的内存
Slab Slab缓存 内核数据结构缓存
PageTables 页表 管理虚拟地址空间的页表的内存
RSS 常驻集大小 进程实际使用的物理内存大小
RES 常驻内存大小 类似于RSS,进程实际使用的物理内存大小

查询方式

要检查和分析系统内存和进程内存使用情况,以下是您可以使用的主要指标,以及每个工具的含义、作用和分析方法:

  1. psrss(Resident Set Size):
  • 含义: 表示进程的常驻内存集大小,即进程当前使用的物理内存量。
  • 作用: 用于评估单个进程的内存占用。
  • 分析方法: 使用ps命令(如ps aux)查看rss值,以了解进程的内存使用情况。较高的rss值可能表明进程正在使用大量物理内存。
  1. topRES(Resident Memory Size):
  • 含义: 同psrss,表示进程的常驻内存集大小。
  • 作用: 提供实时更新的进程内存使用情况。
  • 分析方法: 在top命令中观察RES列,以监控进程的内存使用。top还可以按内存使用量对进程进行排序,帮助识别内存使用最多的进程。
  1. free命令:
  • 含义: 显示系统内存的总量、使用量、空闲量以及缓存和缓冲区的使用情况。
  • 作用: 快速了解系统的内存使用概况。
  • 分析方法: 运行free命令,关注usedfree列,以及buffers/cache行,这可以帮助您了解系统内存的使用和可用性。
  1. /proc/meminfo文件:
  • 含义: 提供详细的系统内存使用信息。
  • 作用: 用于深入分析系统内存使用情况。
  • 分析方法: 使用cat /proc/meminfo查看详细的内存信息。您可以找到如MemTotal, MemFree, Buffers, Cached, SwapTotal, SwapFree等关键指标,以及其他内核内存使用情况的指标,如SlabPageTables

使用这些工具和指标时,您可以按照以下步骤进行分析:

  • 步骤1: 使用free命令获取内存使用的概览。
  • 步骤2: 如果需要实时监控或查看特定进程的内存使用情况,使用topps
  • 步骤3: 对于更深入的分析,如内存泄漏或详细的内存分配情况,查看/proc/meminfo

通过这些步骤,您可以建立一个全面的内存使用情况视图,从而更有效地管理和优化系统资源。


命令之间的差异

  1. psrsstopRES:
  • ps命令中的rss值和top命令中的RES值确实都表示进程的常驻内存集大小,即进程当前使用的物理内存量。
  • 通常,这两个值是类似的,因为它们都是从内核中获取相同的信息。
  • 然而,top提供了一个动态的、实时更新的视图,包括系统的整体性能指标和每个进程的性能指标,而ps通常用于一次性查看进程的状态。
  • 如果您只是想快速查看某个进程的内存使用情况,ps可能更方便。如果您想要一个持续更新的系统性能概览,包括内存使用,top会更合适。
  1. freecat /proc/meminfo:
  • free命令提供了一个简洁的总结,显示了系统内存的总量、使用量、空闲量以及缓存和缓冲区的使用情况。
  • /proc/meminfo提供了更详细的信息,包括所有free显示的内容以及更多细节,如Slab重用内存、PageTables的使用情况等。
  • 对于想要快速了解内存概况的用户来说,free命令通常就足够了。而对于需要详细内存信息的高级用户或开发人员,/proc/meminfo提供了更全面的数据。

在实际使用中,您可以根据需要选择合适的工具。如果您需要实时监控和全面的进程内存使用情况,top是一个好工具。如果您需要快速了解系统内存使用的快照,free是一个简单的选择。如果您需要进行详细的内存分析或故障排除,/proc/meminfo将提供最详尽的信息。

结语

在我们的编程学习之旅中,理解是我们迈向更高层次的重要一步。然而,掌握新技能、新理念,始终需要时间和坚持。从心理学的角度看,学习往往伴随着不断的试错和调整,这就像是我们的大脑在逐渐优化其解决问题的“算法”。

这就是为什么当我们遇到错误,我们应该将其视为学习和进步的机会,而不仅仅是困扰。通过理解和解决这些问题,我们不仅可以修复当前的代码,更可以提升我们的编程能力,防止在未来的项目中犯相同的错误。

我鼓励大家积极参与进来,不断提升自己的编程技术。无论你是初学者还是有经验的开发者,我希望我的博客能对你的学习之路有所帮助。如果你觉得这篇文章有用,不妨点击收藏,或者留下你的评论分享你的见解和经验,也欢迎你对我博客的内容提出建议和问题。每一次的点赞、评论、分享和关注都是对我的最大支持,也是对我持续分享和创作的动力。

目录
相关文章
|
9天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
124 78
|
12天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
47 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
缓存 Java Linux
如何解决 Linux 系统中内存使用量耗尽的问题?
如何解决 Linux 系统中内存使用量耗尽的问题?
132 48
|
8天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
61 13
|
20天前
|
算法 Linux
深入探索Linux内核的内存管理机制
本文旨在为读者提供对Linux操作系统内核中内存管理机制的深入理解。通过探讨Linux内核如何高效地分配、回收和优化内存资源,我们揭示了这一复杂系统背后的原理及其对系统性能的影响。不同于常规的摘要,本文将直接进入主题,不包含背景信息或研究目的等标准部分,而是专注于技术细节和实际操作。
|
1月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
38 4
|
1月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
36 3
|
9天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
28 0
|
1月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
38 1
|
1月前
|
网络协议 Linux 虚拟化
如何在 Linux 系统中查看进程的详细信息?
如何在 Linux 系统中查看进程的详细信息?
91 1