swap 分区的简单介绍
-
Swap 空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到 Swap 空间中,等到那些程序要运行时,再从 Swap 中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行 Swap 交换。其实,Swap 的调整对 Linux 服务器,特别是 Web 服务器的性能至关重要。通过调整 Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
-
例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少要打开一个文件,那就是运行程序本身),当需要将这些程序的内存空间交换出去时,就没有必要将文件部分的数据放到 Swap 空间中了,而可以直接将其放到文件里去。如果是读文件操作,那么内存数据被直接释放,不需要交换出来,因为下次需要时,可直接从文件系统恢复;如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用 malloc 和 new 函数生成的对象的数据则不同,它们需要 Swap 空间,因为它们在文件系统中没有相应的“储备”文件,因此被称作“匿名”(Anonymous)内存数据。这类数据还包括堆栈中的一些状态和变量数据等。所以说,Swap 空间是“匿名”数据的交换空间。
-
此外,Swap 分区的数量对性能也有很大的影响。因为 Swap 交换的操作是磁盘 IO 的操作,如果有多个 Swap 交换区,Swap 空间的分配会以轮流的方式操作于所有的 Swap,这样会大大均衡 IO 的负载,加快 Swap 交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。用性能监视工具就会发现,此时的 CPU 并不很忙,而系统却慢。这说明,瓶颈在 IO 上,依靠提高 CPU 的速度是解决不了问题的。
一、Linux 下察看 swap 分区大小的命令
top
或者 fdisk -l
或者 free -m
SWAP 分区一般大小为物理内存的 2 倍,但最大不超过 2G;
二、增加 swap 分区
增加 SWAP 空间的方法有两个:增加另外一个 SWAP 分区,或通过创建一个 SWAP 文件来实现。
1.增加一个 SWAP 分区:
1)创建一个 SWAP 分区: fdisk -l /dev/cciss/c0d0 (m---p ---n --t (将分区格式转换成 82)--w)(如/dev/cciss/c0d0p6)
2)格式化分区:mkswap -c v1 /dev/cciss/c0d06;
3)修改/etc/fstab 文件,增加
/dev/cciss/c0d0p6 swap swap default 0 0
4)激活 swap 分区:swapon -a /dev/cciss/c0d0p6;
5) 查看 swap 分区:swapon -s 或 free 或 cat /proc/swaps
2.增加一个 SWAP 文件;
1)dd if=/dev/zero of=/tmp/tmp.swap bs=1M count =100;( 建立一个 100M 的文件);
2)mkswap /tmp/tmp.swap; (标识为 SWAP 文件)
3)swapon /tmp/tmp.swap;(激活 SWAP 文件)
4)修改/etc/fstab 文件,增加以下内容:
/tmp/tmp.swap swap swap default 0 0
5)swapon -s 或 free 或 cat /proc/swaps 查看。
三、删除 SWAP 分区:
1) swapoff /dev/cciss/c0d0p6;
2) 修改/etc/fstab 文件。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于