JVM-内存溢出排查

背景:线上环境项目出现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过高,系统无法正常使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值