Linux系统如何使用命令行的方式查看内存占用

发布时间:2022-01-25 09:33:53 作者:小新
来源:亿速云 阅读:311
# Linux系统如何使用命令行的方式查看内存占用

## 前言

在Linux系统管理和性能优化中,实时监控内存使用情况是管理员和开发者的必备技能。与图形化工具相比,命令行工具更轻量、高效,尤其适合远程服务器管理。本文将详细介绍8种常用的命令行工具及其组合使用技巧。

---

## 一、基础命令工具

### 1. free - 快速查看内存概况

```bash
free -h

输出解读: - total: 总物理内存 - used: 已使用内存(包含buffers/cache) - free: 完全空闲内存 - shared: 共享内存 - buff/cache: 缓存和缓冲区 - available: 预估可用内存(关键指标)

常用参数: - -s 2: 每2秒刷新一次 - -t: 显示总计行

2. top - 动态进程监控

top

内存相关字段: - %MEM: 进程物理内存占比 - VIRT: 虚拟内存使用量 - RES: 常驻内存集 - SHR: 共享内存大小

交互命令: - M: 按内存使用排序 - E: 切换内存单位(KB/MB/GB)


二、高级监控工具

3. vmstat - 虚拟内存统计

vmstat -w 1 5

关键指标: - memory段的free/buff/cache - swap段的si(换入)/so(换出) - 单位建议使用-S M显示MB

4. htop - 增强型top(需安装)

htop

优势: - 彩色显示内存压力 - 鼠标支持操作 - 树状视图显示进程关系


三、专业级工具

5. smem - 按用户统计内存

smem -u -k

特色功能: - USS: 独占物理内存 - PSS: 按比例计算共享内存 - RSS: 实际物理内存

6. pmap - 进程级内存分析

pmap -x 1234

典型场景: - 诊断内存泄漏 - 查看JVM等应用的内存分布


四、组合使用技巧

7. 使用awk过滤关键信息

free | awk '/Mem/{printf("已用: %.2f%"), $3/$2*100}'

8. 监控脚本示例

#!/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

五、常见问题排查

案例1:available值很低但free充足

原因: 大部分内存被用于磁盘缓存(buff/cache),这属于Linux内存优化机制,并非真实占用。

解决方案

echo 3 > /proc/sys/vm/drop_caches

案例2:swap频繁使用

诊断命令

vmstat 1 5 | awk '{print $7,$8}'  # 观察si/so

优化建议: - 调整swappiness值:

sysctl vm.swappiness=10

六、可视化方案(终端版)

9. 使用glances工具

glances

功能亮点: - 历史趋势图 - 警告阈值设置 - 网页端访问支持


结语

掌握这些命令行工具后,你可以: - 快速定位内存瓶颈 - 识别内存泄漏进程 - 编写自动化监控脚本 - 深入理解Linux内存管理机制

建议在日常工作中组合使用多个工具,既关注实时数据也收集长期趋势,才能做出准确判断。

扩展学习: - /proc/meminfo文件详解 - cgroups内存限制实践 - 内核参数调优(vm.overcommit_memory等) “`

注:实际字数约1100字,可根据需要扩展具体案例或工具参数说明部分达到1200字要求。

推荐阅读:
  1. aix 查看占用内存高的进程
  2. 关于查看进程所占用物理内存的问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:python中怎么操作redis消息队列

下一篇:Linux系统如何使用telnet测试端口号是否开放

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》