游戏服java程序启动,显示内存溢出
1.OutOfMemoryError:Java heap space 过程:服务器上面的mysql突然异常重启,导致了程序启动的时候报错
问题1:OutOfMemoryError:Java heap space 解决过程:
1.查看mysql的错误日志
根据错误日志,修复相关的表,修改相关的参数设置。
修复表使用的是repair table命令。 重启程序,依然报错:问题1. 2.更改mysql的缓冲池大小
由于服务器上面开了多个区服,可能导致的程序运行的时候,分配的内存不足。
更改innodb-buffer-pool-size大小,根据实际情况更改。 重启程序,依然报错:问题1. 3.更改jvm运行时分配内存大小。
通过更改jvm运行时初始设置参数来达到设置的目的。
-Xms -Xmx -Xmn 等参数以及gc回收参数来设置。 重启程序,依然报错:问题1.
更改到2.5G的时候,程序正常启动,但是跑起来一段时间后down掉了。由于本机内存不足。 4.更改数据库来测试。
通过导出导入来建立两个新的测试库,使用过的是这个区服的数据和其他区服的数据。
将游戏服挂载到本区服依然报错问题1.挂在到另外一个区服,则可以正常启动。
预估判断数据库中表的问题。 5.开发组使用程序在本机运行调试,发现是由于数据库中的两张大表,一直在无限循环查询,查询结果放入到jvm的内存中(由于两张表数据比较大),所以导致内存溢出。
于是,就这个问题,展开了修复与调试。
使用了之前备份的数据,来还原这两张表,结果依然运行不起来。报同样的错误。 删除两张大表,程序可以正常启动。初步判断由于程序在查询这两张表的时候,由于数据太大,而且程序一直在循环的读入导致了内存的溢出。 于是,就java程序在处理大数据方面做出调整和优化。 通过设置游标来给java程序每次取出数据设限,结果程序可以正常启动。经过一天的测试,没有出现什么其他的异常。 useCursorFetch=true&defaultFetchSize=1000
通过上面这几个参数来给予java程序连接mysql数据库时的数据取出规则,来进行优化处理。
游戏服java程序启动,显示内存溢出的更多相关文章
- java程序运行时内存分配详解
java程序运行时内存分配详解 这篇文章主要介绍了java程序运行时内存分配详解 ,需要的朋友可以参考下 一. 基本概念 每运行一个java程序会产生一个java进程,每个java进程可能包含一个 ...
- 不错的linux下通用的java程序启动脚本
不错的linux下通用的java程序启动脚本(转载) 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的 ...
- java中三种常见内存溢出错误的处理方法
更多 10 相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的 ...
- java中三种常见内存溢出错误的处理方法(good)
相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识. 在解决j ...
- 老李案例分享:MAT分析应用程序服务出现内存溢出过程
老李案例分享:MAT分析应用程序服务出现内存溢出过程 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loa ...
- spring boot启动报内存溢出的问题
问题: springBoot项目,已经两次了,启动报内存溢出,内存泄露 分析: 内存泄露是因为垃圾回收器想要回收程序不用的对象,但是该对象还有引用存在 解决: 1.第一次是mybatis文件和Java ...
- Java程序运行时内存划分
1.Java程序跨平台运行的原因 主要原因是:各种平台的JVM和字节码文件 Java源程序--具体平台的机器代码文件---被编译器翻译成平台无关的Class文件,又用特定JVM运行字节码文件,JVM在 ...
- 启动tomcat内存溢出
在运行项目的过程中,启动tomcat内存溢出.查阅了一些解决办法,总结出来留个笔记. 1.使用Myeclipse2014+tomcat 7 ,在MyEclipse中将项目部署到Tomcat下,启动to ...
- java程序启动参数-D含义详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt407 java程序启动参数 -D是用来做什么的呢?去查询了一下官方解释: S ...
随机推荐
- “mybatis 中使用foreach 传
为了帮助网友解决“mybatis 中使用foreach 传”相关的问题,中国学网通过互联网对“mybatis 中使用foreach 传”相关的解决方案进行了整理,用户详细问题包括:mybatismap ...
- 扩展struts2的结果集StrutsResultSupport 自定义Result处理JSON
以前在采用Struts2开发的项目中,对JSON的处理一直都在Action里处理的,在Action中直接Response,最近研读了一下Struts2的源码,发现了一个更加优雅的解决办法,自己定义一个 ...
- Block 及注意事项
block 概念 block 是 C 语言的 是一种数据类型,可以当作参数传递 是一组预先准备好的代码,在需要的时候执行 block 的注意事项 (1)block 在实现时就会对它引用到的它所在方法中 ...
- 使用/调用 函数的时候, 前面加不加 对象或 this?
这个问题, 其实没有细想: 应该是这样的: (想明白了, 就会少很多困惑, 会对语言的把握 会 更深入更透彻) 任何一门 语言, (如果你自己去设计一门语言...). 都要规定 一些 "关键 ...
- java读写excel文件
近期处理的数据规模比较大,正好又是统计合并的事情,想着借助excel就可以完成了,然后就了解了下java读取excel的事情. 读取的文件主要分两类:xls文件.xlsx文件.xls文件的相关操作用的 ...
- autopep8
修正python pep8的警告挺无趣的, 用了 autopep8 感觉比较爽. 记录如下. ----------------pep8检查----------------平时我用pydev做pep8检 ...
- Linux网络参数设置
1.ifconfig 查询.设定网络卡与ip 设置桥接网络 # vi /etc/sysconfig/network-script/ifcfg-br0 DEVICE=br0 ...
- ZOJ 2334 Monkey King
并查集+左偏树.....合并的时候用左偏树,合并结束后吧父结点全部定成树的根节点,保证任意两个猴子都可以通过Find找到最厉害的猴子 Monkey King ...
- 微信电脑版即将到来了 安装QQ浏览器微信版体验吧
之前说过在手机上微信打字慢,tx最终还是想开了,最近TX邀请测试微信电脑版,想要尝鲜的朋友可以去exp.qq.com申请QQ浏览器微信版体验,不过体验将要结束了,相信正式版很快就要出来了.[微信网页版 ...
- JAVA-多屏幕显示
以下代码适用于:一台主机连接多台显示器,JAVA Swing窗口需要分别显示到对应的显示器上. GraphicsEnvironment env = GraphicsEnvironment.getLoc ...