birt打印pdf内存溢出查询

11 篇文章 0 订阅

首先通过top命令查看

top - 10:36:06 up 377 days, 19:01,  4 users,  load average: 7.58, 5.58, 3.58
Tasks: 321 total,   3 running, 318 sleeping,   0 stopped,   0 zombie
%Cpu(s): 79.4 us,  1.2 sy,  0.0 ni, 11.7 id,  7.4 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem : 16266732 total,   182012 free, 10580200 used,  5504520 buff/cache
KiB Swap:  8257532 total,  2966840 free,  5290692 used.  2406736 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 5725 weblogic  20   0 6311244   4.5g   6612 S 312.0 29.0 117:29.92 java
28958 oracle    20   0  881864 341848 333184 R   3.3  2.1 388:13.95 oracle
24016 oracle    20   0  772116  34036  30312 D   1.0  0.2   0:00.04 oracle
   45 root      20   0       0      0      0 S   0.7  0.0 880:29.33 kswapd0
32018 oracle    20   0  794156 150132 143340 D   0.7  0.9   0:59.62 oracle
  671 weblogic  20   0 6160048 906572   3384 S   0.3  5.6  83:43.91 java
 2457 weblogic  20   0 8347268   1.9g   5292 S   0.3 12.2 228:30.76 java
 3696 oracle    20   0  774216 163020 158968 S   0.3  1.0   0:21.11 oracle
11796 oracle    20   0  808116 143064 136120 S   0.3  0.9 202:56.87 oracle
11896 oracle    20   0  808060 346360 338684 S   0.3  2.1  93:40.31 oracle
11901 oracle    20   0  835776 240476 233340 S   0.3  1.5   8:21.60 oracle
16776 oracle    20   0  773164  63280  59312 S   0.3  0.4   0:01.92 oracle
20906 oracle    20   0  782524  97852  91964 S   0.3  0.6   0:04.61 oracle
22054 weblogic  20   0  178356   6888   1816 R   0.3  0.0   0:03.05 top
24338 oracle    20   0 6783212  43588  42000 S   0.3  0.3 199:32.90 oracle
28126 oracle    20   0  772140  64244  61724 S   0.3  0.4   0:18.77 oracle
28874 weblogic  20   0 7844732 412360    772 S   0.3  2.5  70:06.39 java
30727 oracle    20   0  777324 149068 144304 D   0.3  0.9   2:03.21 oracle

可以看到进程5725的CPU使用率很高
通过命令查看堆内存情况

[weblogic@centOS7 ~]$ jmap -heap 5725
Attaching to process ID 5725, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.211-b12

using thread-local object allocation.
Parallel GC with 4 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 4294967296 (4096.0MB)
   NewSize                  = 715653120 (682.5MB)
   MaxNewSize               = 1431306240 (1365.0MB)
   OldSize                  = 1431830528 (1365.5MB)
   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 = 1380974592 (1317.0MB)
   used     = 1380974592 (1317.0MB)
   free     = 0 (0.0MB)
   100.0% used
From Space:
   capacity = 25165824 (24.0MB)
   used     = 0 (0.0MB)
   free     = 25165824 (24.0MB)
   0.0% used
To Space:
   capacity = 25165824 (24.0MB)
   used     = 0 (0.0MB)
   free     = 25165824 (24.0MB)
   0.0% used
PS Old Generation
   capacity = 2863661056 (2731.0MB)
   used     = 2863310544 (2730.665725708008MB)
   free     = 350512 (0.3342742919921875MB)
   99.98776000395488% used

可以看到堆内存被耗尽
在通过命令查看堆对象情况

[weblogic@centOS7 ~]$ jmap -histo 5725 | head -20

 num     #instances         #bytes  class name
----------------------------------------------
   1:      29270432     1170817280  java.util.TreeMap$Entry
   2:      29267724      936567168  com.lowagie.text.pdf.PdfWriter$PdfBody$PdfCrossReference
   3:      15806023      537461120  [B
   4:      15293932      489405824  com.lowagie.text.pdf.PdfIndirectReference
   5:        158272      183063256  [Ljava.lang.Object;
   6:        612876       38205752  [C
   7:        151029       12391192  [I
   8:        439173       10540152  java.lang.String
   9:        102103        8845440  [Ljava.util.HashMap$Node;
  10:        276070        8834240  java.util.HashMap$Node
  11:        160834        7720032  java.util.HashMap
  12:        252127        6051048  java.util.ArrayList
  13:         77044        3698112  com.lowagie.text.pdf.PdfContentByte$GraphicState
  14:         27762        3134480  java.lang.Class
  15:         51672        2893632  java.util.zip.Deflater
  16:         23122        2774640  org.eclipse.birt.report.engine.content.impl.ContainerContent
  17:         84747        2711904  java.util.ArrayList$Itr

接下来再查看进程的堆栈信息

[weblogic@centOS7 ~]$ jstack 5725
2022-03-18 10:42:28
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.211-b12 mixed mode):

"[STANDBY] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'" #15686 daemon prio=5 os_prio=0 tid=0x0000000006d8d000 nid=0x5bee in Object.wait() [0x00007f4755b91000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:247)
        - locked <0x00000007739fb4c0> (a weblogic.work.ExecuteThread)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:281)

"Attach Listener" #15683 daemon prio=9 os_prio=0 tid=0x000000000cfd7800 nid=0x59e2 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"[STANDBY] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'" #3079 daemon prio=5 os_prio=0 tid=0x0000000006d8c000 nid=0x6986 in Object.wait() [0x00007f4756793000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:247)
        - locked <0x00000006c56d5f90> (a weblogic.work.ExecuteThread)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:281)

"logback-8" #143 daemon prio=5 os_prio=0 tid=0x0000000009ca9000 nid=0x1909 waiting on condition [0x00007f4756c94000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c113ae80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"logback-7" #141 daemon prio=5 os_prio=0 tid=0x0000000009ca6000 nid=0x18be waiting on condition [0x00007f4756d95000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c113ae80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"logback-6" #140 daemon prio=5 os_prio=0 tid=0x0000000005085000 nid=0x187e waiting on condition [0x00007f475c3e9000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c113ae80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"logback-5" #139 daemon prio=5 os_prio=0 tid=0x0000000004973000 nid=0x1840 waiting on condition [0x00007f475c5eb000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c113ae80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"logback-4" #138 daemon prio=5 os_prio=0 tid=0x0000000006ebe800 nid=0x17fd waiting on condition [0x00007f475c6ec000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c113ae80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"Timer-3" #137 daemon prio=5 os_prio=0 tid=0x0000000004378800 nid=0x17eb in Object.wait() [0x00007f4757696000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.util.TimerThread.mainLoop(Timer.java:552)
        - locked <0x00000006c3d5cfd8> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:505)

"Thread-24" #106 daemon prio=5 os_prio=0 tid=0x000000000a217000 nid=0x17a3 waiting on condition [0x00007f475c4ea000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at sun.print.UnixPrintServiceLookup$PrinterChangeListener.run(UnixPrintServiceLookup.java:961)

"OracleTimeoutPollingThread" #57 daemon prio=10 os_prio=0 tid=0x000000000c213000 nid=0x1762 waiting on condition [0x00007f475d1f2000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:148)

"oracle.jdbc.driver.BlockSource.ThreadedCachingBlockSource.BlockReleaser" #56 daemon prio=4 os_prio=0 tid=0x000000000533b800 nid=0x175e in Object.wait() [0x00007f475d4f3000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaser.run(BlockSource.java:327)
        - locked <0x00000006c2d07998> (a oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaser)

"logback-3" #55 daemon prio=5 os_prio=0 tid=0x000000000ac18800 nid=0x174b waiting on condition [0x00007f475d9f4000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c113ae80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"logback-2" #54 daemon prio=5 os_prio=0 tid=0x0000000006e10000 nid=0x16fc waiting on condition [0x00007f475daf5000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c113ae80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'" #53 daemon prio=5 os_prio=0 tid=0x0000000004ba5000 nid=0x16da in Object.wait() [0x00007f475dbf7000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:247)
        - locked <0x00000006c2d131c8> (a weblogic.work.ExecuteThread)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:281)

"DynamicListenThread[Default]" #52 daemon prio=9 os_prio=0 tid=0x000000000547f000 nid=0x16d9 runnable [0x00007f475def8000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
        at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
        at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
        - locked <0x00000006c2f159a0> (a java.lang.Object)
        at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31)
        at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:532)
        at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:414)
        at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
        at java.lang.Thread.run(Thread.java:748)

