首页/新闻资讯/正文详情

Linux Swap机制详解:从原理到实践优化

发布时间:2026/11/10 14:05:20 来源:云帆数科 栏目:资讯中心
Linux Swap机制详解:从原理到实践优化
1. 理解Linux系统中的Swap机制在Linux系统中Swap空间交换分区是当物理内存RAM不足时系统将部分内存数据临时存储到磁盘上的特殊区域。这种机制通过扩展可用内存容量防止系统因内存耗尽而崩溃。Swap可以是一个独立的分区也可以是一个文件形式存在后者就是我们常说的swapfile。我第一次接触swapfile是在一台云服务器上当时物理内存只有1GB跑几个服务就频繁触发OOMOut Of Memory杀手。通过添加swapfile系统稳定性立刻得到了显著改善。不过swapfile用起来也有些讲究处理不当反而会影响性能。2. Swap文件的创建与管理2.1 创建Swap文件的最佳实践创建一个有效的swapfile需要考虑以下几个关键因素大小选择传统建议是物理内存的1-2倍但在现代大内存环境下需要重新考量。我的经验是内存≤4GB1.5-2倍内存内存4-16GB等于内存大小内存16GB8-16GB足够文件位置应该放在高性能存储设备上。在SSD上性能损失较小机械硬盘上则要谨慎使用。避免放在网络存储或USB设备上。创建swapfile的具体命令如下# 创建4GB大小的swapfilecount4096表示4096个1MB块 sudo fallocate -l 4G /swapfile # 设置正确的权限 sudo chmod 600 /swapfile # 格式化为swap sudo mkswap /swapfile # 启用swapfile sudo swapon /swapfile重要提示使用fallocate创建的文件在某些文件系统如ext4上可能有问题。如果遇到swapon: /swapfile: swapon failed: Invalid argument错误改用dd命令sudo dd if/dev/zero of/swapfile bs1M count40962.2 永久化Swap配置要使swapfile在重启后依然有效需要编辑/etc/fstab文件/swapfile none swap sw 0 0我建议在修改fstab后先执行sudo swapoff /swapfile再sudo swapon /swapfile测试配置是否正确避免系统无法启动。3. Swap的优化与调优3.1 关键内核参数调整Linux有几个与swap相关的内核参数值得关注swappiness/proc/sys/vm/swappiness默认值60范围0-100值越高系统越积极使用swap对于数据库服务器建议设为10-30桌面环境可以保持默认或略高调整方法# 临时设置 sudo sysctl vm.swappiness30 # 永久生效 echo vm.swappiness30 | sudo tee -a /etc/sysctl.confvfs_cache_pressure/proc/sys/vm/vfs_cache_pressure控制内核回收用于目录和inode缓存的内存倾向默认值100降低到50-70可以减少swap使用3.2 多Swap文件的管理系统可以同时使用多个swap空间分区或文件。查看当前swap使用情况sudo swapon --show添加额外swapfile时可以为每个文件设置不同的优先级pri参数。系统会优先使用优先级高的swap空间sudo swapon -p 100 /swapfile2在/etc/fstab中设置优先级/swapfile none swap sw,pri100 0 04. Swap的监控与问题排查4.1 监控Swap使用情况几个实用的监控命令综合查看内存和swap使用free -h查看swap使用详情sudo vmstat 1 # 每秒刷新一次找出占用swap的进程sudo smem -s swap -r4.2 常见问题与解决方案问题1系统频繁使用swap导致性能下降解决方案检查swappiness值是否过高增加物理内存使用zram替代传统swap特别适合内存8GB的系统问题2swapfile被误删但仍在fstab中症状系统启动时报swap相关错误解决方法注释掉fstab中的swap行或者重新创建同名swapfile问题3服务器负载高时swap使用激增排查步骤使用top或htop查看内存使用情况用sudo slabtop检查内核slab缓存考虑优化应用程序内存使用5. 安全移除Swap文件当不再需要swapfile时正确的移除步骤是禁用swapfilesudo swapoff /swapfile从/etc/fstab中删除对应行删除文件sudo rm /swapfile警告直接删除启用的swapfile会导致系统不稳定必须先执行swapoff。6. 替代方案zRAM的使用对于内存有限的系统特别是嵌入式设备或旧电脑zRAM是比传统swap更好的选择。zRAM通过在内存中创建压缩块设备来实现swap功能避免了磁盘I/O瓶颈。启用zRAM的步骤以Ubuntu为例sudo apt install zram-config sudo systemctl restart zram-configzRAM的优点是完全在内存中操作速度极快数据压缩通常能达到2:1甚至3:1的比率减少磁盘磨损特别是SSD缺点是会占用部分CPU资源进行压缩/解压断电后内容丢失但这对于swap不是问题7. 性能对比与选择建议在我的测试环境中4核CPU8GB内存SSD对不同swap方案进行了对比方案顺序读写(MB/s)随机4K(IOPS)CPU占用适用场景无swap---内存充足的生产服务器HDD swapfile120300低最后手段尽量避免SSD swapfile4506000低通用方案zRAM150020000中内存8GB的系统选择建议服务器优先增加物理内存必要时使用SSD swapfile桌面/笔记本8GB以下内存用zRAM8GB以上可考虑SSD swapfile嵌入式设备首选zRAM8. 高级话题Swap与NUMA系统在多处理器NUMA架构的服务器上swap使用需要特别考虑。不当的配置可能导致跨NUMA节点访问显著降低性能。优化建议为每个NUMA节点创建独立的swapfile使用numactl绑定进程到特定NUMA节点监控/proc/zoneinfo中的NUMA内存状态检查NUMA状态的命令numastat -m在NUMA系统上我通常会为每个节点创建相同大小的swapfile并确保关键进程绑定到正确的节点。

