Russ Cox
58629a28e4
pkg/registry/pod: avoid allocation in common pod search
...
PodToSelectableFields creates a map of field attributes
for a particular pod filter query to use. If the result
of the query does not depend on the fields at all, avoid
creating the map.
This is the source of about half the allocated memory
(by byte volume) during the kubemark benchmark, and it
is in turn the main driver of CPU usage during the benchmark,
because of the many background pod watches going on,
as well as the occasional list pods.
These benchmarks for 1000-node kubemark show the difference
from my previous CL (caching timers) to this CL:
name old ms/op new ms/op delta
LIST_nodes_p50 124 ±13% 121 ± 9% ~ (p=0.136 n=29+27)
LIST_nodes_p90 278 ±15% 266 ±12% -4.26% (p=0.031 n=29+27)
LIST_nodes_p99 405 ±19% 400 ±14% ~ (p=0.864 n=28+28)
LIST_pods_p50 65.3 ±13% 56.3 ± 9% -13.75% (p=0.000 n=29+28)
LIST_pods_p90 115 ±12% 93 ± 8% -18.75% (p=0.000 n=27+28)
LIST_pods_p99 226 ±21% 202 ±14% -10.52% (p=0.000 n=28+28)
LIST_replicationcontrollers_p50 26.6 ±43% 26.2 ±54% ~ (p=0.487 n=29+29)
LIST_replicationcontrollers_p90 68.7 ±63% 68.6 ±59% ~ (p=0.931 n=29+28)
LIST_replicationcontrollers_p99 173 ±41% 177 ±49% ~ (p=0.618 n=28+29)
PUT_replicationcontrollers_p50 5.83 ±36% 5.94 ±32% ~ (p=0.818 n=28+29)
PUT_replicationcontrollers_p90 15.9 ± 6% 15.5 ± 6% -2.23% (p=0.019 n=28+29)
PUT_replicationcontrollers_p99 56.7 ±41% 39.5 ±55% -30.29% (p=0.000 n=28+29)
DELETE_pods_p50 24.3 ±17% 24.3 ±13% ~ (p=0.855 n=28+29)
DELETE_pods_p90 30.6 ± 0% 30.7 ± 1% ~ (p=0.140 n=28+29)
DELETE_pods_p99 56.3 ±27% 54.2 ±23% ~ (p=0.188 n=28+27)
PUT_nodes_p50 14.9 ± 1% 14.8 ± 2% ~ (p=0.781 n=28+27)
PUT_nodes_p90 16.4 ± 2% 16.3 ± 2% ~ (p=0.321 n=28+28)
PUT_nodes_p99 44.6 ±42% 41.3 ±35% ~ (p=0.361 n=29+28)
POST_replicationcontrollers_p50 6.33 ±23% 6.34 ±20% ~ (p=0.993 n=28+28)
POST_replicationcontrollers_p90 15.2 ± 6% 15.0 ± 5% ~ (p=0.106 n=28+29)
POST_replicationcontrollers_p99 53.4 ±52% 32.9 ±46% -38.41% (p=0.000 n=27+27)
POST_pods_p50 9.33 ±13% 8.95 ±16% ~ (p=0.069 n=29+29)
POST_pods_p90 16.3 ± 4% 16.1 ± 4% -1.43% (p=0.044 n=29+29)
POST_pods_p99 28.4 ±23% 26.4 ±12% -7.05% (p=0.004 n=29+28)
DELETE_replicationcontrollers_p50 2.50 ±13% 2.50 ±13% ~ (p=0.649 n=29+28)
DELETE_replicationcontrollers_p90 11.7 ±10% 11.8 ±13% ~ (p=0.863 n=28+28)
DELETE_replicationcontrollers_p99 19.0 ±22% 19.1 ±21% ~ (p=0.818 n=28+29)
PUT_pods_p50 10.3 ± 5% 10.2 ± 5% ~ (p=0.235 n=28+27)
PUT_pods_p90 16.0 ± 1% 16.0 ± 1% ~ (p=0.380 n=29+28)
PUT_pods_p99 21.6 ±14% 20.9 ± 9% -3.15% (p=0.010 n=28+27)
POST_bindings_p50 8.98 ±17% 8.92 ±15% ~ (p=0.666 n=29+28)
POST_bindings_p90 16.5 ± 2% 16.5 ± 3% ~ (p=0.840 n=26+29)
POST_bindings_p99 21.4 ± 5% 21.1 ± 4% -1.21% (p=0.049 n=27+28)
GET_nodes_p90 1.18 ±19% 1.14 ±24% ~ (p=0.137 n=29+29)
GET_nodes_p99 8.29 ±40% 7.50 ±46% ~ (p=0.106 n=28+29)
GET_replicationcontrollers_p90 1.03 ±21% 1.01 ±27% ~ (p=0.489 n=29+29)
GET_replicationcontrollers_p99 10.0 ±123% 10.0 ±145% ~ (p=0.794 n=28+29)
GET_pods_p90 1.08 ±21% 1.02 ±19% ~ (p=0.083 n=29+28)
GET_pods_p99 2.81 ±39% 2.45 ±38% -12.78% (p=0.021 n=28+25)
Overall the two CLs combined have this effect:
name old ms/op new ms/op delta
LIST_nodes_p50 127 ±16% 121 ± 9% -4.58% (p=0.000 n=29+27)
LIST_nodes_p90 326 ±12% 266 ±12% -18.48% (p=0.000 n=29+27)
LIST_nodes_p99 453 ±11% 400 ±14% -11.79% (p=0.000 n=29+28)
LIST_replicationcontrollers_p50 29.4 ±49% 26.2 ±54% ~ (p=0.085 n=30+29)
LIST_replicationcontrollers_p90 83.0 ±78% 68.6 ±59% -17.33% (p=0.013 n=30+28)
LIST_replicationcontrollers_p99 216 ±43% 177 ±49% -17.68% (p=0.000 n=29+29)
DELETE_pods_p50 24.5 ±14% 24.3 ±13% ~ (p=0.562 n=30+29)
DELETE_pods_p90 30.7 ± 1% 30.7 ± 1% -0.30% (p=0.011 n=29+29)
DELETE_pods_p99 77.2 ±34% 54.2 ±23% -29.76% (p=0.000 n=30+27)
PUT_replicationcontrollers_p50 5.86 ±26% 5.94 ±32% ~ (p=0.734 n=29+29)
PUT_replicationcontrollers_p90 15.8 ± 7% 15.5 ± 6% -2.06% (p=0.010 n=29+29)
PUT_replicationcontrollers_p99 57.8 ±35% 39.5 ±55% -31.60% (p=0.000 n=29+29)
PUT_nodes_p50 14.9 ± 2% 14.8 ± 2% -0.68% (p=0.012 n=30+27)
PUT_nodes_p90 16.5 ± 1% 16.3 ± 2% -0.90% (p=0.000 n=27+28)
PUT_nodes_p99 57.9 ±47% 41.3 ±35% -28.61% (p=0.000 n=30+28)
POST_replicationcontrollers_p50 6.35 ±29% 6.34 ±20% ~ (p=0.944 n=30+28)
POST_replicationcontrollers_p90 15.4 ± 5% 15.0 ± 5% -2.18% (p=0.001 n=29+29)
POST_replicationcontrollers_p99 52.2 ±71% 32.9 ±46% -36.99% (p=0.000 n=29+27)
POST_pods_p50 8.99 ±13% 8.95 ±16% ~ (p=0.903 n=30+29)
POST_pods_p90 16.2 ± 4% 16.1 ± 4% ~ (p=0.287 n=29+29)
POST_pods_p99 30.9 ±21% 26.4 ±12% -14.73% (p=0.000 n=28+28)
POST_bindings_p50 9.34 ±12% 8.92 ±15% -4.54% (p=0.013 n=30+28)
POST_bindings_p90 16.6 ± 1% 16.5 ± 3% -0.73% (p=0.017 n=28+29)
POST_bindings_p99 23.5 ± 9% 21.1 ± 4% -10.09% (p=0.000 n=27+28)
PUT_pods_p50 10.8 ±11% 10.2 ± 5% -5.47% (p=0.000 n=30+27)
PUT_pods_p90 16.1 ± 1% 16.0 ± 1% -0.64% (p=0.000 n=29+28)
PUT_pods_p99 23.4 ± 9% 20.9 ± 9% -10.93% (p=0.000 n=28+27)
DELETE_replicationcontrollers_p50 2.42 ±16% 2.50 ±13% ~ (p=0.054 n=29+28)
DELETE_replicationcontrollers_p90 11.5 ±12% 11.8 ±13% ~ (p=0.141 n=30+28)
DELETE_replicationcontrollers_p99 19.5 ±21% 19.1 ±21% ~ (p=0.397 n=29+29)
GET_nodes_p50 0.77 ±10% 0.76 ±10% ~ (p=0.317 n=28+28)
GET_nodes_p90 1.20 ±16% 1.14 ±24% -4.66% (p=0.036 n=28+29)
GET_nodes_p99 11.4 ±48% 7.5 ±46% -34.28% (p=0.000 n=28+29)
GET_replicationcontrollers_p50 0.74 ±17% 0.73 ±17% ~ (p=0.222 n=30+28)
GET_replicationcontrollers_p90 1.04 ±25% 1.01 ±27% ~ (p=0.231 n=30+29)
GET_replicationcontrollers_p99 12.1 ±81% 10.0 ±145% ~ (p=0.063 n=28+29)
GET_pods_p50 0.78 ±12% 0.77 ±10% ~ (p=0.178 n=30+28)
GET_pods_p90 1.06 ±19% 1.02 ±19% ~ (p=0.120 n=29+28)
GET_pods_p99 3.92 ±43% 2.45 ±38% -37.55% (p=0.000 n=27+25)
LIST_services_p50 0.20 ±13% 0.20 ±16% ~ (p=0.854 n=28+29)
LIST_services_p90 0.28 ±15% 0.27 ±14% ~ (p=0.219 n=29+28)
LIST_services_p99 0.49 ±20% 0.47 ±24% ~ (p=0.140 n=29+29)
LIST_endpoints_p50 0.19 ±14% 0.19 ±15% ~ (p=0.709 n=29+29)
LIST_endpoints_p90 0.26 ±16% 0.26 ±13% ~ (p=0.274 n=29+28)
LIST_endpoints_p99 0.46 ±24% 0.44 ±21% ~ (p=0.111 n=29+29)
LIST_horizontalpodautoscalers_p50 0.16 ±15% 0.15 ±13% ~ (p=0.253 n=30+27)
LIST_horizontalpodautoscalers_p90 0.22 ±24% 0.21 ±16% ~ (p=0.152 n=30+28)
LIST_horizontalpodautoscalers_p99 0.31 ±33% 0.31 ±38% ~ (p=0.817 n=28+29)
LIST_daemonsets_p50 0.16 ±20% 0.15 ±11% ~ (p=0.135 n=30+27)
LIST_daemonsets_p90 0.22 ±18% 0.21 ±25% ~ (p=0.135 n=29+28)
LIST_daemonsets_p99 0.29 ±28% 0.29 ±32% ~ (p=0.606 n=28+28)
LIST_jobs_p50 0.16 ±16% 0.15 ±12% ~ (p=0.375 n=29+28)
LIST_jobs_p90 0.22 ±18% 0.21 ±16% ~ (p=0.090 n=29+26)
LIST_jobs_p99 0.31 ±28% 0.28 ±35% -10.29% (p=0.005 n=29+27)
LIST_deployments_p50 0.15 ±16% 0.15 ±13% ~ (p=0.565 n=29+28)
LIST_deployments_p90 0.22 ±22% 0.21 ±19% ~ (p=0.107 n=30+28)
LIST_deployments_p99 0.31 ±27% 0.29 ±34% ~ (p=0.068 n=29+28)
LIST_namespaces_p50 0.21 ±25% 0.21 ±26% ~ (p=0.768 n=29+27)
LIST_namespaces_p90 0.28 ±29% 0.26 ±25% ~ (p=0.101 n=30+28)
LIST_namespaces_p99 0.30 ±48% 0.29 ±42% ~ (p=0.339 n=30+29)
LIST_replicasets_p50 0.15 ±18% 0.15 ±16% ~ (p=0.612 n=30+28)
LIST_replicasets_p90 0.22 ±19% 0.21 ±18% -5.13% (p=0.011 n=28+27)
LIST_replicasets_p99 0.31 ±39% 0.28 ±29% ~ (p=0.066 n=29+28)
LIST_persistentvolumes_p50 0.16 ±23% 0.15 ±21% ~ (p=0.124 n=30+29)
LIST_persistentvolumes_p90 0.21 ±23% 0.20 ±23% ~ (p=0.092 n=30+25)
LIST_persistentvolumes_p99 0.21 ±24% 0.20 ±23% ~ (p=0.053 n=30+25)
LIST_resourcequotas_p50 0.16 ±12% 0.16 ±13% ~ (p=0.175 n=27+28)
LIST_resourcequotas_p90 0.20 ±22% 0.20 ±24% ~ (p=0.388 n=30+28)
LIST_resourcequotas_p99 0.22 ±24% 0.22 ±23% ~ (p=0.575 n=30+28)
LIST_persistentvolumeclaims_p50 0.15 ±21% 0.15 ±29% ~ (p=0.079 n=30+28)
LIST_persistentvolumeclaims_p90 0.19 ±26% 0.18 ±34% ~ (p=0.446 n=29+29)
LIST_persistentvolumeclaims_p99 0.19 ±26% 0.18 ±34% ~ (p=0.446 n=29+29)
LIST_pods_p50 68.0 ±16% 56.3 ± 9% -17.19% (p=0.000 n=29+28)
LIST_pods_p90 119 ±19% 93 ± 8% -21.88% (p=0.000 n=28+28)
LIST_pods_p99 230 ±18% 202 ±14% -12.13% (p=0.000 n=27+28)
2016-04-21 15:53:47 -04:00
derekwaynecarr
76f2cc6a11
Add field selector for pod.spec.restartPolicy
2016-02-16 16:51:42 -05:00
Julian Strobl
6cd10d4f87
add container names kubectl logs output
...
Present a list of container names one can choose from.
2016-01-25 13:35:47 +01:00
Harry Zhang
936a11e775
Use networking to hold network related pkgs
...
Change names of unclear methods
Use net as pkg name for short
2016-01-15 13:46:16 +08:00
Tim Hockin
87a35047dd
Move FieldPath and errors to a sub-package
...
This makes the naming and reading a lot simpler.
2015-12-10 11:48:16 -08:00
gmarek
459131fd92
Use KubeletPort reported in NodeStatus instead of cluster-wide master config, take 2.
2015-12-02 13:38:17 +01:00
Fabiano Franz
afd56495a1
Pod log location must validate container if provided
2015-11-29 23:20:01 -02:00
Tim Hockin
48b49a5cae
s/ValidationErrorList/ErrorList/
2015-11-22 20:13:20 -08:00
Tim Hockin
0ff66da346
Move fielderrors into validation
2015-11-22 20:12:20 -08:00
Tim Hockin
35ab5c6234
Add a REST hook for post-validation canonicalize
...
This is a simple hook that only Endpoints uses for now.
2015-11-12 21:13:16 -08:00
feihujiang
726def04d5
Make rootscoped resource no namespace selectable field
2015-10-31 10:52:21 +08:00
k8s-merge-robot
33dabe00a8
Merge pull request #15766 from feihujiang/supportNamespaceSelectorInAllNamespacesEndpoint
...
Auto commit by PR queue bot
2015-10-24 17:08:34 -07:00
feihujiang
501c76cebb
Support namespace selector in all namespaces endpoint
2015-10-23 14:14:38 +08:00
Saad Ali
76c5e0e553
Revert "Use KubeletPort reported in NodeStatus instead of cluster-wide master config"
2015-10-22 21:25:38 -07:00
k8s-merge-robot
a6b8e112ac
Merge pull request #12919 from gmarek/use_api_ports
...
Auto commit by PR queue bot
2015-10-22 19:53:41 -07:00
gmarek
6d6cd8e46a
Use KubeletPort reporeted in NodeStatus instead of cluster-wide master config.
2015-10-21 17:19:31 +02:00
Mike Danese
ac686d7536
don't gracefully delete terminated pods
2015-10-20 09:31:20 -07:00
Jordan Liggitt
1043126135
Refactor SSH tunneling, fix proxy transport TLS/Dial extraction
2015-10-12 11:17:01 -04:00
Jordan Liggitt
826459e51e
Allow specifying scheme when proxying
2015-10-12 11:16:53 -04:00
Filip Grzadkowski
c0532a432a
Revert "Allow specifying scheme when proxying"
2015-10-07 13:02:35 +02:00
Jordan Liggitt
b9ba3bd7c2
Allow specifying scheme when proxying
2015-10-05 22:12:10 -04:00
Clayton Coleman
c2e90cd154
Support extended pod logging options
...
Increase the supported controls on pod logging. Add validaiton to pod
log options. Ensure the Kubelet is using a consistent, structured way to
process pod log arguments.
Add ?sinceSeconds=<durationInSeconds>, &sinceTime=<RFC3339>, ?timestamps=<bool>,
?tailLines=<number>, and ?limitBytes=<number>
2015-09-21 15:39:32 -04:00
feihujiang
d4a3e30edd
Remove the redundant definite article
2015-09-09 11:40:36 +08:00
Clayton Coleman
f9590a33fd
Enable graceful deletion by enabling pods
2015-08-30 18:25:53 -04:00
Wojciech Tyczynski
1bd9ff3bc9
Renaming in pkg/registry to reflect reality
2015-08-25 16:25:59 +02:00