1.内存泄漏
高并发下,每秒百万请求,每次在循环内不断的创建对象,已导致内存撑爆,导致内存泄漏
2.性能指标
2.1)、响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响
应结束,整个过程所耗费的时间。
2.2)、HPS(Hits Per Second) :每秒点击次数,单位是次/秒。
2.3)、TPS(Transaction per Second):系统每秒处理交易数,单位是笔/秒。
2.4)、QPS(Query per Second):系统每秒处理查询次数,单位是次/秒。
2.5)、最大响应时间(Max Response Time) 指用户发出请求或者指令到系统做出反应(响应)的最大时间。
2.5)、最大响应时间(Max Response Time) 指用户发出请求或者指令到系统做出反应(响应)的最大时间。
2.6)、最少响应时间(Mininum ResponseTime) 指用户发出请求或者指令到系统做出反应(响应)的最少时间。
2.7)、90%响应时间(90% Response Time) 是指所有用户的响应时间进行排序,第 90%的响应时间。
2.8)、从外部看,性能测试主要关注如下三个指标
吞吐量:每秒钟系统能够处理的请求数、任务数。
响应时间:服务处理一个请求或一个任务的耗时。
错误率:一批请求中结果出错的请求所占比例。
3.一般要求
无论
TPS
、
QPS
、
HPS,
此指标是衡量系统处理能力非常重要的指标,越大越好,根据经
验,一般情况下:
金融行业:
1000TPS~50000TPS
,不包括互联网化的活动
保险行业:
100TPS~100000TPS
,不包括互联网化的活动
制造行业:
10TPS~5000TPS
互联网电子商务:
10000TPS~1000000TPS
互联网中型网站:
1000TPS~50000TPS
互联网小型网站:
500TPS~10000TPS
4、
影响性能考虑点包括:
数据库、应用程序、中间件(
tomact
、
Nginx
)、网络和操作系统等方面
5、jvm内存模型
堆:所有的对象实例以及数组都要在堆上分配,堆是垃圾收集器管理的主要区域,也被称为“GC堆”
新生代 :Eden,From Survivor,To Survivor
老年代
永久代
/
元空间
元数据区:
6.例如
一个新对象的创建,会先来的e电元区,放的下,直接存,放不下去进去一次CG(垃圾回收,也就是新生代区),放的下就继续放在e电元取,如果还不下,任务是一个大对象,尝试放在老年代区,如果老年代也放不下,就进行一次大GC(垃圾回收),就是新生代和老年代一些没用的全踢出去。如果还放不下就会报内存溢出异常。
![](https://i-blog.csdnimg.cn/blog_migrate/d1bb845d8e506bd4660bc5a02c40a729.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d2b07de31286068d839421f632e345cb.png)
e电元区GC(垃圾回收)会把对象放到幸存区。腾出空间来
EGC :e电元区不够了执行
FGC:新生代区不够了执行
7.jconsole
通过命令行启动,可监控本地和 远程应用
![](https://i-blog.csdnimg.cn/blog_migrate/6505301536be7d67e618b4f6852f4163.png)
![](https://i-blog.csdnimg.cn/blog_migrate/92c3ea9418d3ba04d8179020c9535a68.png)
8.jvisualvm
运行:正在运行的
休眠:sleep
等待:wait
驻留:线程池里面的空闲线程
监视:阻塞的线程,正在等待锁
结论:中间件越多,性能损失越大,大多损失在网络交换了
还有什么问题可以留言哦~,加群 qq527413340