使用Swap增加内存
Swap 配置对性能的影响
分配太多的 Swap 空间会浪费磁盘空间,而 Swap 空间太少,则系统会发生错误。如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果 Swap 空间用光了,那么系统就会发生错误。
例如,Web 服务器能根据不同的请求数量衍生出多个服务进程(或线程),如果 Swap 空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此 Swap 空间的分配是很重要的。
通常情况下,Swap 空间应大于或等于物理内存的大小,最小不应小于 64M,通常 Swap 空间的大小应是物理内存的 2-2.5 倍。但根据不同的应用,应有不同的配置:如果是小的桌面系统,则只需要较小的 Swap 空间,而大的服务器系统则视情况不同需要不同大小的 Swap 空间。特别是数据库服务器和 Web 服务器,随着访问量的增加,对 Swap 空间的要求也会增加,一般来说对于 4G 以下的物理内存,配置 2 倍的swap,4G 以上配置 1 倍。
另外,Swap 分区的数量对性能也有很大的影响。因为 Swap 交换的操作是磁盘 IO 的操作,如果有多个 Swap 交换区,Swap 空间的分配会以轮流的方式操作于所有的 Swap,这样会大大均衡 IO 的负载,加快 Swap 交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。用性能监视工具就会发现,此时的 CPU 并不很忙,而系统却慢。这说明,瓶颈在 IO 上,依靠提高 CPU 的速度是解决不了问题的。
配置方法
删除旧的Swap目录
- 一般情况下配置在根目录下

free -m可以查看Swap分区情况

先通过 swapoff swap 停止,再通过 rm -rf swap 删除 swap 这个文件

重新创建 swap 文件
使用命令划分出8G的空间:dd if=/dev/zero of=/swap bs=8M count=1024

启用交换文件
- 先设置权限
chmod 600 /swap - 输入命令来告诉我们的系统设置交换空间
mkswap /swap - 启用交换
swapon /swap - 查看
swapon -s

查看配置情况

Swap配置优化
控制 swap 使用的系统参数:swappiness,wappiness 的值的大小对如何使用 swap 分区是有着很大的联系的。
swappiness=0 的时候表示最大限度使用物理内存,然后才是 swap 空间,swappiness=100 的时候表示积极的使用 swap 分区,并且把内存上的数据及时的搬运到 swap 空间里面。linux 的基本默认设置为 60,具体如下:
一般默认值都是 60
- 查看命令:
cat /proc/sys/vm/swappiness 
也就是说,你的内存在使用到 100-60=40% 的时候,就开始出现有交换分区的使用。大家知道,内存的速度会比磁盘快很多。按照60%的配置会加大系统 I/O,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,现在对该参数进行调整:
-
临时调整的方法如下,我们调成 10:
sysctl vm.swappiness=10(这只是临时调整的方法,重启后会回到默认设置的) -
要想永久调整的话,需要在 /etc/sysctl.conf 修改,加上
vm.swappiness=10和vm.vfs_cache_pressure=50:cat /etc/sysctl.conf
-
激活设置:
sysctl -p
引用/内容整合: