一.简介:
Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
二.查看swap分区大小:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@node1 ~]
# free
total used
free
shared buffers cached
Mem: 1906256 158332 1747924 168 6164 44048
-/+ buffers
/cache
: 108120 1798136
Swap: 2097148 0 2097148
[root@node1 ~]
# free -m
total used
free
shared buffers cached
Mem: 1861 154 1706 0 6 43
-/+ buffers
/cache
: 105 1755
Swap: 2047 0 2047
[root@node1 ~]
# swapon -s
Filename Type Size Used Priority
/dev/dm-1
partition 2097148 0 -1
|
三.释放swap空间:
先关闭swap分区,然后再次打开swap分区。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
1.查看swap分区信息
[root@node1 ~]
# free -m
total used
free
shared buffers cached
Mem: 1861 154 1706 0 6 43
-/+ buffers
/cache
: 105 1756
Swap: 2047 0 2047
[root@node1 ~]
# swapon -s
Filename Type Size Used Priority
/dev/dm-1
partition 2097148 0 -1
2.关闭swap分区
[root@node1 ~]
# swapoff /dev/dm-1
3.检查swap分区
[root@node1 ~]
# free -m
total used
free
shared buffers cached
Mem: 1861 153 1707 0 6 43
-/+ buffers
/cache
: 104 1757
Swap: 0 0 0
4.开启swap分区
[root@node1 ~]
# swapon /dev/dm-1
[root@node1 ~]
# free -m
total used
free
shared buffers cached
Mem: 1861 155 1706 0 6 43
-/+ buffers
/cache
: 105 1755
Swap: 2047 0 2047
|
四.修改参数swappiness
系统在什么情况或条件下才会使用Swap分区的空间呢? 其实是Linux通过一个参数swappiness来控制的。这个参数值可为 0-100,控制系统 swap 的使用程度。高数值可优先系统性能,在进程不活跃时主动将其转换出物理内存。低数值可优先互动性并尽量避免将进程转换处物理内存,并降低反应延迟。默认值为 60。
1
2
3
4
5
6
7
8
9
10
11
12
|
临时修改1:
[root@node1 ~]
# more /proc/sys/vm/swappiness
60
[root@node1 ~]
# echo 10 > /proc/sys/vm/swappiness
[root@node1 ~]
# more /proc/sys/vm/swappiness
10
临时修改2:
sysctl vm.swappiness=10
永久修改:
echo
'vm.swappiness=10'
>>
/etc/sysctl
.conf 重启系统后生效。
|
五.调整swap分区大小
方法1:如果是swap是逻辑卷
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[root@node1 ~]
# ll /dev/mapper/
total 0
crw-rw---- 1 root root 10, 58 Oct 13 09:49 control
lrwxrwxrwx 1 root root 7 Oct 13 09:50 vg_node1-lv_root -> ..
/dm-0
lrwxrwxrwx 1 root root 7 Oct 13 10:09 vg_node1-lv_swap -> ..
/dm-1
[root@node1 ~]
# swapon -s
Filename Type Size Used Priority
/dev/dm-1
partition 2097148 0 -1
1.关闭Swap交换分区
swapoff
/dev/dm-1
或者swapoff
/dev/mapper/vg_node1-lv_swap
2.如果vg有空余空间,则采用lvextend扩容方式
lvextend -L 3G
/dev/mapper/vg_node1-lv_swap
3.格式化:
mkswap
/dev/mapper/vg_node1-lv_swap
4.启动swap分区
swapon
/dev/mapper/vg_node1-lv_swap
5.添加到开机自启
cat
/etc/fstab
默认系统已经自动挂载
/dev/mapper/vg_node1-lv_root
/ ext4 defaults 1 1
|
方法2:文件创建swap分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
1.创建文件
/root/swap
# dd if=/dev/zero of=/root/swap bs=1024M count=8(从/分区分出8x1024M大小的空间,挂在/root/swap上)
2.格式化:
# mkswap /root/swap (格式化成swap格式)
3.启用:
# swapon /root/swap (激活/root/swap,加入到swap分区中)
如果报错,则swapon -f
/root/swap
4.添加开机自启
# vim /etc/fstab (开机自启动新添加的swap分区)
/root/swap
swap swap defaults 0 0
5.删除新增的文件只需要执行
#swapoff /root/swap
|
方法3:新增硬盘方式
1
2
3
4
5
6
7
8
9
|
1.创建分区
fdisk --n--t-(调整类型为82swap)
2.格式化成swap格式
mkswap /dev/sda3
3.启用:
swapon /dev/sda3
3.开机自启动挂载
vim /etc/fstab
/dev/sda3 swap swap defaults 0 0
|