Linux 内存管理与 Swap 空间扩展实践

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
EMR Serverless StarRocks,5000CU*H 48000GB*H
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 该文介绍了Linux系统中`free`命令的使用,解析了其输出信息,包括物理内存(总内存、已用、空闲、缓存)和交换空间(总大小、使用和空闲)。Linux优先使用物理内存作缓存,当内存紧张时使用Swap空间。文章还提供了扩展Swap空间的步骤,并强调适度Swap使用对性能的影响,建议合理平衡物理内存和Swap的比例。

在 Linux 系统中,内存管理策略偏向于高效利用物理内存,通过缓存机制提升文件读取速度和程序响应能力。本文旨在深入解读 free 命令输出的含义,并指导如何在物理内存紧张时,通过扩大 Swap 空间来缓解压力。

解析 free -m 输出

执行 free -m 命令,我们得到以下输出:

              total       used       free     shared    buffers     cached
Mem:          7918       7865         52          0         7228        143
-/+ buffers/cache:        493       7424
Swap:         4996          0          4996
  • 总览:
  • total: 物理内存总量。
  • used: 当前已分配的物理内存。
  • free: 可供新进程使用的未分配物理内存。
  • shared: 多个进程共享的内存。
  • bufferscached: 文件系统缓存,用于提升读写效率。
  • 深入理解:
  • -/+ buffers/cache: 此行展示了从应用程序视角的内存使用情况。used 表示真正被进程消耗的物理内存,free 则包含未分配的物理内存和缓存空间。
  • Swap:
  • Swap: 交换空间总量。
  • used: 当前正在使用的交换空间量。
  • free: 可用的交换空间量。

Linux 内存管理机制

Linux 优先使用物理内存,即使应用程序已关闭,仍会保留部分物理内存作为缓存,以加速后续访问速度。当物理内存接近饱和时,Linux 将开始使用 Swap 空间,通过置换机制释放物理内存。

扩展 Swap 空间

当物理内存不足以满足需求时,可以通过以下步骤增加 Swap 空间:

  1. 创建交换文件:
  2. Bash
# 使用 dd 命令创建一个交换文件,例如 64MB 的大小
dd if=/dev/zero of=/swapfile bs=1024 count=65536
  1. 格式化交换文件:
  2. Bash
# 使用 mkswap 格式化交换文件
mkswap /swapfile
  1. 启用交换文件:
  2. Bash
# 启用交换文件
swapon /swapfile
  1. 持久化设置:
  • 修改 /etc/fstab 文件,确保重启后自动启用交换文件。
  • 添加一行:/swapfile none swap defaults 0 0

性能考量

适度使用 Swap 空间不会显著降低系统性能。然而,频繁的磁盘 I/O 操作可能会导致性能瓶颈。因此,合理规划物理内存与 Swap 空间的比例至关重要。

结论

理解 free 命令的输出有助于洞察 Linux 内存管理机制。在内存资源紧张的情况下,适当增加 Swap 空间可以有效提升系统稳定性和响应速度,但应避免过度依赖 Swap,以保持良好的系统性能。


相关文章
|
6天前
|
监控 安全 Linux
Linux命令ssltap的深入解析与应用实践
`ssltap`是一个假想的Linux命令,用于模拟SSL/TLS流量分析。它捕获、解密(如果有密钥)并分析加密流量,提供实时监控、协议解析和安全审计。特点包括实时性、灵活性、可扩展性和安全性。示例用法包括捕获特定端口流量和实时监控会话状态。在实际操作中应注意私钥安全、性能影响及合规性,建议定期审计和自动化监控。
|
9天前
|
缓存 监控 关系型数据库
深入理解Linux操作系统的内存管理机制
【7月更文挑战第11天】在数字时代的浪潮中,Linux操作系统凭借其强大的功能和灵活性,成为了服务器、云计算以及嵌入式系统等领域的首选平台。内存管理作为操作系统的核心组成部分,对于系统的性能和稳定性有着至关重要的影响。本文将深入探讨Linux内存管理的基本原理、关键技术以及性能优化策略,旨在为读者提供一个全面而深入的理解视角,帮助开发者和系统管理员更好地优化和管理Linux系统。
|
8天前
|
消息中间件 Linux
【Linux】进程间通信——system V(共享内存 | 消息队列 | 信号量)(下)
【Linux】进程间通信——system V(共享内存 | 消息队列 | 信号量)(下)
24 0
|
8天前
|
消息中间件 存储 Linux
【Linux】进程间通信——system V(共享内存 | 消息队列 | 信号量)(上)
【Linux】进程间通信——system V(共享内存 | 消息队列 | 信号量)(上)
18 0
|
15天前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
Oracle 网络协议 关系型数据库
解决linux删除文件后空间没有释放问题
inux删除文件后沒有释放空间   今天发现一台服务器的home空间满了,于是要清空没用的文件,当我删除文件后,发现可用空间沒有变化   os:centos4.7 现象:   发现当前磁盘空间使用情况:   [root@ticketb ~]# df -hFilesystem            S...
1129 0
|
3天前
|
Linux Shell 开发工具
|
3天前
|
网络协议 安全 Linux
|
1天前
|
存储 安全 Ubuntu
Linux dump命令教程
绍了Linuxdump命令的功能,包括用于备份整个文件系统的全备份和增量备份,以及如何在不同Linux发行版中安装和使用dump命令。
39 16
|
6天前
|
存储 安全 Linux
Linux命令sync详解
`sync`命令在Linux中用于将内存缓冲区的数据强制写入磁盘,保证数据持久性和一致性。它在关机、重启或重要文件操作前后使用,以防数据丢失。工作原理是强制将内存中的数据同步到磁盘,特点是阻塞式执行且通常无需参数。常见用法包括安全关机、数据备份和配置文件修改后确保更改生效。应注意,过度使用可能影响性能,应适时使用`fsck`检查文件系统一致性。