长沙制作网站公司哪家好,wordpress客户留言插件,网络传媒公司名字,提高网站粘性1、什么是内存泄漏内存泄漏是指#xff0c;有未被释放的java对象#xff0c;一直停留在内存中。GCRoot 无法追踪到此对象#xff0c;导致此对象无法被回收。 2、什么是内存溢出内存溢出是指#xff0c;java程序创建对象需要内存#xff0c;但是却没有内存可用了#xff0… 1、什么是内存泄漏内存泄漏是指有未被释放的java对象一直停留在内存中。GCRoot 无法追踪到此对象导致此对象无法被回收。 2、什么是内存溢出内存溢出是指java程序创建对象需要内存但是却没有内存可用了内存就溢出了。溢出从字面理解桶不够装水溢出了 3、当时的环境打包成jar后直接 运行 java -jar xx.jar。默认的jvm 运行参数 -Xms 。 因此给jvm分配的内存比较小。然后当时上传了1个有10W条的数据的excel插入到数据库。结果就是运行了几分钟用top命令查看java 的 cpu使用率为 99%。结果就是程序直接报错。 4、当时情况1、当时不清楚自己服务器的配置情况阿里云学生机2、在本地测试好好的在服务器端就不行了怀疑是文件没上传怀疑内存溢出 5、解决过程 1、先查看服务器配置①、使用free -h 查看服务器内存。 ②、使用top 命令查看 cpu 个数输入top 后 按 1 2、诊断是文件在服务端没读取到还是内存溢出。①上传小量的数据发现上传成功也就是是内存不大够②使用top 命令。 客户端上传大文件。使用top命令时发现上传后jvm 的cpu 使用率 直接飙到 99%。内存从5% 飙到 35%。最后客户端直接报错 3、设置 jvm 的启动参数 -Xms : 初始堆大小堆在java中是用于给对象分配内存的
-Xmx : 最大堆大小
jcmd [pid] VM.flags①查看 jvm 启动参数看是否设置小了 jcmd [pid] VM.flags②发现确实是设置下小了重新设置并启动 nohup java -Xms512m -Xmx512m -jar xx.jar 最后的结果就是程序运行稍微快了之前上传1000条左右的数据都很慢现在就快很多了 总结原本是想着能不能通过把jvm的启动参数设置大一点进而来支持10W条数据的上传。无耐阿里云学生机配置不好只能稍微修改一点再将文件切割为小文件上传了 jvm参数请参考 https://segmentfault.com/a/11...