一、 查看内存使用情况

在Linux系统中,大部分操作都通过命令行来完成,因为大部分情况下不开启图形界面。
在服务器环境,则只能通过shell执行操作。
下面介绍查看内存使用情况的相关命令。 包括物理内存(RAM)和交换内存(swap)。

我们经常需要检查服务器的内存使用情况,以及每个进程占用的内存,避免发生资源短缺进而影响用户体验。
对于网站和Web服务,必须具有足够的内存才能处理客户端请求。 如果内存不足,在请求高峰时就会变得缓慢,拥堵,甚至服务崩溃。
当然桌面系统也是同样的道理。

1. 使用 free 命令

free 命令是Linux系统中最简单和最常用的内存查看命令, 示例如下:


$ free -mtotal        used        free      shared  buff/cache   available
Mem:           7822         321         324         377        7175        6795
Swap:          4096           0        4095$ free -htotal        used        free      shared  buff/cache   available
Mem:           7.6G        322M        324M        377M        7.0G        6.6G
Swap:          4.0G        724K        4.0G

其中, -m 选项是以MB为单位来展示内存使用信息; -h 选项则是以人类(human)可读的单位来展示。

上面的示例中, Mem: 这一行:

  • total 表示总共有 7822MB 的物理内存(RAM),即7.6G
  • used 表示物理内存的使用量,大约是 322M
  • free 表示空闲内存;
  • shared 表示共享内存?;
  • buff/cache 表示缓存和缓冲内存量; Linux 系统会将很多东西缓存起来以提高性能,这部分内存可以在必要时进行释放,给其他程序使用。
  • available 表示可用内存;

输出结果很容易理解。 Swap 这一行表示交换内存,从示例中的数字可以看到,基本上没使用到交换内存。

2. 查看 /proc/meminfo

另一种方法是读取 /proc/meminfo 文件。 我们知道, /proc 目录下都是虚拟文件,包含内核以及操作系统相关的动态信息。

$ cat /proc/meminfo
MemTotal:        8010408 kB
MemFree:          323424 kB
MemAvailable:    6956280 kB
Buffers:          719620 kB
Cached:          5817644 kB
SwapCached:          132 kB
Active:          5415824 kB
Inactive:        1369528 kB
Active(anon):     385660 kB
Inactive(anon):   249292 kB
Active(file):    5030164 kB
Inactive(file):  1120236 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4194304 kB
SwapFree:        4193580 kB
Dirty:                60 kB
Writeback:             0 kB
AnonPages:        247888 kB
Mapped:            61728 kB
Shmem:            386864 kB
Slab:             818320 kB
SReclaimable:     788436 kB
SUnreclaim:        29884 kB
KernelStack:        2848 kB
PageTables:         5780 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     8199508 kB
Committed_AS:     942596 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       22528 kB
VmallocChunk:   34359707388 kB
HardwareCorrupted:     0 kB
AnonHugePages:     88064 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      176000 kB
DirectMap2M:     6115328 kB
DirectMap1G:     4194304 kB

重点关注这些数据:

  • MemTotal, 总内存
  • MemFree, 空闲内存
  • MemAvailable, 可用内存
  • Buffers, 缓冲
  • Cached, 缓存
  • SwapTotal, 交换内存
  • SwapFree, 空闲交换内存

提供的信息和 free 命令看到的差不多。

3. 使用 vmstat 命令

使用 vmstat -s 命令和选项, 可以对内存使用情况进行统计, 类似于 /proc/meminfo

示例如下:

$ vmstat -s8010408 K total memory344016 K used memory5444384 K active memory1380052 K inactive memory283468 K free memory719668 K buffer memory6663256 K swap cache4194304 K total swap724 K used swap4193580 K free swap132859985 non-nice user cpu ticks29816 nice user cpu ticks37600986 system cpu ticks6643195204 idle cpu ticks2721822 IO-wait cpu ticks0 IRQ cpu ticks592418 softirq cpu ticks0 stolen cpu ticks13092214 pages paged in293257816 pages paged out8 pages swapped in1365 pages swapped out3396492150 interrupts1327657196 CPU context switches1548248091 boot time8811556 forks

