我正在使用 play framework 1.2.5,在过去的两天里,我在负载测试上遇到了一个非常大的问题,即对服务器的每个 API 调用平均需要大约 1200-1400 毫秒,但今天我只更改了以下一行在文件application.conf 中,将平均时间显着减少到20 - 50 ms,行如下,
application.mode=prod
%prod.application.mode=prod
最初就像
application.mode=dev
%prod.application.mode=prod
所以从这里我可以理解从开发到生产的改变会有所作为,而我在互联网上发现的是,在开发模式下play.pool=1默认情况下,而在生产模式下play.pool = no of processor + 1,我的 ubuntu 机器是4个处理器,所以它使用5个线程。现在遇到问题,如果我发现是真的,那么当我在application.conf中手动更改 play.pool = 5 时如果我设置 play.pool=1 并在生产模式下运行也不会给我更快的结果也不会减慢我的应用程序负载测试结果,所以我需要知道当我从开发模式更改为生产模式时会发生什么,除了这个播放.pool 这使我的应用程序更快。因为我在 UAT 中遇到问题,在 prod 模式下更改也没有好的结果,它只适用于我的本地主机。请尽快为我找到解决方案,谢谢。
更新 :
是的,我确实知道所有这些东西,比如在 DEV 模式下,应用程序会重新加载和编译,但是,我认为它可能不是仅在初始程序加载时才针对每个请求,但我的问题是这种 prod 模式在我的本地主机和本地运行良好服务器,当我使用 UAT 时,平均大约 800 毫秒的负载测试结果不佳。即使我在本地执行负载测试(jmeter 安装在服务器机器中,我正在使用远程桌面连接对其进行负载测试),即使在 prod 中应用程序也很慢。因此,除了编译和重新加载之外,当我从 DEV 更改为 PROD 模式时,我需要知道 application.conf 文件中执行的所有更改,例如 play.pool 从 1 个线程更改为(处理器数量 + 1 个)线程。 仅供参考:我的本地主机系统是 4 处理器机器,本地服务器机器是 4 处理器,但 UAT 机器是 2 处理器,如果这是我什至尝试将池线程更改为 10(play.pool=10)并且没有在 UAT 取得好成绩。