1000qps的JVM内存设置多大的内存
接口背景假设:
接口条件:支持1000QPS
接口响应:100ms
接口返回报文: 10kb
一、计算 1000qps所需要的内存
那么1000qps的请求需求的内存:1000*10kb=10000kb=9.8M
也就是说每秒需要9.8M的内存。
二、计算多久触发一次ygc
说明:ygc即堆的年轻代进行GC回收,触发条件为:eden、from幸存区内存满了或者不够了就会触发。一般要求ygc达到分钟级别(即最多一分钟执行一次young gc)
1、计算1000qps每分钟所需的新生代内存:60*9.8M=588M
注:新生代内存与老年代内存的比例:1:2 (注:堆内存 = 新生代内存 + 老年代内存)
2、计算所需要堆的大小:588M * 3 = 1764M = 1.764G
3、那么堆内存设置2G就够了。
三、需要多少个节点实例
根据刚才计算的堆内存设置2G,单节点即可满足1000qps了。
如为了高可用可以部署2个节点,每个节点承担500qps即可。
四、计算最大支持并发数
springcloud springboot的线程数取决于tomcat的线程数,tomcat的默认线程数为200。
1、计算单个线程处理的qps:1000qps/100ms=10个
2、计算200线程处理的qps: 10个*200线程=2000qps
3、2000qps每秒需要的内存:2000qps*10kb=20000kb=20M左右
注:2G的堆内存 ,新生代大概600M
4、计算2000qps的ygc时间: 600M/20M=30秒
注:30秒ygc可以接受
5、所以最大支持并发数:2000qps
注:本场景,超过2000qps基本就不能再优化,需要通过加机器的方式来提高并发。
1000qps的JVM内存设置多大的内存相关推荐
- JVM内存设置多大合适?Xmx和Xmn如何设置?
本文地址: https://www.dutycode.com/jvm_xmx_xmn_xms_shezhi.html 除非注明,文章均为 www.dutycode.com 原创,欢迎转载!转载请注明本 ...
- 【JVM原理与优化】JVM内存设置多大合适?Xmx和Xmn如何设置?
原文地址:https://www.dutycode.com/jvm_xmx_xmn_xms_shezhi.html 问题: 新上线一个java服务,或者是RPC或者是WEB站点, 内存的设置该怎么设置 ...
- JVM内存设置多大合适? Xmx和Xmn如何设置
问题: 新上线一个java服务,或者是Rpc或者是Web站点,内存的设置改怎么设置呢?设置多大合适呢? 分析: 依赖的原则是根据Java Performance里面的推荐公式来进行设置. · 具体来讲 ...
- java xmx设置_JVM内存设置多大合适?Xmx和Xmn如何设置?
问题: 新上线一个java服务,或者是RPC或者是WEB站点, 内存的设置该怎么设置呢?设置成多大比较合适,既不浪费内存,又不影响性能呢? 分析: 依据的原则是根据Java Performance里面 ...
- 内存虚拟化、内存复用、大页内存作用及详解
内存虚拟化.内存复用.大页内存作用及详解 1. 内存虚拟化 2. 内存复用 2.1. 内存共享 2.2. 内存置换 2.3. 内存气泡 3. 大页内存 3.1. 大页内存原理 3.2. 大页内存配置 ...
- JVM XMX设置多大比较好,Docke容器里该怎么设置JVM呢@无界编程
XMX是JVM的最大堆内存大小,XMS是JVM的初始堆内存大小. 不管是工作还是面试经常遇到一个问题就是XMX到底设置多大比较好? 网上的答案大多是说XMX和XMS设置为一样大,但是没有说到底XMX设 ...
- mysql内存片多大_内存带宽对mysql影响多大?
网络是数据库基础架构的主要部分.但是,通常性能基准测试是在本地计算机上完成的,客户端和服务器并置在一起.这样做是为了简化结构并排除一个以上的变量(网络部分),但是我们也忽略了网络对性能的影响.对于像 ...
- 怎么设置java内存_如何修改jvm内存 内存设置过大
斯蒂芬大帝 java虽然是自动回收内存,但是应用程序,尤其服务器程序最好根据业务情况指明内存分配限制.否则可能导致应用程序宕掉.-Xms128m:表示JVM Heap(堆内存)最小尺寸128MB,初始 ...
- JVM参数汇总:JVM内存设置多大合适?Xmx和Xmn如何设置
一.java启动参数共分为三类: 其一是标准参数(-), 所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X), 默认jvm实现这些参数的功能,但是并不保证所有jvm实现 ...
最新文章
- POJ1067_取石子游戏_威佐夫博弈
- 三关节机械臂控制命令修改
- To connect to files.phpmyadmin.net insecurely, use `--no-check-certificate‘
- python3 动态创建类对象并调用函数
- java动态变量名反射_Java动态性—反射 - Eclipse666的个人空间 - OSCHINA - 中文开源技术交流社区...
- 客户端通过SSH private key 登录远端服务器
- c++ mysql 导入sql_mysql导入sql文件命令和mysql远程登陆使用详解
- Java 位运算符 深入理解
- 解决bootstrap模态框居中问题
- 苦于E63没有秒表,网上找的不好用,就自己写个简单的
- Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解
- linux下多线程断点下载工具-axel
- Linux使用信号量监控程序异常退出
- txt文件转为excel文件
- 解决sns加载数据load_dataset()报错问题
- 每日小结(就不平衡问题探讨)
- 使用Python将word转换为pdf
- 计算机函数sumif实例,「稻客说函数」SUMIF函数实例详解
- html输入框位置控制,JS 控制input 输入框光标位置
- SQL server 2019和 SSMS下载与安装教程