首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kitura速度慢还是每秒请求数低?

Kitura速度慢还是每秒请求数低?
EN

Stack Overflow用户
提问于 2016-07-02 20:41:15
回答 1查看 556关注 0票数 2

我已经下载了Kitura 0.20,并为swift build -c release上的基准测试创建了一个新项目

代码语言:javascript
复制
import Kitura

let router = Router()

router.get("/") {
request, response, next in
    response.send("Hello, World!")
    next()
}

Kitura.addHTTPServer(onPort: 8090, with: router)
Kitura.run()

与可能达到400k+请求/秒的Zewo和Vapor相比,分数似乎较低?

代码语言:javascript
复制
MacBook-Pro:hello2 yanli$ wrk -t1 -c100 -d30 --latency http://localhost:8090
Running 30s test @ http://localhost:8090
  1 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   415.36us  137.54us   3.09ms   91.11%
    Req/Sec     5.80k     2.47k    7.19k    85.71%
  Latency Distribution
     50%  391.00us
     75%  443.00us
     90%  513.00us
     99%    0.93ms
  16229 requests in 30.01s, 1.67MB read
  Socket errors: connect 0, read 342, write 55, timeout 0
Requests/sec:    540.84
Transfer/sec:     57.04KB
EN

回答 1

Stack Overflow用户

发布于 2016-07-04 17:18:12

我怀疑您的临时端口快用完了。您的问题可能与下面的问题相同:'ab' program freezes after lots of requests, why?

Kitura目前不支持HTTP keepalive,因此每个请求都需要一个新的连接。这种情况的一个症状是,无论您尝试加载多少秒,您都会看到类似数量的已完成请求(在您的示例中为16229)。

在OS X上,默认情况下有16,384个临时端口可用,除非您调整网络设置,否则这些端口将很快耗尽。

1 2

我的方法是减少Maximum Segment Lifetime可调参数(默认为15000或15秒),并在进行基准测试时临时增加可用端口的范围,例如:

代码语言:javascript
复制
sudo sysctl -w net.inet.tcp.msl=1000
sudo sysctl -w net.inet.ip.portrange.first=32768
<run benchmark>
sudo sysctl -w net.inet.tcp.msl=15000
sudo sysctl -w net.inet.ip.portrange.first=49152
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38160261

复制
相关文章

相似问题

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