首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go http服务器性能基准测试

Go http服务器性能基准测试
EN

Stack Overflow用户
提问于 2016-06-09 06:50:55
回答 2查看 9.6K关注 0票数 5

我试图找出go was服务器的最大吞吐量。我在8核机器(Intel Xeon 2.5 Mhz)上运行simplewebserver,在另一台8核机器上运行wrk工具。Iperf命令显示这些机器之间的速度约为8-10Gbps。最初,我犯了一个错误,使用apache ab工具,每秒只能发出16k个请求。问题与link相同。现在,当我切换到wrk工具时,我每秒收到大约90k个请求,大约11Mb/秒。

在第一台8核机器上,我运行了simplewebserver.go

代码语言:javascript
复制
package main

import (
   "io"
    "net/http"
    "runtime"
)

func hello(w http.ResponseWriter, r *http.Request) {
    io.WriteString(w, "Hello world!")
}

 func main() {
    runtime.GOMAXPROCS(8)
    http.HandleFunc("/", hello)
    http.ListenAndServe(":8000", nil)
 }

在另一台8核机器上,我运行

代码语言:javascript
复制
 ./wrk -t8 -c1000 -d10s http://10.0.0.6:8000/

结果:

代码语言:javascript
复制
Running 10s test @ http://10.0.0.6:8000/
8 threads and 1000 connections
Thread Stats   Avg      Stdev     Max   +/- Stdev
Latency    42.65ms  114.89ms   1.96s    91.33%
Req/Sec    11.54k     3.01k   25.10k    74.88%
923158 requests in 10.10s, 113.57MB read
Socket errors: connect 0, read 0, write 0, timeout 20
Requests/sec:  91415.11
Transfer/sec:     11.25MB

我可以说我已经达到了golang web服务器的最大吞吐量吗?我得到了11MB/秒,这看起来相当小的基本程序。如果我在www.google.com页面上运行wrk工具,我的速度大约是200MB/秒。即使是像kafka(java服务器)这样的大型复杂计算系统,基准测试结果也超过了70MB/秒(https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines)。golang服务器如何处理每秒数百万次请求的极端工作负载(最低超过100MB/秒)?我的假设是错的吗?

更新:

我在一台具有相同规格的16核机器上运行了相同的程序。我将maxprocs更改为16,结果更高,达到了120k次/秒。我觉得我已经达到了golang http服务器的最大值,因此我没有发现每秒请求数有任何显着增加。

EN

回答 2

Stack Overflow用户

发布于 2016-06-11 04:39:45

“过早优化是万恶之源”1

我建议为你的用例构建一些东西,然后尝试优化。很难构建一个好的基准测试来测试您想要的东西,所以要确保您测试的是您想要的东西,而不是路由器的速度。

票数 3
EN

Stack Overflow用户

发布于 2018-06-07 00:44:33

Golang net/http相当慢。如果目标是最大化请求率,还有其他实现。例如,在我的测试中,https://github.com/valyala/fasthttp使查询率加倍。我的测试是一个简短的请求和简短的回复。

这个库有一些限制,比如不支持HTTP/2。如果您需要将HTTP用于REST API,而您又不寻求互操作性,那么fasthttp将非常适合您

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37714210

复制
相关文章

相似问题

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