背景:线上环境项目出现OMM,系统只能重启使用
日志:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3236)
at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
at org.apache.poi.openxml4j.opc.internal.MemoryPackagePartOutputStream.write(MemoryPackagePartOutputStream.java:88)
at org.apache.xmlbeans.impl.store.Cursor._save(Cursor.java:590)
at org.apache.xmlbeans.impl.store.Cursor.save(Cursor.java:2544)
at org.apache.xmlbeans.impl.values.XmlObjectBase.save(XmlObjectBase.java:180)
at org.apache.poi.xssf.model.SharedStringsTable.writeTo(SharedStringsTable.java:218)
at org.apache.poi.xssf.model.SharedStringsTable.commit(SharedStringsTable.java:225)
at org.apache.poi.POIXMLDocumentPart.onSave(POIXMLDocumentPart.java:313)
at org.apache.poi.POIXMLDocumentPart.onSave(POIXMLDocumentPart.java:317)
at org.apache.poi.POIXMLDocument.write(POIXMLDocument.java:173)
at com.query.utils.FileUtil.writeExcelFromHdfs(FileUtil.java:1041)
at com.query.service.impl.HiveQueryServiceImpl.createExcel(HiveQueryServiceImpl.java:183)
at com.query.controller.hive.HiveQueryController.downloadExcel(HiveQueryController.java:303)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
看日志信息,应该是在将数据文件转成excel时内存溢出。
查看下进程的内存情况以及gc情况:
jmap -heap 7855
jstat -gc 7855 2000
jmap -heap 7855
Attaching to process ID 7855, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.121-b13
using thread-local object allocation.
Parallel GC with 13 thread(s)
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 4294967296 (4096.0MB)
NewSize = 1431306240 (1365.0MB)
MaxNewSize = 1431306240 (1365.0MB)
OldSize = 2863661056 (2731.0MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 745537536 (711.0MB)
used = 473710736 (451.76576232910156MB)
free = 271826800 (259.23423767089844MB)
63.539488372588124% used
From Space:
capacity = 284164096 (271.0MB)
used = 284041936 (270.8834991455078MB)
free = 122160 (0.1165008544921875MB)
99.95701075479992% used
To Space:
capacity = 347602944 (331.5MB)
used = 0 (0.0MB)
free = 347602944 (331.5MB)
0.0% used
PS Old Generation
capacity = 2863661056 (2731.0MB)
used = 1491981264 (1422.8642120361328MB)
free = 1371679792 (1308.1357879638672MB)
52.100483780158655% used
38059 interned Strings occupying 4461368 bytes.
[root@test ~]# jstat -gc 7855 2000
S0C S1
C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
101888.0 104448.0 0.0 22704.8 1184768.0 567813.1 2796544.0 1745162.2 82304.0 79368.6 10112.0 9620.3 39 1.229 3 0.187 1.415
101888.0 104448.0 0.0 22704.8 1184768.0 567813.1 2796544.0 1745162.2 82304.0 79368.6 10112.0 9620.3 39 1.229 3 0.187 1.415
101888.0 104448.0 0.0 22704.8 1184768.0 567813.1 2796544.0 1745162.2 82304.0 79368.6 10112.0 9620.3 39 1.229 3 0.187 1.415
101888.0 104448.0 0.0 22704.8 1184768.0 569787.8 2796544.0 1745162.2 82304.0 79368.6 10112.0 9620.3 39 1.229 3 0.187 1.415
101888.0 104448.0 0.0 22704.8 1184768.0 569964.2 2796544.0 1745162.2 82304.0 79368.6 10112.0 9620.3 39 1.229 3 0.187 1.415
101888.0 104448.0 0.0 22704.8 1184768.0 570475.8 2796544.0 1745162.2 82304.0 79368.6 10112.0 9620.3 39 1.229 3 0.187 1.415
101888.0 231424.0 101872.9 0.0 934912.0 358385.7 2796544.0 2050928.1 85760.0 82761.2 10496.0 9972.6 40 1.280 3 0.187 1.467
193024.0 201728.0 0.0 26518.9 986112.0 0.0 2796544.0 2259409.2 88448.0 85590.6 10880.0 10379.5 45 1.394 3 0.187 1.580
158720.0 167424.0 0.0 28224.0 1054720.0 641618.1 2796544.0 2367500.1 88448.0 85600.9 10880.0 10381.5 49 1.479 3 0.187 1.665
127488.0 135168.0 0.0 30176.0 1119744.0 981822.0 2796544.0 2483020.7 88448.0 85600.9 10880.0 10381.5 53 1.570 3 0.187 1.756
101888.0 108032.0 0.0 31616.0 1175552.0 1127629.6 2796544.0 2604964.9 88448.0 85600.9 10880.0 10381.5 58 1.661 3 0.187 1.847
81920.0 86528.0 0.0 32960.0 1220096.0 0.0 2796544.0 2733629.7 88448.0 85603.5 10880.0 10382.1 61 1.756 4 0.187 1.942
73728.0 70144.0 33376.0 0.0 1253888.0 500750.6 2796544.0 1051321.2 88448.0 85540.0 10880.0 10370.9 64 1.829 4 0.856 2.685
61440.0 58880.0 34304.9 0.0 1277440.0 203725.9 2796544.0 1186289.2 88448.0 85540.0 10880.0 10370.9 68 1.919 4 0.856 2.776
52224.0 54272.0 0.0 34560.0 1287168.0 1183279.4 2796544.0 1289278.8 88448.0 85540.0 10880.0 10370.9 71 1.986 4 0.856 2.842
46592.0 47616.0 0.0 35104.0 1300992.0 650461.6 2796544.0 1428021.3 88448.0 85540.0 10880.0 10370.9 75 2.078 4 0.856 2.934
43520.0 44032.0 0.0 35232.0 1308672.0 183229.9 2796544.0 1569317.3 88448.0 85540.0 10880.0 10370.9 79 2.173 4 0.856 3.029
41984.0 41472.0 35232.0 0.0 1314304.0 1051592.2 2796544.0 1675606.6 88448.0 85540.0 10880.0 10370.9 82 2.244 4 0.856 3.100
39936.0 39936.0 35328.0 0.0 1317888.0 553291.1 2796544.0 1817046.6 88448.0 85540.0 10880.0 10370.9 86 2.338 4 0.856 3.195
38912.0 38400.0 35424.0 0.0 1320448.0 52815.4 2796544.0 1958627.5 88448.0 85540.0 10880.0 10370.9 90 2.434 4 0.856 3.290
37888.0 37888.0 0.0 35456.0 1321472.0 898659.2 2796544.0 2064932.4 88448.0 85540.0 10880.0 10370.9 93 2.505 4 0.856 3.362
37376.0 37376.0 0.0 35552.0 1322496.0 368685.8 2796544.0 2206750.3 88448.0 85540.0 10880.0 10370.9 97 2.602 4 0.856 3.459
37376.0 37376.0 35392.0 0.0 1323008.0 1215763.2 2796544.0 2314344.2 88448.0 85540.0 10880.0 10370.9 100 2.674 4 0.856 3.531
36864.0 36864.0 35424.0 0.0 1324032.0 688138.8 2796544.0 2456545.4 88448.0 85540.0 10880.0 10370.9 104 2.769 4 0.856 3.625
36864.0 36864.0 35200.0 0.0 1324032.0 132385.6 2796544.0 2598837.3 88448.0 85540.0 10880.0 10370.9 108 2.865 4 0.856 3.721
36352.0 36352.0 0.0 36320.0 1325056.0 954070.4 2796544.0 2705677.3 88448.0 85540.0 10880.0 10370.9 111 2.939 4 0.856 3.795
49152.0 49664.0 0.0 34816.0 1298432.0 0.0 2796544.0 2777365.3 88448.0 85540.0 10880.0 10370.9 113 2.992 5 0.856 3.848
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2793276.2 88448.0 85540.0 10880.0 10370.9 113 2.992 6 2.950 5.941
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2793276.2 88448.0 85540.0 10880.0 10370.9 113 2.992 6 2.950 5.941
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2793276.2 88448.0 85540.0 10880.0 10370.9 113 2.992 6 2.950 5.941
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796531.8 88448.0 85540.0 10880.0 10370.9 113 2.992 7 8.904 11.895
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796531.8 88448.0 85540.0 10880.0 10370.9 113 2.992 7 8.904 11.895
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796531.8 88448.0 85540.0 10880.0 10370.9 113 2.992 7 8.904 11.895
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796530.1 88448.0 85540.1 10880.0 10370.9 113 2.992 8 13.361 16.353
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796529.9 88448.0 85540.1 10880.0 10370.9 113 2.992 9 16.036 19.028
49152.0 49664.0 0.0 0.0 1298432.0 184958.6 2796544.0 2796529.9 88448.0 85540.1 10880.0 10370.9 113 2.992 10 17.643 20.635
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796529.9 88448.0 85540.1 10880.0 10370.9 113 2.992 11 17.643 20.635
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796529.9 88448.0 85540.1 10880.0 10370.9 113 2.992 11 17.643 20.635
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796524.9 88448.0 85540.1 10880.0 10370.9 113 2.992 12 21.293 24.284
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796524.9 88448.0 85540.1 10880.0 10370.9 113 2.992 12 21.293 24.284
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796524.8 88448.0 85540.1 10880.0 10370.9 113 2.992 13 25.015 28.007
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796524.8 88448.0 85540.1 10880.0 10370.9 113 2.992 13 25.015 28.007
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796524.8 88448.0 85540.6 10880.0 10371.4 113 2.992 14 29.459 32.451
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796512.1 88448.0 85540.6 10880.0 10371.4 113 2.992 15 30.334 33.326
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796512.1 88448.0 85540.6 10880.0 10371.4 113 2.992 15 30.334 33.326
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796511.9 88448.0 85540.6 10880.0 10371.4 113 2.992 17 34.476 37.468
49152.0 49664.0 0.0 0.0 1298432.0 777277.6 2796544.0 2796511.9 88448.0 85540.6 10880.0 10371.4 113 2.992 18 36.167 39.159
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796511.9 88448.0 85540.6 10880.0 10371.4 113 2.992 20 37.014 40.006
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796511.9 88448.0 85540.6 10880.0 10371.4 113 2.992 21 37.864 40.855
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796086.1 88448.0 85540.6 10880.0 10371.4 113 2.992 22 39.597 42.588
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796086.1 88448.0 85540.6 10880.0 10371.4 113 2.992 22 39.597 42.588
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796086.0 88448.0 85540.6 10880.0 10371.4 113 2.992 24 44.034 47.025
49152.0 49664.0 0.0 0.0 1298432.0 884307.5 2796544.0 2796086.0 88448.0 85540.6 10880.0 10371.4 113 2.992 25 45.804 48.796
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796086.0 88448.0 85540.6 10880.0 10371.4 113 2.992 27 46.676 49.667
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796086.0 88448.0 85540.6 10880.0 10371.4 113 2.992 28 49.037 52.029
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796086.0 88448.0 85540.6 10880.0 10371.4 113 2.992 28 49.037 52.029
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796086.0 88448.0 85540.6 10880.0 10371.4 113 2.992 28 49.037 52.029
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796083.2 88448.0 85548.4 10880.0 10372.9 113 2.992 29 53.512 56.503
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796083.2 88448.0 85548.4 10880.0 10372.9 113 2.992 29 53.512 56.503
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796081.8 88448.0 85549.3 10880.0 10372.9 113 2.992 30 57.221 60.213
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796081.8 88448.0 85549.3 10880.0 10372.9 113 2.992 30 57.221 60.213
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 32 61.530 64.522
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 33 62.833 65.825
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 35 64.653 67.645
49152.0 49664.0 0.0 0.0 1298432.0 1149023.8 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 36 66.771 69.763
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 38 67.721 70.713
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 40 69.603 72.594
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 42 71.520 74.512
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 43 72.481 75.473
49152.0 49664.0 0.0 0.0 1298432.0 1296329.3 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 45 75.127 78.119
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 46 76.116 79.108
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 48 78.074 81.065
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 50 79.993 82.985
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 51 80.979 83.971
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796080.5 88448.0 85549.3 10880.0 10372.9 113 2.992 51 80.979 83.971
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796071.3 88704.0 85562.5 10880.0 10372.9 113 2.992 52 84.377 87.369
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796071.3 88704.0 85562.5 10880.0 10372.9 113 2.992 52 84.377 87.369
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796071.3 88704.0 85562.5 10880.0 10372.9 113 2.992 52 84.377 87.369
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796070.4 88704.0 85564.3 10880.0 10372.9 113 2.992 53 90.207 93.198
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796070.4 88704.0 85564.3 10880.0 10372.9 113 2.992 53 90.207 93.198
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85572.9 10880.0 10372.9 113 2.992 54 94.188 97.180
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85577.1 10880.0 10372.9 113 2.992 55 97.118 100.110
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85581.9 10880.0 10372.9 113 2.992 57 99.147 102.139
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85582.2 10880.0 10372.9 113 2.992 58 100.186 103.178
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85582.2 10880.0 10372.9 113 2.992 60 102.632 105.624
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85584.6 10880.0 10372.9 113 2.992 62 104.684 107.676
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85599.9 10880.0 10372.9 113 2.992 64 106.723 109.715
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85606.1 10880.0 10372.9 113 2.992 66 108.738 111.730
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85613.0 10880.0 10372.9 113 2.992 67 109.793 112.785
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85616.3 10880.0 10372.9 113 2.992 69 112.365 115.357
49152.0 49664.0 0.0 0.0 1298432.0 1156613.1 2796544.0 2796038.5 88704.0 85632.6 10880.0 10372.9 113 2.992 70 114.486 117.477
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796038.5 88704.0 85632.6 10880.0 10372.9 113 2.992 71 114.486 117.477
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796313.8 88704.0 85505.8 10880.0 10352.5 113 2.992 72 117.530 120.522
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796407.4 88704.0 85405.2 10880.0 10330.3 113 2.992 73 119.798 122.790
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796407.4 88704.0 85407.7 10880.0 10330.3 113 2.992 75 122.027 125.019
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796407.4 88704.0 85407.7 10880.0 10330.3 113 2.992 75 122.027 125.019
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796407.4 88704.0 85407.7 10880.0 10330.3 113 2.992 75 122.027 125.019
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796360.4 88704.0 85397.3 10880.0 10325.9 113 2.992 76 127.741 130.733
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796360.4 88704.0 85397.3 10880.0 10325.9 113 2.992 76 127.741 130.733
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796360.2 88704.0 85407.8 10880.0 10325.9 113 2.992 77 131.706 134.697
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796360.2 88704.0 85418.5 10880.0 10325.9 113 2.992 78 133.090 136.081
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796360.2 88704.0 85427.2 10880.0 10325.9 113 2.992 80 135.237 138.229
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796360.2 88704.0 85430.5 10880.0 10325.9 113 2.992 82 137.347 140.338
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796360.2 88704.0 85430.5 10880.0 10325.9 113 2.992 82 137.347 140.338
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796360.0 88704.0 85431.0 10880.0 10325.9 113 2.992 83 140.323 143.315
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796360.0 88704.0 85431.0 10880.0 10325.9 113 2.992 83 140.323 143.315
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796359.5 88704.0 85450.5 10880.0 10325.9 113 2.992 84 144.295 147.287
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796359.5 88704.0 85450.5 10880.0 10325.9 113 2.992 84 144.295 147.287
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796214.1 88704.0 85448.9 10880.0 10324.8 113 2.992 85 149.592 152.584
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796214.1 88704.0 85448.9 10880.0 10324.8 113 2.992 85 149.592 152.584
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796214.1 88704.0 85448.9 10880.0 10324.8 113 2.992 85 149.592 152.584
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796214.0 88704.0 85449.4 10880.0 10324.8 113 2.992 86 154.311 157.303
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796214.0 88704.0 85449.4 10880.0 10324.8 113 2.992 86 154.311 157.303
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796204.7 88704.0 85451.8 10880.0 10324.8 113 2.992 87 158.288 161.279
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796204.7 88704.0 85451.8 10880.0 10324.8 113 2.992 87 158.288 161.279
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796204.7 88704.0 85451.8 10880.0 10324.8 113 2.992 87 158.288 161.279
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796204.7 88704.0 85451.8 10880.0 10324.8 113 2.992 87 158.288 161.279
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796183.0 88704.0 85452.6 10880.0 10324.8 113 2.992 88 167.215 170.207
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796183.0 88704.0 85454.3 10880.0 10324.8 113 2.992 89 168.417 171.409
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 88704.0 85454.3 10880.0 10324.8 113 2.992 90 171.402 174.394
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 88704.0 85456.3 10880.0 10324.8 113 2.992 91 172.686 175.678
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 88704.0 85457.2 10880.0 10324.8 113 2.992 93 174.829 177.821
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 88704.0 85485.8 10880.0 10324.8 113 2.992 95 177.040 180.031
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 88704.0 85497.9 10880.0 10324.8 113 2.992 97 179.136 182.127
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 88960.0 85642.5 10880.0 10324.8 113 2.992 99 181.254 184.245
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 89216.0 85809.6 10880.0 10325.7 113 2.992 101 183.401 186.392
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 89216.0 85822.9 10880.0 10325.7 113 2.992 102 184.460 187.452
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 89216.0 85837.3 10880.0 10325.7 113 2.992 104 186.591 189.582
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 89216.0 85849.5 10880.0 10325.7 113 2.992 106 188.833 191.825
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796182.9 89216.0 85849.5 10880.0 10325.7 113 2.992 106 188.833 191.825
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796161.8 89216.0 85857.8 10880.0 10325.7 113 2.992 107 192.158 195.150
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796161.8 89216.0 85857.8 10880.0 10325.7 113 2.992 107 192.158 195.150
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796161.3 89216.0 85863.2 10880.0 10325.7 113 2.992 109 196.562 199.554
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796161.3 89216.0 85865.1 10880.0 10325.7 113 2.992 111 198.676 201.668
49152.0 49664.0 0.0 0.0 1298432.0 1298432.0 2796544.0 2796161.3 89216.0 85865.1 10880.0 10325.7 113 2.992 113 200.905 203.896
从jmap -heap可以看到,堆设置大小为4G,新生代1.3g,old区2.7g ,metaspace20M
new:old=1:2
sur:eden=1:8
后面jstat点击下载进行观察,可以看到下载过程不断fgc(fgc会导致系统暂停,其他业务进程停止,服务器专心处理gc),内存一下子爆了,系统卡住。
观察对应代码:
public static void writeExcelFromHdfs(List<String> result, List<String> colName, String path,
String fileName) throws Exception {
FileOutputStream fileOutputStream = null;
File file = new File(path);
// 如果文件夹不存在则创建
if (!file.exists() && !file.isDirectory()) {
file.mkdirs();
}
fileOutputStream = new FileOutputStream(path+fileName);
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet childSheet = wb.createSheet();
XSSFRow row = childSheet.createRow(0);
for (int i = 0; i < colName.size(); i++) {
row.createCell(i).setCellValue(colName.get(i).split("-")[0]);
}
for (int j = 0; j < result.size(); j++) {
XSSFRow bodyRow = childSheet.createRow(j + 1);
String contents =result.get(j);
String content[] = contents.split("\t\001");
if(content.length<colName.size()){
content= ArrayUtils.add(content, "");
}
for (int k = 0; k < content.length; k++) {
String value = content[k];
XSSFCell cell = bodyRow.createCell(k);
cell.setCellType(XSSFCell.CELL_TYPE_STRING);
cell.setCellValue(value);
}
}
wb.write(fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
//return path+fileName;
}
大概猜测对象 XSSFWorkbook 使用过大,(ps:数据文件只有几十M,按理说不应该excel这么大)
1、前后加内存使用日志定位,在对象前后打印 run.freeMemory() :
Runtime run = Runtime.getRuntime();
run.gc();
System.out.println(run.freeMemory()/1024/1024);
2、直接打印对象大小 RamUsageEstimator.sizeOf():
System.out.println(RamUsageEstimator.sizeOf(wb)/1024/1024);
最终确定该对象占用内存过大,几十M的数据会变成几个G的对象。
优化方式:
不用excel,改成csv,制作文件格式上的变化。
总结:
1、出现OMM的情况,首先确定jvm的设置情况
2、找出内存过大的对象,一般堆栈会有信息,能大概定位到。然后进行优化。。
jamp -heap 17869
jstat -gc 17869 2000
也可以使用如下命令找到各个对象的大小:
jmap -dump:format=b,file=heap.bin 17869
jhat -J-Xmx10240m heap.bin
==========
使用 jmap -histo 96583 > a.log
这两个对象内存使用特别高。查一下是excel那个对象的。
====栈查询
top -Hp 13705 可以看到cpu搞得线程
13711转16进制 358f
jstack -l 13705 打印栈信息
可以看到gc导致cpu过高,系统无法正常使用。