linux主机内存命令
linux主机内存命令详细介绍
在 Linux 系统中,有多个用于查看和监控主机内存使用情况的常用命令,以下是一些主要命令及其用法:
1. free - 查看内存使用概况
最常用的内存查看命令,显示物理内存、交换空间的使用情况。
bash
选项
- 常用选项:
-h:以人类可读的格式(KB/MB/GB)显示。-m:以 MB 为单位显示。-g:以 GB 为单位显示。-s <秒数>:周期性刷新输出(例如free -s 5每 5 秒刷新一次)。
示例输出:
bash
$total used shared buff/cache available
Mem: 15Gi .4Gi .7Gi 498Mi .0Gi 11Gi
Swap: 15Gi 0B 15Gi
total:总内存。used:已使用的内存(包含缓冲区和缓存)。free:未使用的内存(不包含缓冲区和缓存)。buff/cache:缓冲区(buffer)和缓存(cache)占用的内存(用于加速文件读写)。available:实际可用的内存(系统可回收给应用程序的内存)。
2. top / htop - 动态监控进程内存使用
实时显示系统资源(包括内存)的使用情况,并按进程排序。
top(默认工具):- 输入
top后按M键以内存使用排序。 - 按
q退出。
- 输入
htop(增强版,交互性更好):- 需要先安装(
sudo apt install htop或yum install htop)。 - 直接输入
htop,通过方向键和功能键操作。
- 需要先安装(
关键列:
RES:进程实际使用的物理内存(常驻集大小)。VIRT:进程虚拟内存(包括未分配的内存)。%MEM:进程占用物理内存的百分比。
3. vmstat - 虚拟内存统计
显示内存、进程、CPU 等系统资源的统计信息。
bash
选项 间隔时间 次数
- 常用选项:
-s:显示内存相关的统计信息(总内存、已用内存、交换空间等)。-m:显示内存块(slab)的使用情况。
示例(每 2 秒刷新一次,共 3 次):
bash
$procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd buff cache si so bi bo cs us sy wa st
free:空闲物理内存。cache:缓存内存。swap相关字段(si/so):交换空间的换入 / 换出速率(若频繁非零,可能内存不足)。
4. cat /proc/meminfo - 详细内存信息
从 /proc 文件系统获取更详细的内存统计数据(适用于脚本或编程获取数据)。
bash
$ /proc/meminfoMemTotal: kB
MemFree: kB
MemAvailable: kB
Buffers: kB
Cached: kB
SwapTotal: kB
SwapFree: kB
- 包含更细致的内存分类(如
Buffers、Cached、SReclaimable等)。
5. pmap - 查看进程内存映射
显示指定进程的内存映射情况(地址、大小、权限、类型等)。
bash
pmap 进程PID
示例:
bash
$ pmap: /usr/bin/python3
000055d2e8f90000 44K r-x-- python3
000055d2e919c000 144K r---- python3
000055d2e91c3000 4K rw--- python3
.
6. nmon - 综合系统监控工具
功能强大的系统监控工具,可显示内存、CPU、磁盘、网络等信息(需安装)。
bash
nmon
内存使用分析总结
- 快速查看内存概况:用
free -h或cat /proc/meminfo。 - 动态监控进程:用
top/htop(按内存排序)。 - 深入分析内存问题(如内存泄漏):结合
pmap、valgrind等工具。
如果需要脚本化获取内存数据,推荐解析 /proc/meminfo 或使用 free 的非交互模式(如 free -m | awk 'NR==2{print $3}' 获取已用内存)。