博客
关于我
linux系统下查看内存使用情况
阅读量:792 次
发布时间:2023-02-05

本文共 1877 字,大约阅读时间需要 6 分钟。

在Linux系统中,内存的使用情况通常通过free命令来查看,这个命令能够提供系统当前的内存使用状态。以下是通过实际操作和/proc目录下的信息,对内存使用情况的详细解读。

1. free命令输出解析

运行free -m命令可以查看内存使用情况:

[root@scs-2 tmp]# free -mtotal used free shared buffers cachedMem: 3189 3173 16 0 107 2605-/+ buffers/cache: 460 2729Swap: 2000 78 1921
  • total:表示系统总物理内存大小(以MB为单位)。
  • used:已使用的内存总量。
  • free:可用内存大小,表示系统当前的空闲内存。
  • shared:多个进程共享的内存总额。
  • bufferscached:磁盘缓存的大小,用于加快文件读取速度。

从应用程序的角度来看,实际可用内存应为free + buffers + cached,因为这些缓存空间虽然未被直接使用,但通常可以立即回收用于其他任务。

2. 内存使用与交换机制

当系统内存使用率接近或达到额定值时,Linux会通过交换分区(Swap)来释放内存空间。具体来说:

  • Swap分区:用于临时存储内存中无法回收的页面数据,防止内存溢出。
  • Swap缓存:当内存不足时,Linux会将部分内存内容写入Swap分区,以腾出内存空间。

3. 通过/proc目录查看内存信息

/proc/meminfo文件提供了详细的内存使用信息:

cat /proc/meminfoMemTotal: 3266180 kBMemFree: 17456 kBBuffers: 111328 kBCached: 2664024 kBSwapCached: 0 kBActive: 467236 kBInactive: 2644928 kBHighTotal: 0 kBHighFree: 0 kBLowTotal: 3266180 kBLowFree: 17456 kBSwapTotal: 2048276 kBSwapFree: 1968116 kBDirty: 8 kBWriteback: 0 kBMapped: 345360 kBSlab: 112344 kBCommitted_AS: 535292 kBPageTables: 2340 kBVmallocTotal: 536870911 kBVmallocUsed: 272696 kBVmallocChunk: 536598175 kBHugePages_Total: 0HugePages_Free: 0Hugepagesize: 2048 kB
  • MemTotal:系统总内存大小。
  • MemFree:当前可用内存大小。
  • BuffersCached:磁盘缓存大小。
  • Swap:交换分区的使用情况。

4. 实际可用内存计算

实际可用内存应为free + buffers + cached,这与total - used的结果一致:

2795064 = 16176 + 110652 + 2668236

这意味着,尽管free值可能较小,但实际可用内存空间仍然充足,主要是由于系统优化了内存使用效率,通过缓存和临时存储提升性能。

5. 内存交换的触发机制

当内存使用率超过一定阈值时,Linux会自动启用交换功能,释放内存空间。这可以通过检查/proc/meminfo中的Swap信息来确认:

Swap: 2048276 kBSwapFree: 1968116 kB

SwapFree较小时,表明系统正在通过交换分区来管理内存资源。

6. 关于内存镜像

内存镜像文件/proc/kcore的大小(通常为4G)表示系统物理内存的大小。可以通过以下命令查看:

ll /proc/kcore

7. 进程内存占用查看

要查看特定进程的内存占用,可以使用以下命令:

cat /proc/pid/mapscat /proc/pid/statm

其中,/proc/pid/maps显示进程占用的虚拟地址空间,而/proc/pid/statm提供进程占用的物理内存详情。

8. 内存使用优化

在实际应用中,内存使用效率的优化可以从以下几个方面入手:

  • 合理分配Swap分区,确保其至少为物理内存的两倍。
  • 定期清理缓存和临时文件,释放内存空间。
  • 优化应用程序的内存管理,减少不必要的内存占用。

通过以上方法,可以更好地管理系统内存资源,提升系统性能和稳定性。

转载地址:http://jxkfk.baihongyu.com/

你可能感兴趣的文章
Linux工作笔记033---Linux(CentOS7)安装zip、unzip命令
查看>>
Linux工作笔记034---linux tail命令详解_linux在vi中查找字符串
查看>>
Linux工作笔记035---linux内网测试访问外网网速_外网测试访问内网网速
查看>>
Linux工作笔记035---设置连接Linux Centos 超时连接时间_空闲的等待时间 -bash: TMOUT: readonly variable
查看>>
Linux工作笔记036---Centos下查看cpu、磁盘、内存使用情况以及如何清理内存
查看>>
Linux工作笔记037---Centos8.2下安装mysql_测试通过_注意这里安装8.0.22版本的_8.0以后的版本有需要注意的地方_跟7.0之前的版本不一样
查看>>
Linux工作笔记037---Centos下Linux创建用户_用户组_删除用户
查看>>
Linux工作笔记038---CentOS8.2安装Nginx_测试通过
查看>>
Linux工作笔记038---Centos下Linux下解决root用户Operation not permitted
查看>>
Linux工作笔记039---CentOS8.2卸载mysql
查看>>
Linux工作笔记040---Centos8.2安装mysql5.7.18_已经测试成功
查看>>
Linux带给了我什么?
查看>>
Linux常用vi命令
查看>>
linux常用压缩解压命令(tar,zip)
查看>>
Linux常用命令
查看>>
Linux常用命令
查看>>
Linux常用命令
查看>>
Linux常用命令
查看>>
linux常用命令
查看>>
Linux常用命令
查看>>