繁体   English   中英

Play 2.2中的性能问题

[英]Performance issues in Play 2.2

我将Thread.sleep(100)放在Play 2.2控制器中以模仿后端操作。

@BodyParser.Of(BodyParser.Json.class)
    public Promise<Result> d() {    
        Promise<JsonNode> promiseOfJson = Promise.promise(new Function0<JsonNode>() {
            public JsonNode apply() throws Exception {
                ABean aBean = new ABean();

                aBean.setStatus("success");
                aBean.setMessage("Hello World...");

                Thread.sleep(100);

                return Json.toJson(aBean);
            }
        });

        return promiseOfJson.map(new Function<JsonNode, Result>() {
            public Result apply(JsonNode jsonNode) {
                return ok(jsonNode);
            }
        });
    }

我将我的application.conf配置为

#Play Internal Thread Pool
    internal-threadpool-size=4

    #Scala Iteratee thread pool
    iteratee-threadpool-size=4

    # Akka Configuration for making parallelism
    # ~~~~~
    # Play's Default Thread Pool
    play {
        akka {
        akka.loggers = ["akka.event.Logging$DefaultLogger", "akka.event.slf4j.Slf4jLogger"]
        loglevel = ERROR
        actor {

            deployment {

                /actions {
                    router = round-robin
                    nr-of-instances = 100
                }

                /promises {
                    router = round-robin
                    nr-of-instances = 100
                }

            }

            retrieveBodyParserTimeout = 5 seconds

            actions-dispatcher = {
                fork-join-executor {
                    parallelism-factor = 100
                    parallelism-max = 100
                }
            } 

            promises-dispatcher = {
                fork-join-executor {
                    parallelism-factor = 100
                    parallelism-max = 100
                }
            }

            default-dispatcher = {
                fork-join-executor {

    #             No. of minimum threads = 8 ; at the most 64 ; or other wise 3 times the no. of processors available on the system 
    #             parallelism-factor = 1.0   
    #             parallelism-max = 64
    #             parallelism-min = 8

                  parallelism-factor = 3.0   
                  parallelism-max = 64
                  parallelism-min = 8

                }     
            }      
        }
      }
    }  

我按照以下方式运行ab命令:

ab -n 900 -c 1 http://localhost:9000/a/b/c/d

结果显示每秒仅处理9个请求。

可以对application.conf进行调整以获得更好的性能吗? 如果是,怎么办?

这是由sleep(100)调用引起的。 即使您的所有其余代码都无限快,但仅使用1个测试线程,您仍然只能每秒获得10个请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM