本文转自:https://www.yunloc.com/
Linux 系统的Swap 分区,即交换分区,通常也称为虚拟内存,Swap 空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到 Swap 空间中,等到那些程序要运行时,再从 Swap 中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行 Swap 交换。其实,Swap 的调整对 Linux 服务器,特别是 Web 服务器的性能至关重要。通过调整 Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
设置交换分区(swap)
以CentOS7 为例,其它 Linux 系统方法也差不多,先用 dd 命令创建一个 1024M 的分区
- dd if=/dev/zero of=/swap bs=1M count=1024
然后进行格式化
- mkswap /swap
启用虚拟内存
- swapon /swap
设置开机启动需要修改/etc/fstab 文件,增加如下一行
- /swap none swap default 0 0
或者直接执行命令
- echo “/swap none swap default 0 0” >> /etc/fstab
通过上面简单的几个命令,我们已经设置了一个 1024M 的交换分区(虚拟内存)。
其它命令
查看当前内存使用情况
- free –mt
查看当前交换分区路径
- swapon –s
关闭虚拟内存,改成自己交换分区路径
- swapoff /swap
开启虚拟内存,改成自己交换分区路径
- swapon /swap
总结
如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果 Swap 空间用光了,那么系统就会发生错误。例如,Swap 空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此 Swap 空间的分配是很重要的,通常 Swap 空间的大小应是物理内存的 2-2.5 倍。
在正式的生产环境中,建议设置交换分区(swap)来提高系统和业务稳定性,当然交换分区不是万能的,若长期内存不足,建议还是增加物理内存为好。