Jmeter压测newbee-mall-plus:10万请求0异常!家用电脑6核12线程性能优化实践
【免费下载链接】newbee-mall-plus🔥 🎉newbee-mall-plus 项目是 newbee-mall 项目的升级版本,增加了优惠券模块、商品秒杀模块、支付宝支付,优化了搜索功能,后续会继续增加功能模块以及流行的技术栈。项目地址: https://gitcode.com/gh_mirrors/ne/newbee-mall-plus
newbee-mall-plus是newbee-mall项目的升级版本,增加了优惠券模块、商品秒杀模块、支付宝支付,优化了搜索功能,后续会继续增加功能模块以及流行的技术栈。本文将分享如何在6核12线程的家用电脑上,通过Jmeter对newbee-mall-plus进行压测,并实现10万请求0异常的性能优化实践。
一、压测环境与准备工作
在进行压测之前,我们需要准备好相应的环境。本次压测使用的是一台6核12线程的家用电脑,操作系统为Linux。首先,我们需要克隆项目仓库,仓库地址是https://gitcode.com/gh_mirrors/ne/newbee-mall-plus。
二、Jmeter压测结果展示
通过Jmeter进行压测,我们得到了令人惊喜的结果。在1秒内发送10万请求的情况下,系统表现稳定,无任何异常。以下是压测结果的截图:
从图中可以看到,总请求数为100000,平均响应时间为57毫秒,90%的请求响应时间在78毫秒以内,95%的请求响应时间在103毫秒以内,99%的请求响应时间在500毫秒以内,最小响应时间为25毫秒,最大响应时间为929毫秒,错误率为0.00%。这样的性能表现对于家用电脑来说非常出色。
三、性能优化实践
3.1 Redis缓存优化
Redis缓存是提升系统性能的重要手段之一。在newbee-mall-plus项目中,通过合理配置Redis缓存,可以有效减轻数据库的压力,提高系统的响应速度。
在项目的CacheConfig.java文件中,对Redis缓存进行了详细的配置。其中,设置了缓存的默认过期时间为300秒,通过entryTtl(Duration.ofSeconds(300))实现。同时,使用了GenericFastJsonRedisSerializer作为值的序列化器,提高了序列化和反序列化的效率。相关代码如下:
private RedisCacheConfiguration defaultCacheConfig() { return RedisCacheConfiguration.defaultCacheConfig() .prefixCacheNameWith(Constants.REDIS_KEY_PREFIX) .entryTtl(Duration.ofSeconds(300)) .disableCachingNullValues(); }此外,还配置了Lettuce客户端的Socket选项,启用了TCP keep-alive机制,设置了keep-alive的间隔为10秒,空闲时间为30秒,尝试次数为3次。这有助于保持与Redis服务器的连接,减少连接建立的开销。
3.2 线程池配置优化
合理的线程池配置可以充分利用系统资源,提高并发处理能力。在newbee-mall-plus项目的TaskService.java文件中,使用了ScheduledThreadPoolExecutor来处理定时任务。
ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1, new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build());这里创建了一个核心线程数为1的定时线程池,通过设置守护线程,确保在应用程序关闭时线程能够正常退出。虽然核心线程数为1,但在实际应用中,可以根据系统的负载情况和任务的特性,调整线程池的参数,如核心线程数、最大线程数、队列容量等,以达到最佳的性能。
四、总结
通过对newbee-mall-plus项目进行Jmeter压测和性能优化实践,在6核12线程的家用电脑上实现了10万请求0异常的良好表现。主要的优化手段包括合理配置Redis缓存和线程池。在实际应用中,还可以根据具体的业务场景和性能需求,进一步进行优化,如数据库优化、代码优化等。希望本文的实践经验能够为newbee-mall-plus的使用者提供一些参考,让项目在不同的环境下都能发挥出最佳的性能。
【免费下载链接】newbee-mall-plus🔥 🎉newbee-mall-plus 项目是 newbee-mall 项目的升级版本,增加了优惠券模块、商品秒杀模块、支付宝支付,优化了搜索功能,后续会继续增加功能模块以及流行的技术栈。项目地址: https://gitcode.com/gh_mirrors/ne/newbee-mall-plus
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考