Kubernetes Submit Queue
0f95f13dcc
Merge pull request #46350 from wojtek-t/reduce_kube_proxy_allocations_2
Automatic merge from submit-queue (batch tested with PRs 45534, 37212, 46613, 46350)
Speed up and reduce number of memory allocations in kube-proxy
This is a second (and last PR) in this series - this solves all very-low-hanging fruits.
This PR:
- reduces cpu usage by ~25%
- reduces memory allocations by ~3x (together with #46033 by 10-12x)
Without this PR:
```
(pprof) top
8.59GB of 8.79GB total (97.75%)
Dropped 238 nodes (cum <= 0.04GB)
Showing top 10 nodes out of 64 (cum >= 0.11GB)
flat flat% sum% cum cum%
3.66GB 41.60% 41.60% 8.72GB 99.17% k8s.io/kubernetes/pkg/proxy/iptables.(*Proxier).syncProxyRules
3.07GB 34.96% 76.56% 3.07GB 34.96% runtime.rawstringtmp
0.62GB 7.09% 83.65% 0.62GB 7.09% runtime.hashGrow
0.34GB 3.82% 87.46% 0.34GB 3.82% runtime.stringtoslicebyte
0.29GB 3.24% 90.71% 0.58GB 6.61% encoding/base32.(*Encoding).EncodeToString
0.22GB 2.47% 93.18% 0.22GB 2.47% strings.genSplit
0.18GB 2.04% 95.22% 0.18GB 2.04% runtime.convT2E
0.11GB 1.22% 96.44% 0.73GB 8.36% runtime.mapassign
0.10GB 1.08% 97.52% 0.10GB 1.08% syscall.ByteSliceFromString
0.02GB 0.23% 97.75% 0.11GB 1.25% syscall.SlicePtrFromStrings
```
with this PR:
```
(pprof) top
2.98GB of 3.08GB total (96.78%)
Dropped 246 nodes (cum <= 0.02GB)
Showing top 10 nodes out of 70 (cum >= 0.10GB)
flat flat% sum% cum cum%
1.99GB 64.60% 64.60% 1.99GB 64.60% runtime.rawstringtmp
0.58GB 18.95% 83.55% 0.58GB 18.95% runtime.hashGrow
0.10GB 3.40% 86.95% 0.69GB 22.47% runtime.mapassign
0.09GB 2.86% 89.80% 0.09GB 2.86% syscall.ByteSliceFromString
0.08GB 2.63% 92.44% 0.08GB 2.63% runtime.convT2E
0.03GB 1.13% 93.56% 0.03GB 1.13% syscall.Environ
0.03GB 0.99% 94.56% 0.03GB 0.99% bytes.makeSlice
0.03GB 0.97% 95.52% 0.03GB 1.06% os.Stat
0.02GB 0.65% 96.18% 3.01GB 97.79% k8s.io/kubernetes/pkg/proxy/iptables.(*Proxier).syncProxyRules
0.02GB 0.6% 96.78% 0.10GB 3.35% syscall.SlicePtrFromStrings
```
2017-05-30 04:46:06 -07:00
..
2017-05-30 01:56:00 -07:00
2017-04-14 10:40:57 -07:00
2017-05-28 10:11:02 -04:00
2017-05-18 16:43:41 -04:00
2017-04-14 10:40:57 -07:00
2017-05-28 10:11:02 -04:00
2017-05-29 15:29:51 -07:00
2017-05-30 00:49:50 -07:00
2017-05-03 19:34:14 -07:00
2017-05-26 15:59:01 -07:00
2017-04-14 10:40:57 -07:00
2017-05-28 10:11:02 -04:00
2017-05-26 16:06:12 -07:00
2017-05-30 03:47:02 -07:00
2017-05-30 03:46:55 -07:00
2017-05-27 17:04:47 +08:00
2017-05-28 10:11:02 -04:00
2017-04-14 10:40:57 -07:00
2017-05-30 03:46:59 -07:00
2017-05-19 20:44:25 +02:00
2017-05-30 10:50:10 +02:00
2017-05-20 07:17:57 -04:00
2017-05-30 01:56:03 -07:00
2017-05-10 12:51:51 -07:00
2017-05-05 14:07:38 +02:00
2017-05-05 14:07:38 +02:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-05-30 08:11:12 +02:00
2017-04-14 10:40:57 -07:00
2017-05-26 18:49:04 -07:00
2017-04-14 10:40:57 -07:00
2017-05-28 10:11:02 -04:00