我正在尝试用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,我将不胜感激。
答案 0 :(得分:1)
我想您编译go时已设置了检查SOMAX的方式?
通过从/ proc读取内容以其他方式进行检查,表明net.core.somaxconn已更改
open(fname)