最前面的几行,显示了内存总量,使用量,以及空闲内存等信息。

4. 使用 top 命令

top 命令一般用于查看进程的CPU和内存使用情况;当然也会报告内存总量,以及内存使用情况,所以可用来监控物理内存的使用情况。
在输出信息的顶部展示了汇总信息。

示例输出:

top - 15:20:30 up  6:57,  5 users,  load average: 0.64, 0.44, 0.33
Tasks: 265 total,   1 running, 263 sleeping,   0 stopped,   1 zombie
%Cpu(s):  7.8 us,  2.4 sy,  0.0 ni, 88.9 id,  0.9 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8167848 total,  6642360 used,  1525488 free,  1026876 buffers
KiB Swap:  1998844 total,        0 used,  1998844 free,  2138148 cachedPID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                                 2986 enlighte  20   0  584m  42m  26m S  14.3  0.5   0:44.27 yakuake                                                                                 1305 root      20   0  448m  68m  39m S   5.0  0.9   3:33.98 Xorg                                                                                    7701 enlighte  20   0  424m  17m  10m S   4.0  0.2   0:00.12 kio_thumbnail

各种操作系统提供的参数略有不同,一般来说都可以根据CPU和内存来排序。

例如:

# CentOS
top -o %MEM
top -o %CPU# mac
top -o mem
top -o cpu

碰到不清楚的,请使用 top -h 查看帮助信息。

重点关注顶部的 KiB MemKiB Swap 这两行。 表示内存的总量、使用量,以及可用量。
buffer 和 cache 部分,和 free 命令展示的差不多。

5. htop 命令

top 命令类似, 但 htop 还展示了其他的各种信息, 而且支持彩色显示。

顶部的消息显示了CPU使用率, 以及RAM和交换内存的使用情况。

如果没安装,可以使用类似的命令:

yum install htop -y

二、 查看物理内存信息

想要查看物理内存的硬件信息,可以使用 demidecode 命令。
这个命令会输出物理内存相关的信息。

$ dmidecode -t 17# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.Handle 0x1100, DMI type 17, 40 bytes
Memory DeviceArray Handle: 0x1000Error Information Handle: Not ProvidedTotal Width: UnknownData Width: UnknownSize: 8192 MBForm Factor: DIMMSet: NoneLocator: DIMM 0Bank Locator: Not SpecifiedType: RAMType Detail: OtherSpeed: UnknownManufacturer: Alibaba CloudSerial Number: Not SpecifiedAsset Tag: Not SpecifiedPart Number: Not SpecifiedRank: UnknownConfigured Clock Speed: UnknownMinimum Voltage: UnknownMaximum Voltage: UnknownConfigured Voltage: Unknown

dmidecode -t 17 展示的信息包括 内存大小, 类型,带宽等信息。 当然,因为示例中使用的是虚拟机,所以有的信息是不可用的。

如果不加 -t 参数,则展示所有类型的硬件信息。 也可以指定其他 -t 参数来查看对应的硬件信息。

小结

本文介绍的命令都可以在shell终端上执行,不需要图形界面来展示。
如果使用带有图形界面的Linux桌面系统,则使用图形工具会更直观。 一般来说图形桌面都会提供对应的系统监控工具。 输出容易理解的 cpu, 物理内存, 交换内存, 网络带宽等资源的使用信息。

相关链接

  • https://www.binarytides.com/linux-command-check-memory-usage/
  • http://virtualthreads.blogspot.com/2006/02/understanding-memory-usage-on-linux.html

Linux系统命令 - 查看内存使用情况相关推荐

  1. linux系统命令-查看内存使用情况

    1.查看系统内存占用 free -m [root@localhost ~]# free -mtotal used free shared buffers cached Mem: 2004 573 14 ...

  2. linux脚本查看系统内存,二个linux下查看内存使用情况的shell脚本()

    摘要 腾兴网为您分享:二个linux下查看内存使用情况的shell脚本(),政务易,悦作业,优化大师,王者荣耀等软件知识,以及单向历app,优路教育app,kimoji,开关电源设计软件,皮皮高清影视 ...

  3. 【linux】查看内存使用情况

    内存使用量排序显示 top命令查看 top命令能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.使用top命令可以轻松查看各个应用的内存使用情况. # top -d 1 在t ...

  4. Linux下查看内存使用情况方法总结

    关注.星标公众号,直达精彩内容 来自:Specs'Blog 链接:http://9iphp.com/linux/1247.html 原文:http://ask.xmodulo.com/check-me ...

  5. Linux服务器查看内存使用情况

    前言 在日常开发或者生产环境,我们经常需要查看linux服务的内存使用情况,所以熟练敲出命令能便于我们快速定位问题,这里来和大家一起学习linux的常用查看内存命令. free命令 free 命令显示 ...

  6. linux下查看内存使用情况

    在Linux下查看内存我们一般用free命令: [root@scs-2 tmp]# free              total       used       free     shared   ...

  7. linux内存平均值,linux下查看内存使用情况[转载]

    在Linux下查看内存我们一般用free命令: [root@scs-2 tmp]# free total used free shared buffers cached Mem: 3266180 32 ...

  8. linux centos 查看内存使用情况

    1.ps -ef|grep java (查看所有java运行的进程) 2.df -h (查看磁盘使用情况) 3.free -m|g (m和g表示单位,二选一)查看内存使用情况 4.top (实时显示系 ...

  9. linux 查看虚拟机内存,Linux基础教程:Linux下查看内存使用情况

    /proc/meminfo 机器的内存使用信息 /proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址. /proc/pid/statm 进程所占用的内存 [root@localh ...

  10. Linux free 查看内存使用情况 常用命令

    Intro 常用命令 free free -h 以更易读(human-readable)的格式输出 free -s 3 每3秒输出一次 示例 wuyujin1997@budy:~$ free -hto ...

最新文章

  1. django 内置 admin
  2. ASP.NET-自定义HttpModule与HttpHandler
  3. NB-IoT在智慧烟感解决方案中的应用
  4. QT5生成.exe文件时,出现缺少QT5core.dll文件解决方法
  5. 死锁产生的原因及条件、如何避免死锁
  6. pandas 合并所有列_Python学习:Pandas库+练习资料
  7. java 代码配置 网络调试助手_java源码:网络调试助手
  8. 雷云2.0在macOS Big Sur下无法识别问题解决
  9. 银行软件测试测试用例,银行测试用例设计经验总结,应该怎样去设计测试用例?...
  10. python订单管理系统功能_后台系统:订单管理
  11. JavaScript - 匿名函数具名化
  12. L版本通话记录里面显示的通话时长与实际不一致的问题
  13. opencv、opencv_contrib及cuda联合编译详细教程
  14. 解决matlab 关于警告(warning)、错误(error)、异常(exception)与断言(assert)问题总结
  15. 7000 字 23 张图,Pandas 一键生成炫酷的动态交互式图表
  16. 获取CARLA插件SCENARIO RUNNER
  17. Linux Ubuntu
  18. 中核科技:科技匠心 智启未来
  19. c语言是否继续,怎样插入是否继续(y/n)这个语句!
  20. 2.基于文心大模型套件ERNIEKit实现文本匹配算法,模块化方便应用落地

热门文章

  1. 八大排序算法详解(通俗易懂)
  2. ARM64体系结构编程1-加载与存储指令
  3. 推荐一款可以在浏览器中运行的人脸识别库
  4. Opencv摄像头相关参数
  5. OpenCV图像处理--opencv摄像头播放视频
  6. C语言printf()输出格式大全
  7. MD5加盐的一个简单算法
  8. Excel基础(10)SUMIF函数
  9. 如何在Mac系统中将照片设置为自动播放以及快速更改壁纸的方法
  10. knockoutjs介绍