背景
一个普通项目需要做1000左右的压力测试,用nginx做了反向代理,然后在压测过程中,出现了一些问题。
压测工具:python+locust
测试场景
当时模拟了添加后列表刷新的场景,如图所示。
问题
出现问题如下:
一共3种:
1、500 server error :internal server for url
2、502 server error :bad gateway for url
3、504 server error :gateway time-out for url
分析与处理
1、一开始有nginx报错,所以修改了nginx配置
worker_processes 8;#修改进程数
worker_connections 2048;#修改连接数
2、查看日志发现应用报错:Caused by: java.lang.OutOfMemoryError: Java heap space
java的堆内存不够了
所以修改dockerfile,
FROM anapsix/alpine-java:8_server-jre_unlimited
MAINTAINER www.joolun.com
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN mkdir -p /target
WORKDIR /target
EXPOSE 8005
ADD ./target/city_asset_app-1.0-SNAPSHOT.jar ./
CMD sleep 60;java -Xms1g -Xmx4g -Djava.security.egd=file:/dev/./urandom -jar city_asset_app-1.0-SNAPSHOT.jar
初始内存1G,最大内存4G
重新打包镜像,启动容器。问题消失。