"MTUTimer" #50 daemon prio=5 os_prio=0 tid=0x0000000005085800 nid=0x16d8 in Object.wait() [0x00007f475dff9000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.util.TimerThread.mainLoop(Timer.java:552)
        - locked <0x00000006c2d142b8> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:505)

"Druid-ConnectionPool-Destroy-1095059982" #48 daemon prio=5 os_prio=0 tid=0x0000000004ba7000 nid=0x16d3 waiting on condition [0x00007f475eafa000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at com.alibaba.druid.pool.DruidDataSource$DestroyConnectionThread.run(DruidDataSource.java:2768)

"Druid-ConnectionPool-Create-1095059982" #47 daemon prio=5 os_prio=0 tid=0x0000000004ba6800 nid=0x16d2 waiting on condition [0x00007f475ebfb000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c1d66478> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2672)

"Abandoned connection cleanup thread" #46 daemon prio=5 os_prio=0 tid=0x0000000004ba4000 nid=0x16d1 in Object.wait() [0x00007f475fcfc000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
        - locked <0x00000006c278c000> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
        at com.mysql.jdbc.NonRegisteringDriver$1.run(NonRegisteringDriver.java:93)

"logback-1" #43 daemon prio=5 os_prio=0 tid=0x0000000008b23800 nid=0x16bd waiting on condition [0x00007f475fdfd000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c113ae80> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"weblogic.GCMonitor" #42 daemon prio=5 os_prio=0 tid=0x0000000008b41000 nid=0x1698 in Object.wait() [0x00007f47616b8000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
        - locked <0x00000006c1a64b50> (a java.lang.ref.ReferenceQueue$Lock)
        at weblogic.platform.GCMonitorThread.waitForNotification(GCMonitorThread.java:86)
        at weblogic.platform.GCMonitorThread.run(GCMonitorThread.java:62)

"Thread-19" #41 prio=5 os_prio=0 tid=0x000000000533a000 nid=0x1695 waiting on condition [0x00007f47623e8000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c09c1b28> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
        at weblogic.utils.concurrent.JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89)
        at weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:724)
        at weblogic.store.internal.PersistentStoreImpl.synchronousFlush(PersistentStoreImpl.java:1124)
        at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:1116)
        at java.lang.Thread.run(Thread.java:748)

"Thread-18" #40 prio=5 os_prio=0 tid=0x000000000592f800 nid=0x1692 waiting on condition [0x00007f4762fea000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000006c08c7b88> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
        at weblogic.utils.concurrent.JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89)
        at weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:724)
        at weblogic.store.internal.PersistentStoreImpl.synchronousFlush(PersistentStoreImpl.java:1124)
        at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:1116)
        at java.lang.Thread.run(Thread.java:748)

"DoSManager" #39 daemon prio=6 os_prio=0 tid=0x0000000004701800 nid=0x1691 waiting on condition [0x00007f4762ee9000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at com.octetstring.vde.DoSManager.run(DoSManager.java:433)

"VDE Transaction Processor Thread" #36 daemon prio=2 os_prio=0 tid=0x000000000547d800 nid=0x168e in Object.wait() [0x00007f47630eb000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000006c0a73638> (a com.octetstring.vde.backend.standard.TransactionProcessor)
        at java.lang.Object.wait(Object.java:502)
        at com.octetstring.vde.backend.standard.TransactionProcessor.waitChange(TransactionProcessor.java:367)
        - locked <0x00000006c0a73638> (a com.octetstring.vde.backend.standard.TransactionProcessor)
        at com.octetstring.vde.backend.standard.TransactionProcessor.run(TransactionProcessor.java:212)

