前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM各种问题 顶

JVM各种问题 顶

作者头像
算法之名
发布2019-08-20 11:08:40
3550
发布2019-08-20 11:08:40
举报
文章被收录于专栏:算法之名算法之名

1、如果启动什么都不设,会怎样?

先来看一个命令

[root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

一般来说,什么都不设,应用程序的初始内存会很大,垃圾回收器使用的是ParallelGC,这个在新生代是没什么问题的,但问题时老年代,老年代用的是串行回收器,这对于多核CPU来说是一个巨大的浪费,建议配置:-Xmx256M -Xms64M(这两项根据实际情况定,建议设为相等) -XX:+UseParallelOldGC -XX:ParallelGCThreads=8(具体根据你的CPU核数设定) -XX:PermSize=32M(根据你的应用程序产生的类的数量决定)

2、一个网站的最大并发量和吞吐量

首先吞吐量并不等于并发量,吞吐量是 每秒钟request/事务 数量 ,并发量是 系统同时处理的request/事务数

吞吐量 = 并发量/响应时间。

有时候有很大的吞吐量的时候未必能构成并发,因为有时间间隔,要达到并发需要访问量足够大,几乎同时到达。

最大吞吐量是有极限的,跟单台服务器的配置以及JVM的设参有关系,因为GC回收垃圾需要时间,系统不响应你也没办法。

最大并发量其实跟系统有关,是一个计算机术语,哪怕是1秒内,相差毫秒级也不会构成并发,构成并发其实是同时,这个值跟计算机的线程数有关系,而线程数又跟计算机的核数有关系,这个值也不是越大越好,因为线程切换需要时间,线程多了反而会拖慢系统。

这里面有些是个人见解,如果有不对,欢迎大家指出,谢谢!

3、压测最大吞吐量的方法

Jmeter压测,设置线程参数,Http请求参数以及混合报表。

具体这个Throughput值就是我们要的吞吐量的极限值。再乘以一天的秒数就是日最大吞吐量。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档