版权声明:cao-denghua-非商业性使用-相同方式共享 3.0 中国大陆 (CC BY-NC-SA 3.0 CN) https://blog.csdn.net/caodenghua/article/details/80251468
生产环境增加交换分区swap,解决tomcat崩溃的问题
在生产环境kvm集群,vm根据模板建立,所以每个vm的swap都是200M。但是tomcat有时候会(装有多个tomcat的情况下)会频繁交换数据。导致200M交换分区不足。于是需要临时增加swap。
第一部分:使用swapfile扩容当前的swap
1.最多可以增加8个swapfile。
2.每个swapfile文件可以放在不同的磁盘分区下。【swap负载均衡】
在i386系中,最多可以使用2GB的空间。
涉及到的命令:
dd —读取,转换并输出数据命令;
mkswap —设置交换区
swapon —启用交换区,相当于mount
swapoff —关闭交换区,相当于umount
步骤:
1、在当前路径下创建swapfile:
dd if=/dev/zero of=swapfile bs=1024 count=1024000
# 命令中选项解释:
# of:输出的交换文件的路径及名称;
# bs:块大小,单位byte,一般为1k即1024个byte;
# count:总块数即空间总大小,单位为块即k;
# if:读取的源空闲空间,
2、将swapfile设置为swap空间
mkswap swapfile
3、启用交换空间,这个操作有点类似于mount操作(个人理解):
swapon swapfile
至此增加交换空间的操作结束了.
4、如果不再使用空间可以选择关闭交换空间,如果该交换空间在使用时卸载不了的。
swapoff swapfile
5、新加的Swap文件已经起作用了,但系统重新启动以后,并不会记住前几步的操作。因此要在/etc/fstab文件中记录文件的名字,和Swap类型,如:
/path/swapfile none Swap sw,pri=3 0 0
第二部分:观察系统交换数据量
1、查看系统交换量,最常用的是Vmstat命令
vmstat 3
#3表示每三秒钟捕获一次
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 162096 73396 5364 550340 0 0 5 9 1 0 1 0 99 0 0
0 0 162096 73380 5372 550360 0 0 0 9 92 154 0 0 99 1 0
0 0 162096 73380 5372 550360 0 0 0 24 109 161 0 0 100 0 0
0 0 162096 73388 5372 550368 0 0 0 1 100 152 0 0 99 0 0
0 0 162096 73388 5380 550364 0 0 0 8 90 156 0 0 99 1 0
0 0 162096 73388 5380 550368 0 0 0 123 121 162 0 0 100 0 0
0 0 162096 73388 5380 550368 0 0 0 0 108 158 0 0 100 0 0
0 0 162096 73388 5388 550372 0 0 0 20 81 151 0 0 99 1 0
0 0 162096 73388 5388 550372 0 0 0 0 104 157 0 0 100 0 0
Swap下的si,so
si表示当前(三秒钟之内)每秒交换回内存(Swap in)的总量,单位为kbytes;so表示当前(三秒钟之内)每秒交换出内存(Swap out)的总量,单位为kbytes。指标数量越大,表示系统越忙
2、查看swapfile文件的使用率
swapon -s
#Swap空间的已用和未用资源的大小
Filename Type Size Used Priority
/dev/vda2 partition 204796 162096 -1
/data/swapfile1 file 1024000 0 -2
/data/swapfile2 file 1024000 0 -3