一、需求背景
现使用服务器没有做swap分区且内存无法扩容,当内存使用较高时,tomcat等应用程序出现异常甚至内存溢出的报错。
需要添加额外的 swap 空间以提升Linux服务器的性能。由于磁盘均已挂载在使用中,无法通过新建分区来做swap分区,下面在不创建一个新的分区的前提下只使用命令行来添加一个swap 文件到 Linux 系统中。
在Linux操作系统中,通常都使用一块磁盘的一整块分区来作为交换区域。但对于2.6 Linux Kernel 交换文件能够和交换分区一样快
【说明】swap分区设置多大才合适:
在硬盘大的情况下,有多大搞多大,只要控制内存的使用率在99%时才使用swap,且如果是阵列后的内存硬盘,基本性能不会差到哪里去。
还有一种情况,比如数据库服务器(MySQL)这些,与一些应用服务器,还有当单纯的缓存服务器(Redis)这些配置swap都不一样,比如数据库服务器和缓存服务器这些就不建议使用swap分区,比如要绝对100%使用内存,并且内存在256G以上。而应用服务器这些就针对业务来划分,比如秒杀或者响应极高的,则内存利用率一定要高。而对于普通的业务,即使去了swap,也影响不了多少。
在Red Hat Enterprise Linux中,以下是设置合适的交换分区大小的规则:
| 物理内存 | 交换分区(SWAP) |
|---|---|
| <= 4G | 至少4G |
| 4~16G | 至少8G |
| 16G~64G | 至少16G |
| 64G~256G | 至少32G |
二、环境说明
#当前系统环境:
[root@localhost ~]# uname -a
Linux localhost 2.6.32-696.13.2.el6.x86_64 #1 SMP Thu Oct 5 21:22:16 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@localhost ~]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 21G 7.4G 13G 37% /
tmpfs tmpfs 2.1G 0 2.1G 0% /dev/shm
[root@localhost ~]# free -m
total use

最低0.47元/天 解锁文章
1178





