kubernetes: Stats performance is slow on Windows

What happened: When looking at the changes made in #74933 I did a quick benchmark of the /stats/summary endpoints on both Linux and Windows nodes. Not very scientific, but:

Linux:

$ siege -r 50 -c10 10.74.41.135:10255/stats/summary
** SIEGE 4.0.4
** Preparing 10 concurrent users for battle.
The server is now under siege...
Transactions:                    500 hits
Availability:                 100.00 %
Elapsed time:                   5.88 secs
Data transferred:               7.68 MB
Response time:                  0.11 secs
Transaction rate:              85.03 trans/sec
Throughput:                     1.31 MB/sec
Concurrency:                    9.10
Successful transactions:         500
Failed transactions:               0
Longest transaction:            1.16
Shortest transaction:           0.09

Windows:

$ siege -r 50 -c10 10.74.41.136:10255/stats/summary
** SIEGE 4.0.4
** Preparing 10 concurrent users for battle.
The server is now under siege...
Transactions:                    500 hits
Availability:                 100.00 %
Elapsed time:                 100.14 secs
Data transferred:               1.36 MB
Response time:                  2.00 secs
Transaction rate:               4.99 trans/sec
Throughput:                     0.01 MB/sec
Concurrency:                   10.00
Successful transactions:         500
Failed transactions:               0
Longest transaction:            2.04
Shortest transaction:           1.25

What you expected to happen: Roughly similar, especially since I believe the implementation is such that stats aren’t calculated every time the endpoint is hit.

Environment:

  • Kubernetes version (use kubectl version): 43616fc920c195a6f892397d4b9b3f53c7aae1fa
  • Cloud provider or hardware configuration: vSphere
  • Docker as CRI

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 19 (17 by maintainers)

Most upvoted comments

image

OK @michmike . above is my test result, kubelet v1.13.4, windows vs linux. only two pods on each node, with many cpu and mem available.