Improve nginx performance to match listen backlog with net.core.somaxconn
This commit is contained in:
parent
ba964cdcda
commit
8b25cc67a5
3 changed files with 14 additions and 1 deletions
|
@ -276,7 +276,7 @@ http {
|
||||||
|
|
||||||
# default server, including healthcheck
|
# default server, including healthcheck
|
||||||
server {
|
server {
|
||||||
listen 8080 default_server reuseport;
|
listen 8080 default_server reuseport backlog={{ .backlogSize }};
|
||||||
|
|
||||||
location /healthz {
|
location /healthz {
|
||||||
access_log off;
|
access_log off;
|
||||||
|
|
|
@ -61,6 +61,7 @@ func (ngx *Manager) loadTemplate() {
|
||||||
|
|
||||||
func (ngx *Manager) writeCfg(cfg config.Configuration, ingressCfg IngressConfig) (bool, error) {
|
func (ngx *Manager) writeCfg(cfg config.Configuration, ingressCfg IngressConfig) (bool, error) {
|
||||||
conf := make(map[string]interface{})
|
conf := make(map[string]interface{})
|
||||||
|
conf["backlogSize"] = sysctlSomaxconn()
|
||||||
conf["upstreams"] = ingressCfg.Upstreams
|
conf["upstreams"] = ingressCfg.Upstreams
|
||||||
conf["servers"] = ingressCfg.Servers
|
conf["servers"] = ingressCfg.Servers
|
||||||
conf["tcpUpstreams"] = ingressCfg.TCPUpstreams
|
conf["tcpUpstreams"] = ingressCfg.TCPUpstreams
|
||||||
|
|
|
@ -28,6 +28,7 @@ import (
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
"github.com/mitchellh/mapstructure"
|
"github.com/mitchellh/mapstructure"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/util/sysctl"
|
||||||
|
|
||||||
"k8s.io/contrib/ingress/controllers/nginx/nginx/config"
|
"k8s.io/contrib/ingress/controllers/nginx/nginx/config"
|
||||||
)
|
)
|
||||||
|
@ -220,3 +221,14 @@ func diff(b1, b2 []byte) (data []byte, err error) {
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sysctlSomaxconn returns the value of net.core.somaxconn, i.e.
|
||||||
|
// maximum number of connections that can be queued for acceptance
|
||||||
|
func sysctlSomaxconn() int {
|
||||||
|
maxConns, err := sysctl.GetSysctl("net.core.somaxconn")
|
||||||
|
if err != nil || maxConns < 512 {
|
||||||
|
return 511
|
||||||
|
}
|
||||||
|
|
||||||
|
return maxConns
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue