首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 7.28.4应用程序一次有太多JMeter线程的问题

Laravel 7.28.4应用程序一次有太多JMeter线程的问题
EN

Stack Overflow用户
提问于 2021-01-23 23:35:40
回答 1查看 40关注 0票数 0

我们最近更新了我们的服务器到一个更强大的设置,因为我们期望更高的用户数量。我们在服务器上运行一个Laravel 7.28.4应用程序,用户通过按顺序访问大约10个网页来与之交互,他在其中的3个网页中提供数据并将它们发布到服务器,服务器将它们放入数据库中。然后,服务器将发送一封电子邮件,告知一切都已完成。

现在我们用Apache JMeter做了一个压力测试,每小时有近130.000次访问,我们精确地为每个线程重现了这个10步序列。请求是立即连续完成的,服务器很容易处理它。我们在这里使用了大约250个线程。

然而,如果我们做一个压力测试,每小时只有60000次访问,在每个请求之间有更多的线程和等待时间,服务器会完全超负荷工作和缓慢。许多请求得到错误503或522。这里我们使用了大约500个线程。

在进行这些压力测试时,服务器的RAM使用率为5-6%,CPU使用率为10-12%。我不认为数据库/邮件服务器/硬件是瓶颈,如果在处理更多请求时一切都运行良好。

然而,我猜Laravel很难同时管理多个会话?我已经尝试将会话驱动程序交换到数据库,而不是文件存储。结果也好不到哪里去。

有人知道我可以做些什么来提高服务器的响应时间吗?或者,可能还有其他想法来解释为什么它正在与更多的线程作斗争?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-01-25 13:18:08

根据12 Tips for Laravel Performance Optimization in 2020的文章,我不认为使用文件或数据库是一个合适的选择:

选择快速缓存和会话驱动程序以获得最佳的Laravel性能调优,最佳方法是将缓存和会话部分存储在内存中。我认为Laravel 5性能最快的缓存和会话驱动是Memcached。

用于更改会话驱动的驱动密钥通常位于app/config/session.php中。同样,用于更改缓存驱动程序的驱动程序键位于app/config/cache.php中

至于你的测试本身,既然它做了应该没问题的工作,但是你的“每小时访问次数”方法听起来有点奇怪,我宁愿将JMeter配置为完全像一个真正的用户一样使用真正的浏览器,包括在操作之间的“思考时间”和操纵线程的数量-这样我就能够声明系统支持X个并发用户而没有问题。

更多信息:What is the Relationship Between Users and Hits Per Second?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65861045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档