概念:
linux 的swap相当于windows的虚拟内存,当物理内存不能够满足系统和进程的运作时,就会用到swap,另外有些程序会在它们初始化时残留的极少再用到得内存页内容转移到swap空间,以减少物理内存空间的使用,分配太多的swap空间会浪费磁盘空间,而swap太少,则系统会发生错误,如果系统的物理内存用光了,系统运行会很慢,而如果swap空间用光了,系统会直接报错
虚拟内存参数
vm.swappiness
vm.swappiness是Linux内核的一个参数,范围是0~100。它表示实际内存和虚拟内存区域进行数据交换的倾向性大小,数值越大表示倾向性越大,即交换的页面文件越多,反之亦然,一般默认值为60
查看swappiness值
cat /proc/sys/vm/swappiness
或者
sysctl vm.swappiness
改变swapiness的值
sysctl vm.swappiness=40
如果想永久得改变这一值,需要更改 sysctl.conf 文件
vim /etc/sysctl.conf 添加:vm.swappiness=40
创建虚拟内存
- 内存占用情况
free -m
total used free shared buffers cachedMem: 2006 1886 119 31 33 574-/+ buffers/cache: 1278 727Swap: 0 0 0
- 通过dd命令增加swap,增加一个2g的swap空间
dd if=/dev/zero of=/var/swap bs=1024 count=2048000
- 创建swap文件
mkswap /var/swap
mkswap: /var/swap: warning: don't erase bootbits sectors on whole disk. Use -f to force.Setting up swapspace version 1, size = 2047996 KiBno label, UUID=98eb8741-a401-4611-8985-3e5d5ec40cfe
mkswap -f /var/swap
Setting up swapspace version 1, size = 2047996 KiBno label, UUID=165dc9d8-9be9-4da7-a3b6-76922f4b6446
- 加载该文件
swapon /var/swap
- 看看swap是否生效
free
total used free shared buffers cachedMem: 16081 15886 194 18 3 77-/+ buffers/cache: 15804 276Swap: 6143 308 5835
- 查看swap当前状态:
cat /proc/swaps
Filename Type Size Used Priority/var/swap file 2047996 0 -1
- 添加至/etc/fstab , vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Aug 24 12:21:20 2017
#
# 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=1ae5f12f-79c1-47d4-bed7-941ab9385396 / 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,可以清理该分区:
swapoff /var/swap