在 Linux 系统中,有多种方法可以查看内存使用情况。以下是常用的几种工具和命令:
最常用的内存查看命令,显示系统总体内存使用情况:
free -h
常用选项:
- -h
:以人类可读格式显示(自动转换为 GB/MB/KB)
- -m
:以 MB 为单位显示
- -g
:以 GB 为单位显示
- -s N
:每隔 N 秒刷新一次(如 free -s 5
每5秒刷新)
输出解释:
- total
:总内存量
- used
:已使用内存(包括 buffers/cache)
- free
:空闲内存
- shared
:共享内存
- buff/cache
:缓存和缓冲区使用的内存
- available
:可用内存(估计可用于启动新应用的内存)
动态查看系统资源使用情况,包括内存:
top
在 top 界面中:
- 按 M
按内存使用排序
- 按 P
按 CPU 使用排序
- 按 q
退出
内存相关信息显示在顶部区域:
- KiB Mem
:物理内存使用情况
- KiB Swap
:交换分区使用情况
比 top 更友好的交互式进程查看器:
htop
需要先安装:
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
查看虚拟内存统计信息:
vmstat -s
或实时监控(每2秒刷新一次):
vmstat 2
最详细的内存信息源:
cat /proc/meminfo
包含所有内存相关指标的详细信息。
查看特定进程的内存使用情况:
pmap -x [PID]
提供更直观的内存使用报告:
smem -u -k -p
需要先安装:
sudo apt install smem # Debian/Ubuntu
sudo yum install smem # CentOS/RHEL
全面的系统监控工具:
glances
需要先安装:
sudo apt install glances # Debian/Ubuntu
sudo yum install glances # CentOS/RHEL
pip install glances # 使用pip安装
交互式系统监控工具:
nmon
按 m
键查看内存相关信息。
理解缓存和缓冲区:Linux 会利用空闲内存做磁盘缓存(buffers/cache),这部分内存在需要时会被释放,所以不要只看 "free" 内存。
关注 available 值:比 free 更能反映实际可用内存。
交换分区使用:如果 swap 使用较多,可能表示物理内存不足。
OOM Killer:当系统内存严重不足时,Linux 会终止进程来释放内存。
内存泄漏检测:如果内存使用持续增长而不释放,可能存在内存泄漏问题。
free -h
cat /proc/meminfo
top
或 htop
vmstat
或 glances
根据具体需求选择合适的工具组合使用,可以全面了解 Linux 系统的内存使用情况。