Linux如何查看内存信息?

常见问题

Linux如何查看内存信息?

2025-04-13 14:22


                                            

Linux系统内存信息查看全指南:8种实用命令详解

在Linux系统管理和性能优化过程中,准确掌握内存使用情况是每个系统管理员必备的技能。本文将深入介绍8种查看Linux内存信息的核心命令,并通过实际案例演示如何解读这些关键数据。

1. free命令:基础内存概览

作为最常用的内存查看命令,free -h能以人类可读的格式显示内存总量、已用量和空闲量:

total        used        free      shared  buff/cache   available
Mem:           7.7G        2.1G        3.2G        345M        2.4G        5.0G
Swap:          2.0G        512M        1.5G

关键指标解读:

  • available:系统可立即分配给应用程序的内存
  • buff/cache:被内核缓冲区占用的内存,必要时可释放

2. top/htop命令:动态内存监控

实时监控工具top及其增强版htop提供进程级内存视图:

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
1834 mysql     20   0   12.3g   4.2g   8400 S   6.7 53.2  20:15.47 mysqld

内存相关列说明:

  • VIRT:进程使用的虚拟内存总量
  • RES:实际使用的物理内存
  • %MEM:进程占用物理内存的百分比

3. vmstat命令:虚拟内存统计

vmstat -s显示详细的内存统计信息:

8147804 K total memory
2234512 K used memory
3290360 K active memory
1816512 K inactive memory
102400 K free memory

此命令特别适合分析内存交换(swapping)情况,当si(swap in)和so(swap out)值持续不为0时,表示系统正在频繁使用交换分区。

高级内存分析技巧

4. /proc/meminfo:原始内存数据

直接读取/proc/meminfo获取最详细的内存信息:

MemTotal:        8147804 kB
MemFree:         102400 kB
MemAvailable:    5123456 kB
Buffers:          123456 kB
Cached:          2345678 kB
SwapCached:       12345 kB

5. slabtop:内核内存分配

使用slabtop -o查看内核slab分配器缓存的内存:

OBJS  ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME
12000   95%    0    32K    400     30     12MB ext4_inode_cache

最佳实践建议

  1. 生产环境建议使用watch -n 2 free -h实现定期监控
  2. 内存泄漏排查时组合使用pmap -x [PID]valgrind
  3. 设置sar -r进行长期内存使用趋势记录

通过掌握这些命令的组合使用,您将能全面诊断Linux系统的内存健康状况,及时发现内存泄漏、交换过度等问题,确保系统稳定运行。


标签:
  • Linux内存管理
  • free命令
  • 内存监控
  • 莱卡云