Redis莫名其妙自动中断原因排查暨Swap交换分区的创建

Redis莫名其妙自动中断原因排查暨Swap交换分区的创建

Redis莫名其妙自动中断原因排查暨Swap交换分区的创建

Linux Centos 安装了Redis,大概跑2、3天就出现redis失效,网站监控报警,查了redis的日志,竟然没有log中断的原因提示,对redis的稳定性产生了怀疑,度娘了大家的评论资料,对redis的稳定性还是肯定的,出问题的原因在于设置没优化。

1.合理配置 maxmemory 参数

redis.conf中maxmemory参数意味着redis可使用的最大内存,设置过小效率不高,设置过大会用爆内存,产生崩溃,大多专家的建议,不宜超过物理内存的2/3或3/5,我们保守点选择按物理内存的3/5设置。但运行了2天,仍然无报警自动中断,再查,原来内存用爆了就用到了swap交换文件了,free 一下,系统竟然没有设置swap。

2.创建Swap交换文件

创建swap交换文件一般有两种方式:基于分区方式和基于文件方式。基于分区方式一般在系统初建时就分配设置,在系统创建时就应该注意先创建swap,否则只好用基于文件的方式。

2.1 创建基于分区的swap分区

用fdisk命令创建新的空白分区,同时修改文件系统为82(Linux swap):

#fdisk /dev/vda
#partprobe
#lsblk -f /dev/vda2
NAME FSTYPE LABEL UUID                                 MOUNTPOINT
vda2 swap         fed3d6d167............

用mkswap命令创建swap分区:

#mkswap /dev/vda2
mkswap: /dev/vda2: warning: wiping old swap signature.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=fed3.........

成功了。

2.2 创建基于文件的swap分区

用dd命令创建一个指定大小的数据文件,文件大小一般设定为物理内存一样的大小。

#dd if=/dev/zero of=~/swap bs=1024 count=4096000
4096000+0 records in
4096000+0 records out
4XXXXXXX bytes (4 GB) copied, 13.8478 s, 138 MB/s
#file ~/swap
/root/swap: data

可以看到当前文件’swap’的文件类型为’data’。然后再基于此文件使用mkswap命令创建swap分区:

#mkswap ~/swap
Setting up swapspace version 1, size = 4096000 KiB
no label, UUID=XXXX...............
#file ~/swap
/root/swap: Linux/i386 swap file (new style), version 1 (4K pages), size ?????? pages, no label, UUID=XXXX......

3.激活已创建的swap分区

不论是使用空白分区创建的swap分区,还是使用文件创建的Swap分区,均可使用swapon命令激活已创建的Swap交换分区:

swapon -s
Filename                                Type            Size    Used    Priority

#swapon /dev/vda2
#swapon -s
Filename                                Type            Size    Used    Priority
/dev/vda2                               partition       1048572 0       -2

#swapon ~/swap
swapon: /root/swap: insecure permissions 0644, 0600 suggested.
#swapon -s
Filename                                Type            Size    Used    Priority
/dev/vda2                               partition       1048572 0       -2
/root/swap                              file    2097148 0       -3

可以清楚的看到刚才创建的swap分区,二者的类型分别为’partition’和’file’。另外,我们在使用swapon命令激活swap分区时,可使用-p选项指定优先级。
现在可使用free -h命令再次查看Swap分区使用状态了:

4.设定开机自动挂载

已激活的Swap分区我们还需要设定开机自动挂载,否在在系统重启后,未设定开机挂载的Swap分区将无法使用。 现在需要将以下信息追加写入/etc/fstab文件末尾:

/dev/vda2                       swap    swap defaults   0 0
/root/swap                      swap    swap defaults   0 0

调整 maxmemory 参数,并创建 Swap 分区后,跑了半个月测试, Redis 十分稳定!

你可能感兴趣的:(Linux,Linux,Redis,Swap)