阿里:每天100w次登陆请求, 8G内存该如何设置JVM参数

每天100w次登陆请求, 8G 内存该如何设置JVM参数,大概可以分为以下步骤 。

有些同学看到这些步骤还是发憷,说的好像是那么回事,一到实际项目中到底怎麽做我还是不知道!

光说不练假把式,以登录系统为例模拟一下推演过程:

  1. 假设每天100w次登陆请求,登陆峰值在早上,预估峰值时期每秒100次登陆请求。
  2. 假设部署3台服务器,每台机器每秒处理30次登陆请求,假设一个登陆请求需要处理1秒钟,JVM新生代里每秒就要生成30个登陆对象,1s之后请求完毕这些对象成为了垃圾。一个登陆请求对象假设20个字段,一个对象估算500字节,30个登陆佔用大约15kb,考虑到RPC和DB操作,网络通信、写库、写缓存一顿操作下来,可以扩大到20-50倍,大约1s产生几百k-1M数据。
  3. 假设2C4G机器部署,分配2G堆内存,新生代则只有几百M,按照1s1M的垃圾产生速度,几百秒就会触发一次MinorGC了。
  4. 假设4C8G机器部署,分配4G堆内存,新生代分配2G,如此需要几个小时才会触发一次MinorGC。

所以,可以粗略的推断出来一个每天100w次请求的登录系统,按照4C8G的3实例集群配置,分配4G堆内存、2G新生代的JVM,可以保障系统的一个正常负载。

基本上把一个新系统的资源评估了出来,所以搭建新系统要每个实例需要多少容量多少配置,集群配置多少个实例等等这些,并不是拍拍脑袋和胸脯就可以决定的下来的。

JVM参数

描述

默认

推荐

-Xms

Java堆内存的大小

OS内存64/1

OS内存一半

-Xmx

Java堆内存的最大大小

OS内存4/1

OS内存一半

-Xmn

Java堆内存中的新生代大小,扣除新生代剩下的就是老年代的内存大小了

跌认堆的1/3

sun推荐3/8

-Xss

每个线程的栈内存大小

和idk有关

sun

2024阿里春招福利:

全部评论
#2024实习#阿里巴巴
点赞 回复 分享
发布于 2023-03-08 17:18 浙江

相关推荐

评论
9
54
分享
牛客网
牛客企业服务