专栏名称: 黑白之道
黑白之道,普及网络安全知识!
51好读  ›  专栏  ›  黑白之道

Linux添加SWAP 交换内存虚拟内存的方法

黑白之道  · 公众号  · 互联网安全  · 2017-10-12 10:40

正文


Hello,大家好,我是Lionel。今天给大家带来一个教程。LinuxSWAP交换内存/虚拟内存的方法。


有些人会问了,这个教程有什么用,现在内存一般都是4G起步。


我想说,如果你需求用不到4G,你用1G内存就够,看了我的教程,你可能去找一个512MB的。这样会性价比更高,又能达到原有的目的。岂不是美滋滋?


什么是SWAP?


Linux的内存分为 物理内存 和 虚拟内存,虚拟内存(SWAP)也叫交换区、交换分区等。当运行程序,产生进程时。系统会判断当前物理内存是否还有空闲内存 以允许进程调入内存运行,如果有那么 则直接调入内存进行运行;如果没有,那么会根据优先级选择一个进程挂起,把该进程交换到SWAP中等待,然后把新的进程调入到内存中运行。根据这种换入和换出,实现了内存的循环利用,让用户感觉不到内存的限制。从这也可以看出SWAP扮演了一个非常重要的角色,就是暂存被换出的进程。当物理内存使用完或者达到一定比例之后,系统会自动使用SWAP做临时的内存使用。当物理内存和SWAP都被使用完那么就会出错:out of memory


对于使用多大比例物理内存之后开始使用SWAP,在系统的配置文件中可以通过调整参数进行修改。


cat /proc/sys/vm/swappiness


默认是 60 ,一般不需要更改,当数值为 0 的时候,就会尽量使用物理内存直到用完才会使用SWAP,当数值为100 的时候,就会尽量使用SWAP。SWAP是从硬盘中虚拟出来的,所以速度由硬盘的读写速度决定,如果你的Linux服务器IO很低,硬盘是 HDD或者石头盘钻石盘,那么效果会很差。如果你的VPS没有SWAP,那么添加一些可能会提高性能,但不建议添加太多,否则也是浪费,而且SWAP始终是硬盘虚拟的,比不上物理内存。


开始操作


购买VPS要看供应商供应的是什么架构的。本教程只支持KVM XEN VMWARE的VPS。


1.进入root权限(不会进的同学请看之前的教程,都有写过)

2.df –m          ##查看硬盘大小。



可以看到我的硬盘还有23G的可用空间,足够了。


3.free –m    ##查看SWAP大小



可以看到,我这个是1G的内存


这里拿256MB的内存做例子。


dd if=/dev/zero of=/var/swapfile1bs=1024 count=512000

//////////////////////////////////////////////////////////////////////////////////////////////

//[email protected]:~# ddif=/dev/zero of=/var/swapfile1 bs=1024 count=512000/

//512000 0 records in                                                                                 /


//512000 0 records out                                                                               /

//524288000 bytes (524 MB) copied,4.09314 s, 128 MB/s                               /


//////////////////////////////////////////////////////////////////////////////////////////////


查看文件是否创建成功,大小是否正确(因为按1000计算,所以会不足512MB)

du -ah /var|grep "swapfile1"

/////////////////////////////////////////////////////////////

/[email protected]:~# du -ah/var|grep "swapfile1"     /

/501M         /var/swapfile1                                    /

/////////////////////////////////////////////////////////////


4.建立 SWAP文件

mkswap /var/swapfile1


[email protected]:~# mkswap /var/swapfile1

Setting up swapspace version 1, size = 511996KiB

no label, UUID=c48fef60-7d49-450c-bfd1-7a7826de7cdd


5.启用 SWAP文件

swapon /var/swapfile1


6.开机启动加载

echo "/var/swapfile1 swap swapdefaults 0 0" >> /etc/fstab

取消 SWAP文件

swapoff /var/swapfile1

取消开机启动加载

sed -i "/swapfile1/d" /etc/fstab

取消后,可以再 free -m 查看一下SWAP,确定取消了,那么就可以删除 SWAP文件了。

删除 SWAP文件

rm -rf /var/swapfile1

你会喜欢


Linux下的系统查找(上)

Linux下的系统查找(下)

linux web环境的奥义