设置一个Go+;Gin服务器和负载下的Gin服务器';它的响应时间为13秒
更新:用VPS(Vultr)上托管的web服务器的结果回答了问题 我将其与NodeJS/Express服务器进行了比较,以获得一个比较点 我做错了什么 Go服务器:设置一个Go+;Gin服务器和负载下的Gin服务器';它的响应时间为13秒,go,go-gin,Go,Go Gin,更新:用VPS(Vultr)上托管的web服务器的结果回答了问题 我将其与NodeJS/Express服务器进行了比较,以获得一个比较点 我做错了什么 Go服务器: package main import "github.com/gin-gonic/gin" func main() { gin.SetMode(gin.ReleaseMode) router := gin.Default() router.GET("/ping", func(c *gin.Context
package main
import "github.com/gin-gonic/gin"
func main() {
gin.SetMode(gin.ReleaseMode)
router := gin.Default()
router.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
router.Run("0.0.0.0:9999")
}
快速服务器:
const express = require('express')
const app = express()
app.get('/ping', (req, res) => res.send({ pong: 'pong' }))
app.listen(9999, () => console.log('Example app listening on port 9999!'))
测试
工具是Vegeta
echo "GET http://localhost:9999/ping" | vegeta attack -rate=500 -duration=10s | vegeta report
Duration: 10s
Requests: 500 per s
结果
Go/Gin的平均响应时间:13000ms
Node/Express的平均响应时间:
24ms
我将测试放在VPS上,并比较了它们的结果。
看来围棋是王道
5s @ 1000R/s
Node: [mean, 50, 95, 99, max] 611.524µs, 514.504µs, 768.853µs, 3.121218ms, 8.340432ms
[success rate] 100%
Go: [mean, 50, 95, 99, max] 485.536µs, 425.167µs, 803.236µs, 1.47899ms, 7.783679ms
[success rate] 100%
5s @ 2500R/s
Node: [mean, 50, 95, 99, max] 389.480416ms, 417.458353ms, 909.933675ms, 1.592021109s, 2.335314996s
[success rate] 60.22%
Go: [mean, 50, 95, 99, max] 223.248847ms, 217.48063ms, 376.252228ms, 436.460213ms, 636.40045ms
[success rate] 100%
5s @ 3750R/s
Node: [mean, 50, 95, 99, max] 321.055317ms, 132.748021ms, 1.174121791s, 1.66130059s, 2.381339843s
[success rate] 26.45%
Go: [mean, 50, 95, 99, max] 294.135919ms, 319.996625ms, 512.918987ms, 549.590029ms, 30.119526908s
[success rate] 78.42%
5s @ 5000kR/s
Node: [mean, 50, 95, 99, max] 632.77873ms, 614.378281ms, 1.108413609s, 1.505165854s, 2.156899637s
[success rate] 26.87%
Go: [mean, 50, 95, 99, max] 372.278943ms, 389.118423ms, 546.388561ms, 866.47292ms, 30.124971521s
[success rate] 46%
已将问题更新为details@DavidAlsh我在ab-n 10000-c 10下运行了你的go代码,得到了8550个请求/秒,最长服务时间为16毫秒。检查您是如何使用vegeta的。@DavidAlsh:在基准测试中,系统配置和测试方法比您展示的玩具代码更重要。响应时间
13000ms
意味着有些东西坏了,所以你需要从分析整个系统开始。@JonahB:那一定是系统。我已经更新了我对贝吉塔的使用情况。我想我会尝试在VPS上进行测试,将我的系统作为变量排除在外。用VPS测试的结果结束问题