使用阿里云服务器进行一些实例测试时,发现业务启动后,服务器连接卡死,重连显示拒绝密码登录。
尝试好几次,因为在做的业务,怀疑可能时磁盘或者内存导致,但是,这玩意为啥会导致拒绝密码登录也是迷糊,就探索探索。
查看虚拟机监控,发现是云盘读写bps占满,结合百度说内存满了设置交换分区就好了,试了试果然解决。
如下,出现问题时查看监控:
我的虚拟机安装的是ubuntu,直接百度设置交换分区,一次解决。
因为是回顾昨天的问题,也是直接问ai,给出交换分区设置方式:
检查当前系统是否已经存在交换分区。可以使用以下命令查看:sudo swapon --show
如果没有显示任何输出,表示当前系统没有启用交换分区。你可以创建一个交换文件作为交换分区:
使用以下命令创建一个大小为4GB(根据需要调整)的交换文件:sudo fallocate -l 4G /swapfile
设置文件权限:sudo chmod 600 /swapfile
将文件转换为交换格式:sudo mkswap /swapfile
启用该交换文件:sudo swapon /swapfile
确保设置了正确的权限和启动配置:
编辑 /etc/fstab 文件:sudo nano /etc/fstab
在文件末尾添加下面这一行,将交换文件自动挂载: /swapfile none swap sw 0 0
保存并关闭文件。
最后,重新启动服务器使设置生效:sudo reboot
设置后,当前状态如下,问题解决启动正常。
root@aliy:~# swapon --show
NAME TYPE SIZE USED PRIO
/root/swapfile file 5G 796M -2
root@aliy:~# free -h
total used free shared buff/cache available
Mem: 1.6Gi 1.3Gi 65Mi 1.0Mi 234Mi 143Mi
Swap: 5.0Gi 796Mi 4.2Gi
后来发现重启虚拟机后还是会有问题,参考https://blog.csdn.net/Erwinl/article/details/112776961。
感觉是设置使用swap分区策略影响。
可以手动开启一下
1、dd if=/dev/zero of=/file/swap bs=1024 count=4096000
/dev/zero是输入,/file/swap是交换文件位置,路径得存在,bs读/写的块大小,count是swap大小
2、mkswap /file/swap
把第一步的文件设置成swap交换区
3、swapon /file/swap
启用swap交换分区
4、echo "/file/swap swap swap defaults 0 0" >> /etc/fstab
设置成开机挂载交换区
5、vim /etc/sysctl.conf 将vm.swappiness = 0值改为50
这个值是如何使用swap分区值越大越积极使用swap分区,越小表示越积极使用物理内存,wappiness=50,表示内存使用率超过100-50=50%时开始使用交换分区,swappiness=0时不使用swapswappiness=100的时候表示积极使用swap分区,并把内存上的数据及时搬运到swap空间
6、sysctl -p