"[STUCK] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" #33 daemon prio=1 os_prio=0 tid=0x0000000005931000 nid=0x168b runnable [0x00007f4763c30000]
   java.lang.Thread.State: RUNNABLE
        at java.util.zip.Deflater.deflateBytes(Native Method)
        at java.util.zip.Deflater.deflate(Deflater.java:444)
        - locked <0x00000007ae85dd68> (a java.util.zip.ZStreamRef)
        at java.util.zip.Deflater.deflate(Deflater.java:366)
        at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:251)
        at java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:211)
        at java.io.FilterOutputStream.write(FilterOutputStream.java:97)
        at com.lowagie.text.pdf.PdfContents.<init>(Unknown Source)
        at com.lowagie.text.pdf.PdfDocument.newPage(Unknown Source)
        at com.lowagie.text.Document.newPage(Unknown Source)
        at org.eclipse.birt.report.engine.emitter.pdf.PDFPage.<init>(PDFPage.java:98)
        at org.eclipse.birt.report.engine.emitter.pdf.PDFPageDevice.createPDFPage(PDFPageDevice.java:189)
        at org.eclipse.birt.report.engine.emitter.pdf.PDFPageDevice.newPage(PDFPageDevice.java:182)
        at org.eclipse.birt.report.engine.layout.emitter.PageDeviceRender.newPage(PageDeviceRender.java:614)
        at org.eclipse.birt.report.engine.emitter.pdf.PDFRender.newPage(PDFRender.java:78)
        at org.eclipse.birt.report.engine.layout.emitter.PageDeviceRender.addPage(PageDeviceRender.java:519)
        at org.eclipse.birt.report.engine.layout.emitter.PageDeviceRender.visitPage(PageDeviceRender.java:507)
        at org.eclipse.birt.report.engine.layout.emitter.PageDeviceRender.visitContainer(PageDeviceRender.java:181)
        at org.eclipse.birt.report.engine.nLayout.area.impl.ContainerArea.accept(ContainerArea.java:276)
        at org.eclipse.birt.report.engine.layout.emitter.PageEmitter.startPage(PageEmitter.java:51)
        at org.eclipse.birt.report.engine.nLayout.LayoutEngine.outputPage(LayoutEngine.java:963)
        at org.eclipse.birt.report.engine.nLayout.area.impl.PageArea.outputPage(PageArea.java:707)
        at org.eclipse.birt.report.engine.nLayout.area.impl.PageArea.close(PageArea.java:687)
        at org.eclipse.birt.report.engine.nLayout.area.impl.RootArea.autoPageBreak(RootArea.java:68)
        at org.eclipse.birt.report.engine.nLayout.area.impl.ContainerArea.checkPageBreak(ContainerArea.java:752)
        at org.eclipse.birt.report.engine.nLayout.area.impl.TableArea.close(TableArea.java:670)
        at org.eclipse.birt.report.engine.nLayout.LayoutEngine.closeContainer(LayoutEngine.java:376)
        at org.eclipse.birt.report.engine.nLayout.LayoutEngine._endContainer(LayoutEngine.java:497)
        at org.eclipse.birt.report.engine.nLayout.LayoutEngine.endContainer(LayoutEngine.java:361)
        at org.eclipse.birt.report.engine.emitter.ContentEmitterAdapter.endTable(ContentEmitterAdapter.java:80)
        at org.eclipse.birt.report.engine.emitter.CompositeContentEmitter.endTable(CompositeContentEmitter.java:203)
        at org.eclipse.birt.report.engine.layout.html.HTMLTableLayoutEmitter.endTable(HTMLTableLayoutEmitter.java:434)
        at org.eclipse.birt.report.engine.emitter.ContentEmitterUtil.endContent(ContentEmitterUtil.java:105)
        at org.eclipse.birt.report.engine.layout.html.buffer.AbstractNode.end(AbstractNode.java:69)
        at org.eclipse.birt.report.engine.layout.html.buffer.HTMLPageBuffer._endContainer(HTMLPageBuffer.java:158)
        at org.eclipse.birt.report.engine.layout.html.buffer.HTMLPageBuffer.endContainer(HTMLPageBuffer.java:146)
        at org.eclipse.birt.report.engine.layout.html.buffer.TableBreakBuffer.endContainer(TableBreakBuffer.java:328)
        at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.end(HTMLTableLM.java:49)
        at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:141)
        at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
        at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
        at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:181)
        at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)
        at com.xQuant.birtengine.render.AbstractDesignRender.runTask(AbstractDesignRender.java:115)
        at com.xQuant.birtengine.render.AbstractDesignRender.doRender(AbstractDesignRender.java:72)
        at com.xQuant.birtengine.render.PdfDesignRender.render(PdfDesignRender.java:25)
        at com.xQuant.birtengine.config.BirtServlet.doGet(BirtServlet.java:80)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at com.xQuant.birtengine.config.BirtCorsFilter.doFilter(BirtCorsFilter.java:37)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)
        at org.springframework.boot.web.support.ErrorPageFilter.access$000(ErrorPageFilter.java:66)
        at org.springframework.boot.web.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:105)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:103)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:111)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
        at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)
        at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

