Oracle EBS 大量并发请求提交导致内存不足系统杀死Java JVM进程

Oracle EBS服务器的操作系统是Linux 32位的,已经服役将近7年了尴尬。由于月底刚好要盘点,财务要求仓库不要采购接收入库,已经累积了二天的采购接收入库单据需要待入库的,第三天上午集中做采购接收入库,而采购接收入库是客制化开发的,为了方便用户批量接收入库,用户在短时间时提交57个采购接收入库请求,加上上午刚好需要给任务单批量发料和对物料事务处理的零成本设置了预警发邮件(占大多数)。导致大量请求等待运行,准标管理器(参考如下图)中堆累了2800多个请求在等待执行,所有用户提交的请求长时间等待。

使用root用户登陆到服务器检查日志信息。

[root@test ~]# dmesg

Free pages:       16832kB (1600kB HighMem)
Active:989274 inactive:7185884 dirty:164757 writeback:1907 unstable:0 free:4208 slab:92406 mapped:364437 pagetables:30301
DMA free:12456kB min:64kB low:128kB high:192kB active:0kB inactive:0kB present:16384kB pages_scanned:0 all_unreclaimable? yes
protections[]: 0 0 0
Normal free:2776kB min:3728kB low:7456kB high:11184kB active:2964kB inactive:181744kB present:901120kB pages_scanned:946935 all_unreclaimable? yes
protections[]: 0 0 0
HighMem free:1600kB min:512kB low:1024kB high:1536kB active:3954132kB inactive:28562000kB present:34734080kB pages_scanned:0 all_unreclaimable? no
protections[]: 0 0 0
DMA: 4*4kB 3*8kB 2*16kB 3*32kB 4*64kB 2*128kB 2*256kB 0*512kB 1*1024kB 1*2048kB 2*4096kB = 12456kB
Normal: 0*4kB 13*8kB 3*16kB 0*32kB 3*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 1*2048kB 0*4096kB = 2776kB
HighMem: 24*4kB 56*8kB 26*16kB 4*32kB 0*64kB 0*128kB 2*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1600kB
7971600 pagecache pages
Swap cache: add 39533379, delete 39463739, find 14326603/18433760, race 6+1371
1292 bounce buffer pages
Free swap:       16335800kB
8912896 pages of RAM
8155583 pages of HIGHMEM
599298 reserved pages
4628289 pages shared
70543 pages swap cached
Out of Memory: Killed process 24873 (java).
根据日志分析可能是大量并发请求提交致导内存不足,系统进程杀死Java JVM进程,而请求一直接等待Java处理输出结果,从而所有请求全在等待。

猜你喜欢

转载自blog.csdn.net/chenxianping/article/details/78401249