### [VPS内存不够了加swap?SWAP配置、大小和性能代价说明](https://www.jiyueip.com/article/13622) **Published:** 2026-07-30T10:03:50 **Author:** 斑斓助理 **Excerpt:** 1GB内存的VPS跑MySQL+PHP+Nginx,内存用满只是时间问题。加SWAP(虚拟内存)能让系统在内存不够时用磁盘当临时内存用。但它不是免费午餐——SSD的读写速度比内存慢几十倍,SWAP用多了系统卡成狗。 什么时候该加SWAP S 1GB内存的VPS跑MySQL+PHP+Nginx,内存用满只是时间问题。加SWAP(虚拟内存)能让系统在内存不够时用磁盘当临时内存用。但它不是免费午餐——SSD的读写速度比内存慢几十倍,SWAP用多了系统卡成狗。 ## 什么时候该加SWAP SWAP是保险绳不是扩展内存。当你偶尔内存峰值高出物理内存一点点(比如编译代码、定时任务跑备份脚本),SWAP帮你兜住不让OOM Killer杀进程。当你日常内存占用就超过物理内存,SWAP救不了——大量SWAP读写会让性能雪崩。 ``` # 看当前SWAP使用情况 free -h swapon --show ``` 如果swapon显示已经有SWAP但free里SWAP used很少——够用了不用加。如果free里SWAP used接近SWAP total——该想办法增加物理内存或优化应用,SWAP加到上限也没用。 ## 创建SWAP文件 ``` # 创建一个2GB的SWAP文件 fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile # 持久化(重启后还在) echo '/swapfile none swap sw 0 0' >> /etc/fstab # 验证 free -h swapon --show ``` 雨云入门VPS 1核1G内存,加1-2GB SWAP合理。优惠码 **admin01** 首月五折。 ## SWAP设多大合适 | VPS内存 | 建议SWAP大小 | | --- | --- | | 512MB | 1-2GB | | 1GB | 1-2GB | | 2GB | 2GB | | 4GB及以上 | 2-4GB | 过时的”SWAP=2倍物理内存”规则不适用了。SWAP太大没意义——用满了系统也基本不可用了。 ## 控制SWAP使用倾向 Linux有个swappiness参数控制系统使用SWAP的倾向——0(尽量不用SWAP)到100(积极用SWAP)。默认60。VPS建议设10-20: ``` echo 'vm.swappiness=15' >> /etc/sysctl.conf sysctl -p # 验证 cat /proc/sys/vm/swappiness ``` swappiness=15的意思是系统在内存使用85%以上才开始用SWAP。你不会因为系统”过早”用到SWAP而体验卡顿。 ## SWAP vs 加物理内存 SWAP免费但慢(磁盘IO是内存的1/100)。物理内存月付几元但快。能加物理内存优先加——比如雨云从1G升到2G内存月费加几元。实在不能加再用SWAP兜底。 ## 常见问题 ### 加了SWAP后MySQL性能暴跌? innodb\_buffer\_pool\_size可能设得太大导致频繁SWAP。buffer\_pool+应用内存总需求超过了物理内存。调小buffer\_pool让总内存需求在物理内存范围内。 ### 删掉SWAP文件怎么操作? swapoff /swapfile → rm /swapfile → 从/etc/fstab里删对应行。确认free -h里SWAP total变0。 ### SWAP文件比SWAP分区好吗? VPS上建议用SWAP文件——灵活、随时创建删除、不用重启。SWAP分区需要预先分配磁盘空间。性能差异可以忽略。 **Tags:** VPS性能, 云服务器, 网站运维 **Categories:** 行业洞察 ---