在Linux系统中,物理内存(Physical Memory)是指计算机实际安装的硬件内存(RAM),它是CPU直接访问的、用于临时存储数据和指令的高速存储介质。以下是详细解析:
Linux通过内存管理子系统将物理内存划分为多个层级和用途: - 内核空间(Kernel Space):保留给内核代码和核心功能(如进程调度、设备驱动)。 - 用户空间(User Space):分配给应用程序使用,通过页表(Page Tables)映射到虚拟内存。
free -h
显示总物理内存、已用、空闲及缓存/缓冲区的内存(-h
以人类可读格式输出)。
$ free -h
total used free shared buff/cache available
Mem: 15Gi 5Gi 2Gi 300Mi 7Gi 9Gi
cat /proc/meminfo
查看详细内存统计(如MemTotal
对应物理内存总量)。
$ grep MemTotal /proc/meminfo
MemTotal: 16248592 kB # 约16GB物理内存
dmidecode -t memory
获取硬件内存信息(需root权限),包括插槽数量、每条内存大小等。
特性 | 物理内存(RAM) | 虚拟内存 |
---|---|---|
存储位置 | 硬件内存芯片 | 磁盘(Swap分区/文件) |
速度 | 纳秒级访问 | 毫秒级(慢于RAM 10^6倍) |
用途 | 高速运行程序 | 扩展RAM容量,防止OOM(内存耗尽) |
管理机制 | 由MMU(内存管理单元)直接管理 | 通过分页/交换技术模拟 |
内存不足(OOM):
dmesg
查看OOM日志)。缓存占用高:
Linux会利用空闲内存作磁盘缓存(buff/cache
),但应用程序需要时会自动释放,通常无需手动清理。
内存泄漏:
进程持续占用内存不释放,可通过top
、htop
或valgrind
工具检测。
numactl
命令可管理)。通过以上内容,您可以全面理解Linux物理内存的硬件本质、管理机制及实际操作方法。如需更深入的性能调优,可进一步学习vmstat
、sar
等监控工具。