加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

playframework – 如何调整play框架应用程序的可伸缩性?

发布时间:2020-12-16 09:54:28 所属栏目:安全 来源:网络整理
导读:我正在使用Play framework 2.1开发我的应用程序.这是一个非常易于使用的框架.我能够快速开发我的应用程序.但我也遇到了一些可扩展性问题.似乎Play 2.1的运行速度不如声称的那么快.也许这是因为我不知道调整性能. 我的问题如下:我有一个API用他/她的电子邮件
我正在使用Play framework 2.1开发我的应用程序.这是一个非常易于使用的框架.我能够快速开发我的应用程序.但我也遇到了一些可扩展性问题.似乎Play 2.1的运行速度不如声称的那么快.也许这是因为我不知道调整性能.

我的问题如下:我有一个API用他/她的电子邮件登录用户.

我使用Apache Benchmark(ab)来使用性能.一个请求大约需要230毫秒.当有5个并发请求时,响应时间仍然足够快,大约280ms.

Concurrency Level:      5
Time taken for tests:   0.306 seconds
Complete requests:      5
Failed requests:        0
Write errors:           0
Total transferred:      3495 bytes
Total POSTed:           1065
HTML transferred:       3135 bytes
Requests per second:    16.34 [#/sec] (mean)
Time per request:       306.009 [ms] (mean)
Time per request:       61.202 [ms] (mean,across all concurrent requests)
Transfer rate:          11.15 [Kbytes/sec] received
                        3.40 kb/s sent
                        14.55 kb/s total

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1    1   0.1      1       1
Processing:   280  290  13.8    292     305
Waiting:      278  288  13.7    291     304
Total:        280  291  13.9    293     306

但是,当我使用100个并发请求时,结果非常糟糕.

Concurrency Level:      100
Time taken for tests:   4.243 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      69900 bytes
Total POSTed:           21300
HTML transferred:       62700 bytes
Requests per second:    23.57 [#/sec] (mean)
Time per request:       4243.058 [ms] (mean)
Time per request:       42.431 [ms] (mean,across all concurrent requests)
Transfer rate:          16.09 [Kbytes/sec] received
                        4.90 kb/s sent
                        20.99 kb/s total

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1   62  31.5     83      89
Processing:   996 3744 544.7   3902    4146
Waiting:      995 3727 542.0   3894    4146
Total:       1084 3806 542.6   3968    4204

我的服务器机器:Intel i7,8核,2.8GHz,8GB内存.我使用了play框架的默认设置.谁知道如何调整播放框架的性能?

我认为它与线程池大小有关.该文档称play的默认线程池大小为#core.在这种情况下,处理所有100个请求的预期时间是:

230ms * (100 / 8) = 2875ms

那么,我应该增加默认线程池的大小吗?但该文档称,当池大小等于#core时,我应该获得最佳性能.

另外,netty的(play的web服务器)线程池大小会影响性能吗?我没有找到任何有关其默认值的信息.有谁知道它是如何配置的?

谢谢!

解决方法

Play的默认线程配置专为使用异步API的应用程序而设计.

如果进行大量的阻塞调用(通常是“标准”JDBC数据库调用),则需要调整默认的ThreadPool,或者在另一个专门配置的ThreadPool中执行数据库调用.

要了解所有这些机制,我建议您阅读Play Framework文档的Thread Pools部分.它包含有关此主题的非常有用的信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读