| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 高并发下jmeter性能压测及性能提升解决方案(一)tomcat基础优化 -> 正文阅读 |
|
[Java知识库]高并发下jmeter性能压测及性能提升解决方案(一)tomcat基础优化 |
Jmeter工具使用:下载地址:jmeter.apache.org 常用命令设置:
线程组: ? ? ? ? 可以创建线程组。 ?上图表示在10s中开启100个线程,每个线程调用10次接口。 Http请求: ? ? ? ? 在线程组下设置Http请求。 上图表示使用http协议,GET方式请求接口? 查看结果树: ? ? ? ? 在线程组下添加结果树。 上图会返回对应接口返回的结果集和日志。? 聚合报告: ? ? ? ? 在线程组下添加聚合报告。 ?上图显示信息有此接口的平均值,中间值,90线,95线,99线,最小值,最大值,Error,TPS(并发数/耗时),Recv数据包大小等。 性能提升:先用jmeter工具测试当前服务端并发数下的性能数量,在根据实际情况逐步提升并发数。 常用命令:
常见参数如上图: ? ? ? ? load average:最近的1min,10min,15min的load数量(IO操作) ? ? ? ? us:用户态下cpu耗时 ? ? ? ? sy:内核空间对系统的占用 server端并发线程数上不去问题:? ? ? ? ?在jmeter中逐渐提升并发数,直到出现Error,查看当前服务器的线程数量,就得到了最大线程数。 解决: ? ? ? ? 1.增大容量:修改spring内嵌tomcat中spring-configuration-metadata.json文件下各个节点的配置
注意:默认配置下:连接超过10000后出现拒接连接情况;默认配置下,触发的请求超过200+100后拒接处理 完事可以通过jmeter进行适量压测,在通过top -H可以观察到程序主要耗时实在MySql上: ? ? ? ? ?2.定制化Tomcat开发:使用WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>定制化内嵌tomcat配置
响应时间变长TPS上不去:经过jmeter测试,单Web容器上限: 线程数量:4核8G内存单进程调度线程数800-1000以上后即花费巨大的时间在cpu调度上 等待队列长度:队列做缓冲池用,但也不能无限长,消耗内存,出队也耗cpu MySql数据库QPS容量问题: 主键查询(聚簇索引,innoDB也可以设置Buffer缓存):千万级数据 = 1-10毫秒 唯一索引查询:千万级别数据 = 10-100毫秒 非唯一索引查询:千万级别数据 = 100-1000毫秒 无索引(全表扫描):百万级别数据 = 1000毫秒+(不可接受) 非插入更新删除操作:同查询 插入操作:1w~10w tps(依赖配置优化) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/18 17:59:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |