业务场景:游戏行业,N个服务器,要进行大批量的合服处理,玩家数据会上升,从新整理和服务器的分配情况和逻辑处理,正常开发后,当天白天正常,然后晚上高峰期开始玩家频繁反馈无法登录~~~

处理逻辑:

优先确认服务是否宕机,如果是,就重启,分析linux系统日志,根据宕机的原因进行处理即可;

再确认服务器情况,cpu、内存、硬盘、网络等等;

内存使用情况还算正常,还有30-40的余量空间,cpu很明显的异常:

再查询进程下线程的具体情况:

再吧5675转16进制: 162b ,再查询堆栈信息

jstack 5656|grep -i -B 10 -A 50 162b

可以确认,系统在疯狂GC~~~再查询gc的详情

jstat -gcutil 5596 1000 5;
jstat -gc -h3 5596 250 10;

 

到此,确认是gc导致的bug~~~

首先把堆栈导出后,重启,先恢复系统

jstack -l 5596 > jstack.data;
jmap -histo 5596 > jmap.data;

那么如何解决呢?

1:优化代码

2:优化服务器

1的话工作量比较大,而且开头说道了内存其实是够够的~所以选2,jvm调优

根据jdk版本,选择调整:1.7是PermSize,大于的是MetaspaceSize

-Xmx3072m -Xms2048m -XX:PermSize=256M -XX:MaxPermSize=512M

-Xmx3072m -Xms2048m -XX:CompressedClassSpaceSize=256m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m

后续观察了几天,cpu都正常。

最新文章

  1. [deviceone开发]-doSpace应用源码开源
  2. Tools - Windows
  3. UWP开发入门(十七)——判断设备类型及响应VirtualKey
  4. Java栈与堆一篇好文
  5. Codeforces Round #252 (Div. 2) 441B. Valera and Fruits
  6. 它们的定义UIAlertView
  7. .NET4.5 Console.ReadKey()在多线程下的BUG
  8. 答辩系统bug修改记录
  9. .NET十五周年生日快乐 (3月7日发布Visual Studio 2017正式版?)
  10. Mysql5.7忘记root密码及修改root密码的方法
  11. python编程快速上手之第5章实践项目参考答案
  12. python3中的进程
  13. git创建本地分支以及推送本地分之至远程分支
  14. MySQL高可用——PXC简介
  15. jQuery登录界面的文本框焦点代码
  16. c++中嵌入python
  17. javascript OOP实例—探测器
  18. sublime汉化
  19. 从零开始学 Web 之 HTML5(三)网络监听,全屏,文件读取,地理定位接口,应用程序缓存
  20. hadoop集群搭建(hdfs)

热门文章

  1. 基于MATLAB的人民币识别系统
  2. ArcObjects SDK 012 PageLayout和Page
  3. JavaScript入门⑦-DOM操作大全
  4. 如何5分钟上手使用PaddleSeg人像抠图
  5. ConditionAlOnProperties实现可插拔?
  6. python Flask 操作数据库(2)
  7. 深入理解 Linux 物理内存分配全链路实现
  8. 记一个难以发现的 UB
  9. [C++标准模板库:自修教程与参考手册]关于vector
  10. Hexo博客搭建记录