调优
- 高性能设备上部署
64位的系统,大内存会导致GC时间太长
可以使用集群来分享内存
要避免竞争同一个文件,导致IO异常
也可定时任务来GC
要查看-Xmx和-Xms
- 集群同步导致内存溢出
-XX:+HeapDumpOnOutOfMemoryError
- 推外内存溢出
打开jstat等着
2G的内存,1.6给堆,如果ajax逆向推送的话,产生很多直接内存,他不在那1.6的推里面,只能抢那0.4的空间。
直接内存不够之后不能通知gc回收,只能等待老年区满了之后full GC
- 外部命令导致系统缓慢
rumtime.getruntime.exec()调用方法太多,到时cpu,内存等占用太多
- 服务器jvm进程奔溃
调用别的借口,线程堆积,
- 不恰当的数据结构导致内存占用太多
初始化100w个hashmap《long,long》
- window虚拟内存导致长时间停顿
-XX:+PrintGCApplicationStoppedTime
awt项目gc时间有的时候超长,可能是最小化之后,把内存转到磁盘的虚拟内存里去了
awt项目要带-Dsun.awt.keepWorkingSetOnMinimize=true参数