相关推荐

NeuS2动态场景重建实战:20秒/帧处理复杂运动序列的技术解析
NeuS2动态场景重建实战:20秒/帧处理复杂运动序列的技术解析

NeuS2动态场景重建实战:20秒/帧处理复杂运动序列的技术解析 【免费下载链接】NeuS2 [ICCV 2023] Official code for NeuS2 项目地址: https://gitcode.com/gh_mirrors/ne/NeuS2 NeuS2作为ICCV 2023的官方开源项目,是一款突破性的快速神经表面重建… · 2026/11/1 1:05:31

重庆追梦有限公司网络安全的规划与设计
重庆追梦有限公司网络安全的规划与设计

目 录 1 绪 论 1.1 研究目的及意义 1.1.1 研究目的 1.1.2 研究意义 1.2 国内外研究现状 1.2.1 国内研究现状 1.2.2国外现状 1.3 主要研究内容 1.4 论文的组织结构 2 需求分析 2.1 网络现状描述分析 2.2 需求分析 2.2.1 网络结构设计需求 2.2.2 防… · 2026/10/29 0:30:01

基于SpringBoot的人事管理系统的设计与实现
基于SpringBoot的人事管理系统的设计与实现

目 录 第1章 引言 1.1 研究背景与意义 1.1.1 研究背景 1.1.2 研究意义 1.2 研究内容与方法 1.2.1 研究内容 1.2.2 研究方法 1.3 国内外研究现状 1.3.1 国内研究现状 1.3.2 国外研究现状 第2章 开发工具和技术 2.1 Tomcat服务器 2.2 Jav… · 2026/11/2 9:36:05

湛江a2电工证怎么考?真实经历告诉你,学历不高也能报名
湛江a2电工证怎么考?真实经历告诉你,学历不高也能报名

湛江a2电工证怎么考?真实经历告诉你,学历不高也能报名 我以前在工地上干电工,天天接线、拆线、检查设备,可就是没个正式证书,心里老是不踏实。后来听说湛江a2电工证是国家强制要求的,我赶紧去打听怎么考,结果发现很多人跟我一样,… · 2026/11/10 14:05:19

