【问题标题】:Set up a Go+Gin server and under load it's getting 13s response times设置 Go+Gin 服务器并在负载下获得 13 秒的响应时间
【发布时间】:2018-02-23 13:36:30
【问题描述】:

更新:用托管在 VPS (Vultr) 上的网络服务器的结果回答了问题

我将它与 NodeJS/Express 服务器进行了比较以达到比较的目的。

我做错了什么?

转到服务器:

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!'))

Test

工具是Vegeta

echo "GET http://localhost:9999/ping" | vegeta attack -rate=500 -duration=10s | vegeta report    

Duration: 10s
Requests: 500 per s

Results

Go/Gin 的平均响应时间:13000ms

Node/Express 的平均响应时间:24ms

【问题讨论】:

  • 用细节更新了问题
  • @DavidAlsh 我在 ab -n 10000 -c 10 下运行了你的 go 代码,得到了 8550 个请求/秒,最大服务时间为 16 毫秒。检查你是如何使用 vegeta 的。
  • @DavidAlsh:系统配置和测试方法在基准测试中比您提供的玩具代码更重要。 13000ms 的响应时间表示有问题,因此您需要从分析整个系统开始。
  • @JonahB:那一定是系统。我已经更新了我对 Vegeta 的使用。我想我会在 VPS 上尝试测试以将我的系统排除为变量
  • 用 VPS 测试的结果结束了这个问题

标签: go go-gin


【解决方案1】:

我在 VPS 上进行了测试并比较了他们的结果。 看起来 Go 是王道

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%

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    相关资源
    最近更新 更多