如何查看Linux内存使用情况?

  内存是Linux系统高效运行的核心资源,实时监控和分析内存使用情况,是排查系统卡顿、优化性能、避免 OOM(内存溢出)故障的关键。那么如何查看Linux内存使用情况?我们通过这篇文章来介绍一下。

  1.使用free命令查看内存概览

  free是最常用的查看内存使用情况的命令,能显示系统总的内存、已用、空闲、缓冲区和缓存等信息。

  常用选项:

  free -h:以人类可读的方式显示内存大小

  free -m:以MB为单位显示

  free -s 2:每2秒刷新一次,持续监控

  输出中重点关注 available 列,它表示实际可用于启动新应用的内存,比“free”列更准确,因为Linux会把部分内存用于缓存(buffers/cache),必要时可释放。

  2.使用top或htop查看进程级内存使用

  top命令提供实时的系统资源使用情况,包括每个进程的内存消耗。

  关键字段说明:

  VIRT:进程使用的虚拟内存总量

  RES:常驻内存大小,实际占用物理内存的部分

  %MEM:该进程使用物理内存的百分比

  在top界面中按M键可按内存使用量排序,快速定位高内存占用进程。

  若系统支持,推荐使用htop,它提供彩色界面、可滚动、支持鼠标操作,信息更直观。

  3.分析/proc/meminfo获取详细内存信息

  /proc/meminfo是内核提供的内存状态接口,包含最详细的内存统计信息。

  常用字段解释:

  MemTotal:总物理内存

  MemFree:完全未使用的内存

  Buffers和Cache:文件系统缓存和块设备缓冲

  MemAvailable:估计的可用内存

  执行cat /proc/meminfo可查看全部内容,适合脚本解析或深入分析

  4.其他实用工具与技巧

  除了基础命令,还可以结合以下方式进一步分析:

  vmstat -s:列出各项内存事件的统计值

  smem:可查看进程的PSS(Proportional Set Size),更公平地评估共享内存下的实际占用

  ps aux --sort=-%mem:按内存使用率排序列出所有进程

<think> 我们正在回答用户关于查看Linux系统内存和硬盘使用情况的询问。根据引用内容,我们可以总结如下: 查看内存信息: - 使用 `cat /proc/meminfo` 命令可以查看详细的内存信息[^3]。 - 使用 `free` 命令可以快速查看内存使用情况(包括物理内存和交换分区)。 查看硬盘使用情况: - 使用 `df -h` 命令可以查看文件系统的磁盘空间占用情况(以人类可读的方式显示)[^2]。 - 使用 `du` 命令可以查看指定目录的磁盘使用情况。 此外,引用中提到了 `top` 命令,它可以实时显示系统中各个进程的资源占用情况,包括CPU和内存的使用情况[^4][^5]。 因此,我们可以给用户提供以下步骤: 1. 硬盘使用情况:使用 `df -h` 命令。 2. 内存使用情况:可以使用 `free -h` 命令(以人类可读的方式显示)或者 `cat /proc/meminfo` 查看详细信息。 同时,用户也可以使用 `top` 命令来动态查看系统资源使用情况,其中包括内存和CPU的使用情况。 我们按照要求,使用中文回答,并在引用处标注引用标识。 </think> ### 查看 Linux 系统内存和硬盘使用情况指南 #### 一、内存使用情况查看方法 1. **实时内存监控** ```bash free -h ``` 输出示例: ``` total used free shared buff/cache available Mem: 15G 3.1G 8.2G 345M 3.7G 11G Swap: 2G 512M 1.5G ``` `-h` 参数以人类可读的单位显示(GB/MB)内存总量、已用量、空闲量等关键指标[^1][^3]。 2. **详细内存信息** ```bash cat /proc/meminfo ``` 输出包含: ```bash MemTotal: 15878852 kB MemFree: 8432148 kB Buffers: 234560 kB Cached: 2836588 kB SwapCached: 51200 kB ``` 3. **动态资源监控** ```bash top ``` 实时显示内存和 CPU 使用状况,重点关注: ```bash KiB Mem : 15878852 total, 8432148 free, 3223456 used, 4223248 buff/cache KiB Swap: 2097148 total, 1572864 free, 524284 used. 11675884 avail Mem ``` 其中 `free` 表示可用内存,`buff/cache` 是被内核缓冲的内存[^4]。 --- #### 二、硬盘使用情况查看方法 1. **磁盘空间概览** ```bash df -h ``` 输出示例: ``` Filesystem Size Used Avail Use% Mounted on /dev/vda1 100G 49G 52G 49% / /dev/vdb1 500G 120G 380G 24% /data ``` 显示各分区总容量、已用量、可用量及挂载点[^2]。 2. **目录大小分析** ```bash du -sh /path/to/directory ``` 示例: ```bash du -sh /var/log # 查看日志目录大小 4.8G /var/log ``` 3. **IO 性能监控** ```bash iostat -x 2 # 每2秒刷新磁盘IO数据 ``` 输出关键指标: ``` Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s %util vda 0.00 2.00 1.00 4.00 16.00 32.00 5.20 ``` `%util` 接近 100% 表示磁盘饱和[^5]。 --- #### 三、综合监控工具 ```bash dstat -cmsd # 同时监控CPU/内存/磁盘(需安装:yum install dstat) ``` 实时输出: ``` ---cpu-- ---memory--- ----swap--- ---disk-io- usr sys idl wai hiq siq| used buff cach| used free| read writ 2 1 97 0 0 0|3462M 123M 3.7G| 512M 1.5G| 10k 32k ``` --- ### 关键指标解读 | 指标 | 健康范围 | 异常表现 | |---------------|------------|----------------------| | **内存可用量** | >20%总量 | <10%可能触发 OOM | | **Swap 使用率**| <30% | >50%需优化内存配置 | | **磁盘使用率** | <80% | >90%需清理或扩容 | | **磁盘 %util** | <70% | 持续>90%表示IO瓶颈 | > 提示:当内存可用量(`available`)接近零时,系统会使用 Swap 空间,导致性能显著下降[^4]。 --- ### 相关问题 1. 如何检测 Linux 系统的 CPU 使用瓶颈? 2. 服务器磁盘空间不足时,哪些目录可以安全清理? 3. 如何配置 Linux 内存告警阈值? 4. 为什么 `free` 命令显示的可用内存比实际少? 5. 如何排查磁盘 IO 性能问题?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值