Skip to content

超大cache文件DubboSaveRegistryCache-thread-1线程多次加载致使内存溢出 #685

@maodie007

Description

@maodie007

在dubbo的服务注册缓存文件cache目录下的文件已经达到了900M
System.getProperty ("user.home") + "/.dubbo/dubbo-registry-" + url.getHost () + ".cache"
对比其他正常服务器,正常文件大小只有1-2M,打开这个900M的文件其中很多内容为 \u0000,
由于dubbo默认每隔10分钟会读取这个文件,由于文件太大,导致每次读取造成频繁的GC最终致使JVM在这个时间段内CPU负载非常高而无法处理业务请求。
通过DUMP内存,发现内存泄露都是线程
java.lang.Thread @ 0x779569808 DubboSaveRegistryCache-thread-1
其中同样类似的线程还有2个,每个线程占用200-300M
另外还有大对象 com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry 3个无法回收,200M左右一个
总计1.5G大小内存无法释放!

为何会有如此大的缓存文件?为何同样的文件会被不同的线程多次加载?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions