最近用到一台服务器,2core 4g, 内存小,而且还关闭了swap,应用跑起来几分钟就会因为占用太多物理内存被kill掉。
修改swap配置的操作也比较简单,记录一下。
[size=large]1. 创建swap文件并激活[/size]
内存很大的情况下,可以考虑关掉swap,减少磁盘io提升系统性能。
但是内存较小,不够用的情况下,还是打开swap提升系统稳定性更重要。
如何确定swap文件的大小,这个很难量化,swap需要磁盘io,对性能有很大影响,推荐swap文件大小不超过2g,内存特别小的情况下,可以设置为内存的2倍。
[size=large]2. 设置开机自动引导[/size]
[size=large]3. 关闭swap文件[/size]
修改swap配置的操作也比较简单,记录一下。
[size=large]1. 创建swap文件并激活[/size]
$cd /var
# count表示大小,以字节为单位,这里创建了2g的文件
# 这个命令有点耗时
$sudo dd if=/dev/zero of=swapfile bs=1024 count=2000000
# 创建swap文件
$sudo /sbin/mkswap swapfile
# 激活swap文件
$sudo /sbin/swapon swapfile
# 检查swap是否正确,输出结果与下面的类似,则表示成功
$sudo /sbin/swapon -s
Filename Type Size Used Priority
/var/swapfile file 1999992 764088 -1
# 还可以通过top命令查看,swap行不全是0,即表示swap激活成功
$top
...
Mem: 4053948k total, 4026248k used, 27700k free, 2552k buffers
Swap: 1999992k total, 929204k used, 1070788k free, 42440k cached
....
内存很大的情况下,可以考虑关掉swap,减少磁盘io提升系统性能。
但是内存较小,不够用的情况下,还是打开swap提升系统稳定性更重要。
如何确定swap文件的大小,这个很难量化,swap需要磁盘io,对性能有很大影响,推荐swap文件大小不超过2g,内存特别小的情况下,可以设置为内存的2倍。
[size=large]2. 设置开机自动引导[/size]
# 编辑fstab
$sudo vi /etc/fstab
# 在最后一行添加以下行
/var/swapfile swap swap defaults 0 0
# 重启
$reboot
[size=large]3. 关闭swap文件[/size]
# 关闭正在使用的swap文件,这个命令需要等待所有swapfile中的内容全部刷到内存中才会执行完毕,需要等待一段时间
$sudo /sbin/swapoff /var/swapfile
# 如果需要调整swap文件的位置、大小,可以先关闭swap以后,再重新按1, 2步设置一次