Jam*_*May -4 high-load go
我试图弄清楚即使使用简单的“ Hello World”响应也可能会有5600 rps。我尝试了starndard net / http,echo和fasthttp。这是后者的一个示例:
func main() {
router := routing.New()
router.Get("/", func(c *routing.Context) error {
fmt.Fprintf(c, "Hello, world!")
return nil
})
panic(fasthttp.ListenAndServe(":7777", router.HandleRequest))
}
我使用ab和wrk进行测试。这是wrk命令:
$ wrk -t10 -c100 -d10s http://somesite.com
Running 10s test @ http://somesite.com
10 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 17.05ms 1.08ms 33.46ms 91.30%
Req/Sec 587.80 33.97 670.00 84.92%
58603 requests in 10.10s, 8.27MB read
Requests/sec: 5802.71
Transfer/sec: 838.67KB
我尝试在两个不同的服务器上。其中一个是一个简单的Digital Ocean实例,另一个则专用于32G RAM,8个内核和1Gb网络通道。两台服务器的结果相同。我在其中一个上运行fasthttp应用程序,在另一个上运行wrk,反之亦然。