可以确定是birt打印pdf导致的内存溢出,而且birt系统在很久之后会打印以下日志

Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
        at com.lowagie.text.DocWriter.getISOBytes(Unknown Source)
        at com.lowagie.text.pdf.ByteBuffer.append(Unknown Source)
        at com.lowagie.text.pdf.PdfContentByte.rectangle(Unknown Source)
        at org.eclipse.birt.report.engine.emitter.pdf.PDFPage.clip(PDFPage.java:105)
        at org.eclipse.birt.report.engine.layout.emitter.AbstractPage.startClip(AbstractPage.java:36)
        at org.eclipse.birt.report.engine.layout.emitter.PageDeviceRender.startClip(PageDeviceRender.java:653)
        at org.eclipse.birt.report.engine.layout.emitter.PageDeviceRender.startContainer(PageDeviceRender.java:252)
        at org.eclipse.birt.report.engine.layout.emitter.PageDeviceRender.addPage(PageDeviceRender.java:526)
        at org.eclipse.birt.report.engine.layout.emitter.PageDeviceRender.visitPage(PageDeviceRender.java:507)
        at org.eclipse.birt.report.engine.layout.emitter.PageDeviceRender.visitContainer(PageDeviceRender.java:181)
        at org.eclipse.birt.report.engine.nLayout.area.impl.ContainerArea.accept(ContainerArea.java:276)
        at org.eclipse.birt.report.engine.layout.emitter.PageEmitter.startPage(PageEmitter.java:51)
        at org.eclipse.birt.report.engine.nLayout.LayoutEngine.outputPage(LayoutEngine.java:963)
        at org.eclipse.birt.report.engine.nLayout.area.impl.PageArea.outputPage(PageArea.java:707)
        at org.eclipse.birt.report.engine.nLayout.area.impl.PageArea.close(PageArea.java:687)
        at org.eclipse.birt.report.engine.nLayout.area.impl.RootArea.autoPageBreak(RootArea.java:68)
        at org.eclipse.birt.report.engine.nLayout.area.impl.ContainerArea.checkPageBreak(ContainerArea.java:752)
        at org.eclipse.birt.report.engine.nLayout.area.impl.TableArea.close(TableArea.java:670)
        at org.eclipse.birt.report.engine.nLayout.LayoutEngine.closeContainer(LayoutEngine.java:376)
        at org.eclipse.birt.report.engine.nLayout.LayoutEngine._endContainer(LayoutEngine.java:497)
        at org.eclipse.birt.report.engine.nLayout.LayoutEngine.endContainer(LayoutEngine.java:361)
        at org.eclipse.birt.report.engine.emitter.ContentEmitterAdapter.endTable(ContentEmitterAdapter.java:80)
        at org.eclipse.birt.report.engine.emitter.CompositeContentEmitter.endTable(CompositeContentEmitter.java:203)
        at org.eclipse.birt.report.engine.layout.html.HTMLTableLayoutEmitter.endTable(HTMLTableLayoutEmitter.java:434)
        at org.eclipse.birt.report.engine.emitter.ContentEmitterUtil.endContent(ContentEmitterUtil.java:105)
        at org.eclipse.birt.report.engine.layout.html.buffer.AbstractNode.end(AbstractNode.java:69)
        at org.eclipse.birt.report.engine.layout.html.buffer.HTMLPageBuffer._endContainer(HTMLPageBuffer.java:158)
        at org.eclipse.birt.report.engine.layout.html.buffer.HTMLPageBuffer.endContainer(HTMLPageBuffer.java:146)
        at org.eclipse.birt.report.engine.layout.html.buffer.TableBreakBuffer.endContainer(TableBreakBuffer.java:328)
        at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.end(HTMLTableLM.java:49)
        at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:141)
        at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lang20150928

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值