首页 > 其他分享 >springboot maxheadersize 配置不当 oom

springboot maxheadersize 配置不当 oom

时间:2022-11-21 15:24:24浏览次数:44  
标签:http springboot oom max 配置 header OOM maxheadersize size

在SpringBoot项目中,我们可以通过如下配置来设置header的大小:

server.max-http-header-size=102400

但如果此参数设置不好,便会引来OOM等相关问题,特别是并发的时候。

max-http-header-size使用场景

该参数用来设置http请求头的大小,默认值为8k,也就是8 * 1024的大小。

那么,什么时候会配置max-http-header-size参数呢?

比如,当我们上传图片时采用multipart形式上传文件时,对应的配置如下:

spring.http.multipart.max-file-size=20Mb spring.http.multipart.max-request-size=60Mb

但这个配置针对base64形式上传图片就不适用了,需要如下配置:

server.maxHttpHeaderSize=102400 server.maxHttpPostSize =102400

但这样的配置就很容易造成OOM。

造成OOM的原因

之所以该参数配置过大,在并发的时候会造成OOM是因为Http请求时内存分配的问题。

比如将max-http-header-size的大小配置为100M,那么并发量100时,那么内存分配就是100* 100,将近

标签:http,springboot,oom,max,配置,header,OOM,maxheadersize,size
From: https://www.cnblogs.com/ruiy/p/16911464.html

相关文章

  • springboot配置多数据源
    最近在做一个换电站的项目需要用到多数据源,配置方法如下一:在yml文件里先把数据源信息配置好spring:application:name:base-serverdatasource:type:co......
  • SpringBoot自定义注解+AOP+redis实现防接口幂等性重复提交,从概念到实战
    一、前言在面试中,经常会有一道经典面试题,那就是:​​怎么防止接口重复提交?​​​小编也是背过的,好几种方式,但是一直没有实战过,做多了管理系统,发现这个事情真的没有过多的重......
  • Springboot整合Swagger(二)
    1、创建Springboot项目2、引入swagger依赖<!--SpringBoot-starter--><dependency><groupId>org.springframework.boot</groupId>......
  • SpringBoot使用@Async的总结!
    一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。之前有写过一篇文章叫做:异步编程利器:CompletableFuture在实际工作中也更加推荐使用CompletableFuture......
  • SpringBoot14(监听机制)
    一、java监听机制(麻烦、繁琐,不推荐)二、SpringBoot监听机制三、代码实现1-包的定义2-listener代码块1-MyApplicationContextInitializerMyApplicationCont......
  • Jenkins容器<二>---发布springboot项目 20221004
    一、Jenkins容器<->---通过docker安装 20221004 二、Jenkins容器<二>---发布springboot项目 20221004   1、系统配置      安装插件 ......
  • springboot创建可执行文件jar
    要创建可执行文件jar,我们需要将spring-boot-maven-plugin添加到我们的pom.xml中。要做到这一点,请在dependencies部分下方插入以下行:<build><plugins><plug......
  • SpringBoot日志框架LogBack
    logback记录器的属性依赖SpringBoot天生集成了logback日志框架,因此想要输出日志,根本不用再引入多余的依赖日志文件说明appender-为日志输出目的地,log4提供的ap......
  • ES教程-springboot整合ES
    1、springboot如何整合ES1、导入坐标(下面是老版本的es坐标官方已经不推荐使用)<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-b......
  • springboot+vue 前后端分离项目对 token 的无痛刷新
    前言最近在做一个系统时,使用了token令牌来进行前后端交互的权限认证。token一般用于前端向后端发起请求时的权限认证。用户登录自己的账号后,会得到一个token,放在每......