您好,登录后才能下订单哦!
# Linux系统如何使用命令行的方式查看内存占用
## 前言
在Linux系统管理和性能优化中,实时监控内存使用情况是管理员和开发者的必备技能。与图形化工具相比,命令行工具更轻量、高效,尤其适合远程服务器管理。本文将详细介绍8种常用的命令行工具及其组合使用技巧。
---
## 一、基础命令工具
### 1. free - 快速查看内存概况
```bash
free -h
输出解读:
- total
: 总物理内存
- used
: 已使用内存(包含buffers/cache)
- free
: 完全空闲内存
- shared
: 共享内存
- buff/cache
: 缓存和缓冲区
- available
: 预估可用内存(关键指标)
常用参数:
- -s 2
: 每2秒刷新一次
- -t
: 显示总计行
top
内存相关字段:
- %MEM
: 进程物理内存占比
- VIRT
: 虚拟内存使用量
- RES
: 常驻内存集
- SHR
: 共享内存大小
交互命令:
- M
: 按内存使用排序
- E
: 切换内存单位(KB/MB/GB)
vmstat -w 1 5
关键指标:
- memory
段的free
/buff
/cache
- swap
段的si
(换入)/so
(换出)
- 单位建议使用-S M
显示MB
htop
优势: - 彩色显示内存压力 - 鼠标支持操作 - 树状视图显示进程关系
smem -u -k
特色功能:
- USS
: 独占物理内存
- PSS
: 按比例计算共享内存
- RSS
: 实际物理内存
pmap -x 1234
典型场景: - 诊断内存泄漏 - 查看JVM等应用的内存分布
free | awk '/Mem/{printf("已用: %.2f%"), $3/$2*100}'
#!/bin/bash
while true; do
clear
date
echo "-----"
free -h
echo "Top 5内存进程:"
ps -eo pid,user,%mem,cmd --sort=-%mem | head -6
sleep 2
done
原因: 大部分内存被用于磁盘缓存(buff/cache),这属于Linux内存优化机制,并非真实占用。
解决方案:
echo 3 > /proc/sys/vm/drop_caches
诊断命令:
vmstat 1 5 | awk '{print $7,$8}' # 观察si/so
优化建议: - 调整swappiness值:
sysctl vm.swappiness=10
glances
功能亮点: - 历史趋势图 - 警告阈值设置 - 网页端访问支持
掌握这些命令行工具后,你可以: - 快速定位内存瓶颈 - 识别内存泄漏进程 - 编写自动化监控脚本 - 深入理解Linux内存管理机制
建议在日常工作中组合使用多个工具,既关注实时数据也收集长期趋势,才能做出准确判断。
扩展学习:
- /proc/meminfo
文件详解
- cgroups内存限制实践
- 内核参数调优(vm.overcommit_memory等)
“`
注:实际字数约1100字,可根据需要扩展具体案例或工具参数说明部分达到1200字要求。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。