工地太忙根本没时间复习考试?彬县电工证报名2026河南最新政策来了
工地太忙根本没时间复习考试?彬县电工证报名2026河南最新政策来了

工地太忙根本没时间复习考试?彬县电工证报名2026河南最新政策来了 工地太忙根本没时间复习考试,你不是一个人。尤其是在2026年河南最新政策下, 彬县电工证报名… · 2026/11/10 14:05:19

建筑电工证是哪里发报名费多少钱
建筑电工证是哪里发报名费多少钱

低学历也能考建筑电工证?真实经历告诉你答案 学历不高怕报不上名?别急,我来给你说说【建筑电工证是哪里发】的真相,看看别人怎么靠这个证翻身的。 建筑电工证到底是谁发的?河南老哥的真实经历… · 2026/11/10 14:05:19

南平市电工证真伪查询怎么操作?全国通用的证书还能用多久?
南平市电工证真伪查询怎么操作?全国通用的证书还能用多久?

南平市电工证真伪查询怎么操作?全国通用的证书还能用多久? 证书过期了不知道怎么复审延期?别慌,南平市电工证真伪查询其实并不复杂,但很多人因为不了解流程和政策,导致证书失效后才意识到问题。特别是现在, 全国通用… · 2026/11/10 14:05:19

电工证可以在哪里考千万别踩坑 老电工教你避坑不花冤枉钱
电工证可以在哪里考千万别踩坑 老电工教你避坑不花冤枉钱

电工证可以在哪里考千万别踩坑 老电工教你避坑不花冤枉钱 怕考不过白交培训费?别再被那些“包过班”忽悠了,电工证考试没那么简单。现在很多人找培训机构报名,结果花了几千块,培训几天就匆匆考试,最后还是挂科,还得重交钱重报班。 千万别踩坑… · 2026/11/10 14:05:19

湛江a2电工证丢了千万别踩坑 这些补办细节90%的人都不知道
湛江a2电工证丢了千万别踩坑 这些补办细节90%的人都不知道

湛江a2电工证丢了千万别踩坑 这些补办细节90%的人都不知道 证书过期了不知道怎么复审延期?千万别踩坑,湛江a2电工证丢了补办流程复杂,一不留神就可能影响你的工作甚至收入。作为在应急管理部门从业多年的“老江湖”,我见过太多人因为证书问题耽误… · 2026/11/10 14:04:18

电工证丢失还能补吗?千万别踩坑,丢了证等于失业
电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/10 2:16:10

电力电缆作业证直播报名入口与办理流程良心建议
电力电缆作业证直播报名入口与办理流程良心建议

电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/9 3:11:26

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/9 5:24:17

丹寨电工证怎么考?内部消息透露报考条件和流程
丹寨电工证怎么考?内部消息透露报考条件和流程

丹寨电工证怎么考?内部消息透露报考条件和流程 急需特种作业证才能上岗找工作,这是很多电工朋友最真实的焦虑。尤其是像丹寨电工证这样的证书,直接影响你的职业发展和薪资待遇。但你知道吗?很多人都在报考过程中踩坑,有的甚至花了几千块最后白忙一场。今… · 2026/11/10 0:00:13

成都建筑电工证办理郑州报考避坑指南
成都建筑电工证办理郑州报考避坑指南

成都建筑电工证办理郑州报考避坑指南 证书过期了不知道怎么复审延期?别慌!这篇文章手把手带你解决成都建筑电工证办理的难题,顺便避掉郑州报考的那些坑。不管你是刚拿到证的新手,还是准备复审的老电工,这波干货都别错过。… · 2026/11/10 0:00:13

梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程
梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程

梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程 你是不是正为梅州低压电工证发愁?不知道去哪报名,怕被中介骗钱,又担心证书是不是全国通用?其实,这些顾虑都是正常人会有的。今天我就从一个在开封房建工程一线干了几年的电工角度,手把手教你… · 2026/11/10 0:00:13

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:23:35

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:23:58

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:25:08

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码