事情是这样:
1,有两个进程使用rmi通信,进程A负责向进程B发送信息,进程B负责处理进程。其中A没2秒向B发送一个List对象过来,B则将收到的A发送的List存储起来,因为可能B可能暂时处理不过来
2,A如果发送的List过大,会导致B根本没时间处理,导致B的内存出现井喷现象,甚至出现OutOfMemery错误而挂死
3,我试着修改了GC的各种配置,可还是解决不了问题
请大家能给我支招解决问题,感激不尽!!!
事情是这样:
1,有两个进程使用rmi通信,进程A负责向进程B发送信息,进程B负责处理进程。其中A没2秒向B发送一个List对象过来,B则将收到的A发送的List存储起来,因为可能B可能暂时处理不过来
2,A如果发送的List过大,会导致B根本没时间处理,导致B的内存出现井喷现象,甚至出现OutOfMemery错误而挂死
3,我试着修改了GC的各种配置,可还是解决不了问题
请大家能给我支招解决问题,感激不尽!!!
你B的进程VM参数中 有没有设置初始内存和最大内存
你看是否可以这样:
1、A 向 B发送数据之前,先检测一下B的负载,让B返回一个是否能接收新数据,如果可以接收新数据,就往B发送,如果不能,就过一定时间再发送
2、看看能否优化一下B的效率,使B能处理得更快,或者把内存的数据先转移。
3、考虑把B发布成分布式应用,缓解单个应用的压力