swap 什么时候使用

在Linux里面,swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间

swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面

两个极端,对于 CentOS默认为0,Ubuntu的默认为60,建议修改为10。

具体这样做:

  1. 查看你的系统里面的 swappiness cat /proc/sys/vm/swappiness

不出意外的话,你应该看到是0

  1. 修改swappiness值为10 sudo sysctl vm.swappiness=10

但是这只是临时性的修改,在你重启系统后会恢复默认的值,所以,还要做一步: vi /etc/sysctl.conf

在这个文档的最后加上这样一行: vm.swappiness = 10

然后保存,这样重启之后配置也不会失效

#查看swap当前状态:
 cat /proc/swaps

# dd if=/dev/zero of=/var/swap bs=1024 count=2048000


#通过dd命令增加swap
[root@aliyunsds var]# dd if=/dev/zero of=/var/swap bs=1024 count=2048000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 6.1788 s, 339 MB/s

[root@aliyunsds var]# ls
adm  cache  crash  db  empty  games  gopher  kerberos  lib  local  lock  log  mail  nis  opt  preserve  run  spool  swap  tmp  yp
# 创建swap文件
[root@aliyunsds var]# mkswap /var/swap
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=e3854dda-b929-4ff2-a7b1-bfc516ad08e9
 
[root@aliyunsds var]# mkswap -f /var/swap
mkswap: /var/swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=7cc46860-74dc-4d60-893f-1933f670d709
# 加载该文件:
[root@aliyunsds var]# swapon /var/swap
swapon: /var/swap: insecure permissions 0644, 0600 suggested.
# 看看swap是否生效
[root@aliyunsds var]# free -h
              total        used        free      shared  buff/cache   available
Mem:            31G        279M         27G        544K        3.6G         30G
Swap:          2.0G          0B        2.0G

# 添加至/etc/fstab

# 在文本的最后添加
/var/swap swap swap defaults 0 0

[root@mysql01 var]# vim /etc/fstab

#
# /etc/fstab
# Created by anaconda on Tue Sep 23 17:58:53 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=98f4128a-2ac6-4822-8624-300c4d818afc /                       ext4    defaults        1 1
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/var/swap               swap                    swap    defaults        0 0

# 如果不再需要swap,可以清理该分区:
[root@mysql01 var]# swapoff /var/swap

#添加至/etc/fstab1vim /etc/fstab

 

 
 
swapoff /var/swap