Change:
have some low level node performance optimization features already implemented in the Kubelet (e.g., CPU manager). don't have a way to objectively measure how well certain performance-sensitive applications run on k8s across versions. don’t have performance data on how performance-sensitive applications benefit from the already implemented features. don't have a way to measure the effect of further performance features on the classes of performance sensitive applications that our users care about. This leads to making decisions based on speculative analysis of performance impact, or inability to make decisions. March 2018 at the latest resource management working group face-to-face meeting, we agreed to prioritize building a node performance testing framework and suite over some of the performance optimization proposals. This way we can make better decisions based on objective data. performance regressions. objective data to guide node performance optimization features. e2e test driver. initial set of workloads. workload container images for node performance testing. . run the node perf testing suite with initial set of workloads. node performance test results in one of the test dashboards. Choose either https://k8s- or http://node-perf- Initial result will be FAILED or PASSED. Use some simple stats (e.g., the test failed if performance of workload X falls outside of -5% performance from the average performance of the last 10 runs of the workload). Resources Node-perf-dash: Testgrid: Compare between two test runs: How PASSED or FAILED is posted now: Do we need to use NodePerfData type: docker images for workloads: node performance testing framework: /assign CC
/sig node /assign
Will this target the 1.12 milestone?
is one of the steps. /reopen
Reopening this issue. <detailsIn response to : is one of the steps. /reopen Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
/reopen
Reopening this issue. <detailsIn response to : /reopen Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
Issues go stale after 90d of inactivity. Mark the issue as fresh with . Stale issues rot after an additional 30d of inactivity and eventually close. If this issue is safe to close now please do so with . Send feedback to sig-testing, kubernetes/test-infra and/or . /lifecycle stale
/remove-lifecycle stale
Issues go stale after 90d of inactivity. Mark the issue as fresh with . Stale issues rot after an additional 30d of inactivity and eventually close. If this issue is safe to close now please do so with . Send feedback to sig-testing, kubernetes/test-infra and/or . /lifecycle stale
Stale issues rot after 30d of inactivity. Mark the issue as fresh with . Rotten issues close after an additional 30d of inactivity. If this issue is safe to close now please do so with . Send feedback to sig-testing, kubernetes/test-infra and/or . /lifecycle rotten
Rotten issues close after 30d of inactivity. Reopen the issue with . Mark the issue as fresh with . Send feedback to sig-testing, kubernetes/test-infra and/or . /close
Closing this issue. <detailsIn response to : Rotten issues close after 30d of inactivity. Reopen the issue with . Mark the issue as fresh with . /close Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details

Discussion:
<ins> # Copyright 2018 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # #     http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. FROM BASEIMAGE as build_node_perf_npb_ep CROSS_BUILD_COPY qemu-QEMUARCH-static /usr/bin/ RUN apt-get update && apt-get install -y build-essential gfortran ADD http://www.nas.nasa.gov/assets/npb/NPB3.3.1.tar.gz . RUN tar xzf NPB3.3.1.tar.gz WORKDIR ./NPB3.3.1/NPB3.3-OMP RUN if [ $(arch) != "x86_64" ]; then  sed s/-mcmodel=medium//g config/NAS.samples/make.def.gcc_x86 > config/make.def;  else  cp config/NAS.samples/make.def.gcc_x86 config/make.def;  fi RUN make EP CLASS=D # Copying the required libraries (shared object files) to a convenient location so that it can be copied into the # main container in the second build stage. RUN mkdir -p /lib-copy && find /usr/lib -name "*.so.*" -exec cp {} /lib-copy ; FROM BASEIMAGE COPY --from=build_node_perf_npb_ep /NPB3.3.1/NPB3.3-OMP/bin/ep.D.x / COPY --from=build_node_perf_npb_ep /lib-copy /lib-copy ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/lib-copy" ENTRYPOINT /ep.D.x </ins>

<ins> ## NAS Parallel Benchmark Suite - Embarrassingly Parallel (EP) Benchmark The container image described here runs the EP benchmark from the [NAS parallel benchmark suite.](https://www.nas.nasa.gov/publications/npb.html) This image is used as a workload in in node performance testing. ## How to release: ``` # Build $ cd $K8S_ROOT/test/images $ make all WHAT=node-perf/npb-ep # Push $ cd $K8S_ROOT/test/images $ make all-push WHAT=node-perf/npb-ep ``` </ins>

<ins> amd64=debian:stretch-slim arm64=arm64v8/debian:stretch-slim ppc64le=ppc64le/debian:stretch-slim </ins>

<ins> # Copyright 2018 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # #     http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. FROM BASEIMAGE as build_node_perf_npb_is CROSS_BUILD_COPY qemu-QEMUARCH-static /usr/bin/ RUN apt-get update && apt-get install -y build-essential gfortran ADD http://www.nas.nasa.gov/assets/npb/NPB3.3.1.tar.gz . RUN tar xzf NPB3.3.1.tar.gz WORKDIR ./NPB3.3.1/NPB3.3-OMP # Create build config based on the architecture and build the workload. RUN if [ $(arch) != "x86_64" ]; then  sed s/-mcmodel=medium//g config/NAS.samples/make.def.gcc_x86 > config/make.def;  else  cp config/NAS.samples/make.def.gcc_x86 config/make.def;  fi RUN make IS CLASS=D # Copying the required libraries (shared object files) to a convenient location so that it can be copied into the # main container in the second build stage. RUN mkdir -p /lib-copy && find /usr/lib -name "*.so.*" -exec cp {} /lib-copy ; FROM BASEIMAGE COPY --from=build_node_perf_npb_is /NPB3.3.1/NPB3.3-OMP/bin/is.D.x / COPY --from=build_node_perf_npb_is /lib-copy /lib-copy ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/lib-copy" ENTRYPOINT /is.D.x </ins>

<ins> ## NAS Parallel Benchmark Suite - Integer Sort (IS) Benchmark The container image described here runs the IS benchmark from the [NAS parallel benchmark suite.](https://www.nas.nasa.gov/publications/npb.html) This image is used as a workload in in node performance testing. ## How to release: ``` # Build $ cd $K8S_ROOT/test/images $ make all WHAT=node-perf/npb-is # Push $ cd $K8S_ROOT/test/images $ make all-push WHAT=node-perf/npb-is ``` </ins>

<ins> amd64=python:3.6-slim-stretch </ins>

<ins> # Copyright 2018 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # #     http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. FROM BASEIMAGE RUN apt-get update && apt-get install -y wget time RUN pip install tensorflow RUN wget https://github.com/tensorflow/models/archive/v1.9.0.tar.gz  && tar xzf v1.9.0.tar.gz  && rm -f v1.9.0.tar.gz WORKDIR $HOME/models-1.9.0/official/wide_deep ENV PYTHONPATH $PYTHONPATH:$HOME/models-1.9.0 ENTRYPOINT python ./wide_deep.py </ins>

<ins> ## Tensorflow Official Wide Deep Model The container image described here predicts the income using the census income dataset in Tensorflow. For more information, see [https://github.com/tensorflow/models/tree/master/official/wide_deep](https://github.com/tensorflow/models/tree/master/official/wide_deep). This image is used as a workload in in node performance testing. ## How to release: ``` # Build $ cd $K8S_ROOT/test/images $ make all WHAT=node-perf/tf-wide-deep # Push $ cd $K8S_ROOT/test/images $ make all-push WHAT=node-perf/tf-wide-deep ``` </ins>