堆内存溢出时自动导出 heapdump 文件

一、 在本地服务器的测试

为了方便测试堆内存溢出,设置了堆内存空间,以及容器可使用的内存大小。

注意:堆内存空间不能大于等于容器可使用的内存,因为如果容器的内存满了会被系统kill掉,heapdump 文件来不及导出。

1. 配置dockerfile 文件

FROM openjdk:17-jdk

# 设置工作目录
WORKDIR /usr/app

# 复制应用Jar包
COPY ./app.jar /usr/app/

# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN mkdir -p /usr/app/logs && chmod 755 /usr/app/logs

EXPOSE 8090

ENTRYPOINT ["java"]
CMD ["-Xms256m","-Xmx256m","-XX:+UseG1GC","-XX:+HeapDumpOnOutOfMemoryError","-XX:HeapDumpPath=/usr/app/logs/heapdump.hprof","-Xlog:gc*:file=/usr/app/logs/gc.log:time,uptime,level,tags:filecount=5,filesize=10m","-jar","/usr/app/app.jar"]

2. 配置 docker-compose 文件

services:    
    app-service:
        container_name: "app_service"
        restart: unless-stopped
        image: "image-name"
        deploy:
          resources:
            limits
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值