Updating EndpointSliceCache sort function to be significantly faster.

The .IP() call that was previously used for sorting resulted in a call
to netutil to parse an IP out of an IP:Port string. This was very slow
and resulted in this sort taking up ~50% of total CPU util for
kube-proxy.
This commit is contained in:
Rob Scott 2019-09-17 17:10:39 -07:00
parent ef2016c253
commit d4b694a497
No known key found for this signature in database
GPG Key ID: 05B37CFC2CDE8B85
2 changed files with 2 additions and 2 deletions

View File

@ -249,5 +249,5 @@ func (e byIP) Swap(i, j int) {
e[i], e[j] = e[j], e[i]
}
func (e byIP) Less(i, j int) bool {
return e[i].IP() < e[j].IP()
return e[i].String() < e[j].String()
}

View File

@ -99,8 +99,8 @@ func TestEndpointsMapFromESC(t *testing.T) {
},
expectedMap: map[ServicePortName][]*BaseEndpointInfo{
makeServicePortName("ns1", "svc1", "port-0"): {
&BaseEndpointInfo{Endpoint: "10.0.1.1:80"},
&BaseEndpointInfo{Endpoint: "10.0.1.10:80"},
&BaseEndpointInfo{Endpoint: "10.0.1.1:80"},
&BaseEndpointInfo{Endpoint: "10.0.1.2:80"},
&BaseEndpointInfo{Endpoint: "10.0.1.3:80"},
&BaseEndpointInfo{Endpoint: "10.0.1.4:80"},