Go未从AWS ubuntu服务器检测到SOMAXCONN更改

时间:2019-01-20 14:42:18

标签: ubuntu go amazon-ec2 httpserver sysctl

我正在尝试用k6压力测试我的golang net / http服务器。当我使用2048个虚拟用户访问我的AWS ubuntu服务器时,k6抛出“对等连接重置”。在互联网上进行调查时,我发现问题很可能是积压队列。 阅读一些stackoverflow问题,我尝试从sysctl.conf文件修改SOMAXCONN变量。将其从128修改为1024后,当我运行主go程序时:

package main

import (
    "fmt"
    "log"
    "net/http"
    "strings"
    "golang.org/x/sys/unix"
)

func main() {
    http.HandleFunc("/some_path", handler)

    fmt.Println("SOMAXCONN:", unix.SOMAXCONN)
    log.Fatal(http.ListenAndServe(":8888", nil))
}

我有以下终端输出:

SOMAXCONN: 128

实际上它应该打印:

SOMAXCONN: 1024

如果有人能向我解释为什么GOLANG检测到128而不能检测到1024,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

我想您编译go时已设置了检查SOMAX的方式?

通过从/ proc读取内容以其他方式进行检查,表明net.core.somaxconn已更改

open(fname)
相关问题