Linux 修改swap虚拟内存大小


​ swap是内存的交换区;换句话说,如果内存不够用了,那么系统会在硬盘上存储一些内存中不常用的数据,之后将这部分数据在存储中析构掉;这样内存就又有剩余空间可以运行东东啦,这个过程也就是所谓的交换,存储数据的硬盘部分就是swap分区。 装系统的时候可能会将swap大小设置的不合适 但是swap的大小不正确,很影响服务器的性能。下面说说怎么修改swap分区的大小。

1、查看系统Swap空间使用

1
2
3
4
5
[root@localhost mapper]# free -m
total used free shared buffers cached
Mem: 1006 753 252 3 32 526
-/+ buffers/cache: 195 810
Swap: 100 0 100

2、创建swap文件

1
2
3
4
5
6
7
8
9
[root@localhost mapper]# cd /usr
[root@localhost usr]# mkdir swap
[root@localhost usr]# cd swap
[root@localhost swap]# ll
总用量 0
[root@localhost swap]# dd if=/dev/zero of=/usr/swap/swapfile1 bs=1024 count=1000000
记录了1000000+0 的读入
记录了1000000+0 的写出
1024000000字节(1.0 GB)已复制,5.40277 秒,190 MB/秒

(注意:if 表示 infile,of 表示outfile,bs=1024 表示写入的每个块的大小为1024B=1KB(1024B字节=1024*8bit位)

3、查看创建文件的大小

1
2
[root@localhost swap]# du -sh /usr/swap/swapfile1
977M /usr/swap/swapfile1

4、将目标文件设置为swap分区文件

1
2
3
[root@localhost swap]# mkswap /usr/swap/swapfile1
Setting up swapspace version 1, size = 999996 KiB
no label, UUID=7eec8e34-e5d9-48f7-aa71-028268a48e46

5、激活swap,立即启用交换分区文件

1
[root@localhost swap]# swapon /usr/swap/swapfile1

6、若要想使开机时自启用,则需修改文件/etc/fstab中的swap行

1
2
3
[root@localhost swap]# vi /etc/fstab
/usr/swap/swapfile1 swap swap defaults 0 0
#加入此行,重启系统。

7、回收swap空间

如果不再使用,可以卸载该swap空间

1
swapoff /var/swap

8、从文件系统中回收

1
rm -rf /var/swap

9、查看某个进程使用的虚拟内存大小

1
2
cat /proc/26080/stat  | awk -F" " '{print "virt:"$23}'
cat /proc/26080/stat | awk -F" " '{print "rss:"$24}'

ps aux:

其中 VSZ(或VSS)列 表示,程序占用了多少虚拟内存。

​ RSS列 表示, 程序占用了多少物理内存。

​ 虚拟内存可以不用考虑,它并不占用实际物理内存。

(2). top 命令也可以

其中 VIRT(或VSS)列 表示,程序占用了多少虚拟内存。 同 ps aux 中的 VSZ列

​ RES列 表示, 程序占用了多少物理内存。同 ps aux 中的RSS列