知识问答
SWAP是什么?SWAP有什么用?SWAP怎么用?
写这个帖子的原因是有网友在广告中国论坛问怎么样才能删除掉 VPS 的SWAP 分区,大伟哥借机会在这里对VPS新手和站长管理员做个有关LinuxSWAP 的基础小科普,是给新手看的,高深的东西大伟哥是真的不会。
一、什么是 SWAP?SWAP 有什么用?swap 是类 Unix 操作系统下虚拟内存技术的实现。简单地说,swap 文件或者 swap 分区(交换区)就是把一部分硬盘空间拿出来,模拟成备用的内存给 linux 使用。Linux 系统在运行中会把内存中暂时用不到的部分数据放在 swap 分区中保存,把宝贵的内存资源分配给其他更加需要内存的程序使用。
合理地配置和使用 swap,可以让 Linux 在有限的硬件配置下完成更多的处理任务。另外,有了 swap 的缓冲,还可以避免 linux 系统做出一些过激的保护机制(OOM),在内存不够用的情况下***死某些虽然占用内存很多但却非常重要的服务进程,比如mysql数据库服务。作为一台网站服务器,底层的数据库进程没有了,web server 即使还在运行,取不到数据又有什么用呢?所以有些主机商比如 Linode 会在管理面板里直接提供相应的功能,让你很方便地创建 swap 分区。
然而,swap 毕竟是硬盘虚拟出来的假的内存,比起物理内存的读取速度来肯定是非常渣的,同时,如果频繁地在内存和 swap 之间进行 IO 操作,也会带来额外的系统开销。因此过多的依赖 swap 分区,可能会拖慢系统的性能。这也是为什么有些主机商比如阿里云不推荐你使用 swap 的原因(你可以加钱升级到更大内存的套餐啊亲)。
大伟哥个人认为,在目前云服务器内存还不是很大的情况下,swap 还是需要使用的,至少大伟哥自己就碰到过因为数据库进程被强行 kill 引起的网站崩溃问题。如果怕占用太多硬盘空间,你可以把 swap 设置小一点。另外,为了让系统尽量少使用 swap 而多使用物理内存,还可以通过调低 swappiness 参数来实现。
二、如何使用 SWAP?使用 swap 有两种方式,一种是创建 SWAP 分区即交换分区,另一种是使用 swap 文件。
以前有一种说法是 swap 分区比 swap 文件在速度上要快一些,但是在 linux 内核 2.6.x 及以后版本,这两种方法在性能和速度上其实很接近了,特别是 swap 文件是连续存放在硬盘里的情况下。而且 swap 文件比 swap 分区更灵活,可以放在硬盘的任何目录下,并且随时调整大小。基于这两种不同方式各自的优缺点,你可以根据实际情况选择使用哪种方式。
1、可以使用 swap -s 命令查看 swap 设置的情况。
daweibro@aliyun:~$swapon-sFilenameTypeSizeUsedPriority/var/swapfile20971480-1上面是大伟哥阿里云 ECS 的情况,说明 swap 是文件的形式,大小是 2 GB 左右,文件位于/var/目录下面。
daweibro@Workstation:~$swapon-sFilenameTypeSizeUsedPriority/dev/dm-2partition39997400-1上面是大伟哥工作用电脑的情况,这里 swap 是独立分区的形式,大小 4GB 左右。
2、使用 top 或者 free -m 命令可以查看当前内存和 swap 具体的使用情况。这里我们以 free -m 为例:
daweibro@aliyun:~$free-mtotalusedfreesharedbufferscachedMem:99287511665101370-/+buffers/cache:404588Swap:204702047 swap是什么意思上一篇:刷网课平台