第一反应:服务器磁盘容量
如题,碰到这个问题,我的第一反应:是不是服务器容量不够了?因为之前有一次碰到请求进来,服务日志突然不输出的情况,排查下,发现了是磁盘容量不够了,当时删了点东西,日志就正常打印了,所以这次发生这个情况我的第一反应就是,服务器容量是不是不够了?由于本人还处于初级程序员阶段,查看服务器容量的命令总是忘记,就百度搜索到了df -h这个命令:
看到了这么多用户,不知道哪个才是我这个服务所在的用户,我就采用了笨办法,先删点东西,再看下哪个用户可用空间变大了。结果发现是/dev/vda1这个用户。(如果有更好的命令,请大家在评论区分享下)一看,容量充足啊!为啥会出现如题的情况呢?
第二反应:TOP命令
由于在以前的项目中,有幸经历过一次项目压测,所以知道有top这个命令,可以查看服务器的服务运行的大致情况,但具体这个top命令所展示每个单词的具体含义,全忘了。。。于是,又去百度搜索top命令详解
好像一切都正常,但是这个%MEM这一栏引起了我的注意,(%MEM:进程使用的物理内存和总内存的百分比),感觉这个占比有点大,我就想,是不是内存不够了呢?
第三反应:服务器内存
直接百度了如何查看服务器内存的命令:free -m 。这个-m的意思就是单位,所以,当然你也可以free -g等等。
好像确实不够了!但是为什么只有那两个服务会有互斥反应,其他服务都不会挂?
第四反应:JVM参数
这个时候,我想起了启动脚本里面的JVM参数
A服务:-Xmx500M -Xms500M -Xmn300M -XX:MetaspaceSize=100M -Xss256K
B服务:-Xmx200M -Xms200M -Xmn100M -XX:MaxDirectMemorySize=512M -XX:MetaspaceSize=100M -Xss256K
其他服务:-Xmx100M -Xms100M -Xmn50M -XX:MaxDirectMemorySize=512M -XX:MetaspaceSize=100M -Xss256K
A和B互斥
于是我就把B服务的JVM参数调整为跟其他服务一样大小
启动成功
终于成功把A服务和B服务都启动起来了。经过这一次的问题,不仅复习了原来用过的命令,还学习了新命令,以及JVM相关的知识,收获满满!如果文中有错误的情况,还请大神指出!