Wik*_*iki 11 processor playframework playframework-1.x
我正在使用Play框架1.2.5,过去两天我在负载测试方面遇到了一个非常大的问题,即每次调用服务器的API都需要大约1200-1400ms的平均值,但今天我只更改了以下一行在application.conf文件中 ,它将平均时间大大缩短到20-50毫秒,该行如下,
application.mode=prod
%prod.application.mode=prod
Run Code Online (Sandbox Code Playgroud)
最初它就像
application.mode=dev
%prod.application.mode=prod
Run Code Online (Sandbox Code Playgroud)
所以从中我可以理解,从开发到生产的变化使得我在互联网上找到的东西是,在开发模式下,play.pool = 1默认情况下,而在生产模式中,play.pool = no of processors + 1,我的ubuntu机器是4处理器所以它使用5个线程.现在来的问题,如果我发现了什么,然后当我在手动更改play.pool = 5是真的application.conf不给我一个更快的结果既不如果我设置play.pool = 1,并在生产模式下运行也不会减慢我的应用程序负载测试结果,所以我需要知道当我从dev更改为prod模式时会发生什么,除了这个play.pool使我的应用程序更快.因为我面临的问题在UAT中,在prod模式下也没有好的结果,它只能在我的localhost.please中找到我的解决方案.
更新:
是的我知道所有这些东西,如DEV模式,应用程序重新加载和编译,但也许它不是每个请求只在初始程序加载我认为,但我的问题是这个prod模式在我的localhost和我的本地正常工作服务器,当我去UAT时,我在负载测试中得到的结果差不多是800平方米左右.甚至在prod中应用程序也很慢,即使我在本地执行loadtest(jmeter安装在服务器机器上,我使用远程桌面连接对其进行负载测试).所以除了编译和重新加载之外,我需要知道当我从DEV更改为PROD模式时,在application.conf文件中执行的所有更改是什么,就像play.pool从1个线程更改为(没有处理器+ 1)线程. 仅供参考:我的localhost系统是4处理器机器,本地服务器机器是4处理器,但UAT机器是2处理器,如果这是问题我甚至尝试将池线程更改为10(play.pool = 10)并且没有在UAT取得好成绩.
除了单线程之外,在dev模式下,应用程序启动会延迟,直到发送第一个请求。在prod模式下,应用程序将立即启动。这显然会影响第一个请求的加载时间。
我猜想模式下的“糟糕”性能dev主要是由运行时重新加载和编译类的功能引起的。对于每个请求,都会检查类是否有更改,并且可能会重新加载。我认为这个功能非常值得增加加载时间,而且我不知道是否可以停用它。
您可能不应该在开发模式下运行任何性能/验收测试。这是关于它的简短讨论。您应该只使用生产模式,而不是尝试提高开发模式性能。
| 归档时间: |
|
| 查看次数: |
2846 次 |
| 最近记录: |