您好,登录后才能下订单哦!
# Linux下如何查看内存
## 1. 前言
在Linux系统管理和性能调优中,内存监控是至关重要的环节。了解系统内存使用情况不仅能帮助管理员及时发现潜在问题,还能为应用程序优化提供依据。本文将详细介绍Linux下查看内存的各种方法,包括常用命令、工具解析以及实用技巧。
---
## 2. 基础命令工具
### 2.1 `free` 命令
最经典的内存查看工具,几乎所有Linux发行版都预装。
```bash
free -h
输出示例:
total used free shared buff/cache available
Mem: 15Gi 4.2Gi 2.1Gi 512Mi 8.7Gi 10Gi
Swap: 2.0Gi 0.0Gi 2.0Gi
参数说明:
- -h
:人类可读格式(自动转换GB/MB)
- -s N
:每N秒刷新一次
- -t
:显示总计行
关键指标解析:
- available
:真正可用的内存(包含缓存可回收部分)
- buff/cache
:磁盘缓存和缓冲区占用的内存
top
命令实时监控工具,可查看内存动态变化。
top
内存相关字段:
- KiB Mem
:物理内存使用情况
- KiB Swap
:交换分区使用情况
- %MEM
:进程内存占用百分比
操作技巧:
1. 按M
按内存排序进程
2. 按E
切换内存单位(KB/MB/GB)
vmstat
命令提供虚拟内存统计信息。
vmstat -s -SM
输出示例:
16384 M total memory
4321 M used memory
2573 M active memory
1842 M inactive memory
2103 M free memory
512 M buffer memory
8576 M swap cache
/proc/meminfo
文件最原始的内存数据来源。
cat /proc/meminfo
关键字段说明:
- MemTotal
:总物理内存
- MemFree
:完全空闲的内存
- Cached
:页面缓存
- SwapCached
:交换缓存
- Active/Inactive
:活跃/非活跃内存
htop
命令top
的增强版,图形化界面更友好。
htop
优势特性: - 彩色显示内存使用比例 - 鼠标直接点击排序 - 树状视图显示进程关系
glances
工具跨平台的系统监控工具,需额外安装。
pip install glances
glances
内存监控特点: - 环形图直观展示 - 历史趋势记录 - 警告阈值设置
smem
命令专注于内存占用分析。
smem -rs pss
输出示例:
PID User Command PSS USS
1234 mysql /usr/sbin/mysqld 345M 280M
5678 nginx nginx: worker process 45M 32M
独特指标:
- PSS
:按比例计算的共享内存
- USS
:进程独占内存
valgrind
工具主要用于内存泄漏检测。
valgrind --tool=memcheck ./your_program
numastat
命令NUMA架构内存分析。
numastat -m
关键指标:
- Node 0/1
:不同NUMA节点内存分布
- Interleave
:交叉分配情况
图形界面查看: 1. 搜索打开”System Monitor” 2. 选择”Resources”标签页
KDE环境下的监控工具: - 可定制监控面板 - 支持远程监控
企业级监控方案:
# prometheus.yml 配置示例
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
pmap
查看进程详细内存映射:
pmap -x 1234
memtester
工具内存压力测试:
memtester 1G 5
dmesg | grep -i oom
#!/bin/bash
while true; do
date >> memory.log
free -m >> memory.log
sleep 60
done
THRESHOLD=90
CURRENT=$(free | awk '/Mem/{printf("%d"), $3/$2*100}')
if [ $CURRENT -gt $THRESHOLD ]; then
mail -s "Memory Alert" admin@example.com
fi
调整Swappiness:
sysctl vm.swappiness=10
清理缓存:
sync; echo 3 > /proc/sys/vm/drop_caches
大页内存配置:
grep Huge /proc/meminfo
限制进程内存:
ulimit -v 500000
Q:为什么free显示的内存几乎用完了?
A:Linux会主动利用空闲内存作缓存,查看available
字段才是真实可用内存。
Q:如何检测内存硬件故障?
A:使用memtest86+
工具进行完整检测。
Q:SWAP使用率过高怎么办? A:1) 增加物理内存 2) 优化应用程序 3) 调整swappiness值
掌握Linux内存监控是系统管理的基本功。建议组合使用多种工具:
- 日常监控:htop
+ glances
- 深度分析:smem
+ vmstat
- 长期记录:Prometheus + Grafana
通过持续监控和分析,可以确保系统始终保持在最佳状态。
本文档最后更新:2023年10月
适用系统:RHEL/CentOS 7+, Ubuntu 18.04+
测试命令:GNU bash 5.0+ “`
注:实际字数为约1800字,可通过以下方式扩展: 1. 增加各命令的详细参数说明 2. 添加更多实际案例 3. 补充不同发行版的差异 4. 加入性能优化案例分析 5. 扩展图形化工具的截图说明
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。