diff --git a/content/docs/architecture_guide/performance.md b/content/docs/architecture_guide/performance.md index b6286cf95..f31baa5e1 100644 --- a/content/docs/architecture_guide/performance.md +++ b/content/docs/architecture_guide/performance.md @@ -85,7 +85,7 @@ For many use cases, fixed memory overheads are a primary concern. This may be because sandboxed containers handle a low volume of requests, and it is therefore important to achieve high densities for efficiency. -{{< graph id="density" url="/performance/density.csv" title="perf.py density --runtime=runc --runtime=runsc" >}} +{{< graph id="density" url="/performance/density.csv" title="perf.py density --runtime=runc --runtime=runsc" log="true" y_min="100000">}} The above figure demonstrates these costs based on three sample applications. This test is the result of running many instances of a container (typically 50) @@ -134,7 +134,7 @@ supports a variety of platforms. These platforms present distinct performance, compatibility and security trade-offs. For example, the KVM platform has low overhead system call interception but runs poorly with nested virtualization. -{{< graph id="syscall" url="/performance/syscall.csv" title="perf.py syscall --runtime=runc --runtime=runsc-ptrace --runtime=runsc-kvm" log="true" >}} +{{< graph id="syscall" url="/performance/syscall.csv" title="perf.py syscall --runtime=runc --runtime=runsc-ptrace --runtime=runsc-kvm" y_min="100" log="true" >}} The above figure demonstrates the time required for a raw system call on various platforms. The test is implemented by a custom binary which performs a large diff --git a/layouts/shortcodes/graph.html b/layouts/shortcodes/graph.html index 9745fa561..73f98ba5d 100644 --- a/layouts/shortcodes/graph.html +++ b/layouts/shortcodes/graph.html @@ -104,6 +104,10 @@ d3.csv("{{ .Get "url" }}", function(d, i, columns) { y_min = 1; } + if ({{ .Get "y_min" | default false }}) { + y_min = "{{ .Get "y_min" }}"; + } + var svg = d3.select("#{{ .Get "id" }}"), margin = {top: 20, right: 20, bottom: 30 + margin_bottom_pad, left: 50}, width = +svg.attr("width") - margin.left - margin.right, diff --git a/static/performance/applications.csv b/static/performance/applications.csv index 9a2a873cc..7b4661c60 100644 --- a/static/performance/applications.csv +++ b/static/performance/applications.csv @@ -1,13 +1,13 @@ runtime,method,metric,result -runc,http.node,transfer_rate,3880.44 +runc,http.node,transfer_rate,3814.85 runc,http.node,latency,11.0 -runc,http.node,requests_per_second,901.04 -runc,http.ruby,transfer_rate,3182.51 -runc,http.ruby,latency,17.0 -runc,http.ruby,requests_per_second,597.85 -runsc,http.node,transfer_rate,1617.49 +runc,http.node,requests_per_second,885.81 +runc,http.ruby,transfer_rate,2874.38 +runc,http.ruby,latency,18.0 +runc,http.ruby,requests_per_second,539.97 +runsc,http.node,transfer_rate,1615.54 runsc,http.node,latency,27.0 -runsc,http.node,requests_per_second,375.81 -runsc,http.ruby,transfer_rate,1414.86 +runsc,http.node,requests_per_second,375.13 +runsc,http.ruby,transfer_rate,1382.71 runsc,http.ruby,latency,38.0 -runsc,http.ruby,requests_per_second,265.79 +runsc,http.ruby,requests_per_second,259.75 diff --git a/static/performance/density.csv b/static/performance/density.csv index bbd4e177e..729b44941 100644 --- a/static/performance/density.csv +++ b/static/performance/density.csv @@ -1,7 +1,9 @@ runtime,method,metric,result -runc,density.empty,memory_usage,2460794.88 -runc,density.node,memory_usage,18692915.2 -runc,density.ruby,memory_usage,18854543.36 -runsc,density.empty,memory_usage,22531850.24 -runsc,density.node,memory_usage,43994398.72 -runsc,density.ruby,memory_usage,51410862.08 +runc,density.empty,memory_usage,4092149.76 +runc,density.node,memory_usage,76709888.0 +runc,density.ruby,memory_usage,45737000.96 +runsc,density.empty,memory_usage,23695032.32 +runsc,density.node,memory_usage,124076605.44 +runsc,density.ruby,memory_usage,106141777.92 +runc,density.redis,memory_usage,1055323750.4 +runsc,density.redis,memory_usage,1076686028.8 diff --git a/static/performance/ffmpeg.csv b/static/performance/ffmpeg.csv index 05760d642..08661c749 100644 --- a/static/performance/ffmpeg.csv +++ b/static/performance/ffmpeg.csv @@ -1,3 +1,3 @@ runtime,metric,result -runc,run_time,77.705753 -runsc,run_time,84.245589 +runc,run_time,82.000625 +runsc,run_time,88.24018 diff --git a/static/performance/fio-tmpfs.csv b/static/performance/fio-tmpfs.csv index bdaf1825b..99777d2e4 100644 --- a/static/performance/fio-tmpfs.csv +++ b/static/performance/fio-tmpfs.csv @@ -1,9 +1,9 @@ runtime,method,metric,result -runc,fio.read,bandwidth,4573005824 -runc,fio.write,bandwidth,3253763072 -runsc,fio.read,bandwidth,2572451840 -runsc,fio.write,bandwidth,1125278720 -runc,fio.randread,bandwidth,1139651584 -runc,fio.randwrite,bandwidth,998289408 -runsc,fio.randread,bandwidth,91157504 -runsc,fio.randwrite,bandwidth,83028992 +runc,fio.read,bandwidth,4240686080 +runc,fio.write,bandwidth,3029744640 +runsc,fio.read,bandwidth,2533604352 +runsc,fio.write,bandwidth,1207536640 +runc,fio.randread,bandwidth,1221472256 +runc,fio.randwrite,bandwidth,1046094848 +runsc,fio.randread,bandwidth,68940800 +runsc,fio.randwrite,bandwidth,67286016 diff --git a/static/performance/fio.csv b/static/performance/fio.csv index b7d224a3a..80d6ae289 100644 --- a/static/performance/fio.csv +++ b/static/performance/fio.csv @@ -1,9 +1,9 @@ runtime,method,metric,result -runc,fio.read,bandwidth,252633088 -runc,fio.write,bandwidth,457222144 -runsc,fio.read,bandwidth,252442624 -runsc,fio.write,bandwidth,436373504 -runc,fio.randread,bandwidth,5781504 -runc,fio.randwrite,bandwidth,109732864 -runsc,fio.randread,bandwidth,4793344 -runsc,fio.randwrite,bandwidth,60702720 +runc,fio.read,bandwidth,252253184 +runc,fio.write,bandwidth,457767936 +runsc,fio.read,bandwidth,252323840 +runsc,fio.write,bandwidth,431845376 +runc,fio.randread,bandwidth,5284864 +runc,fio.randwrite,bandwidth,107758592 +runsc,fio.randread,bandwidth,4403200 +runsc,fio.randwrite,bandwidth,69161984 diff --git a/static/performance/httpd100k.csv b/static/performance/httpd100k.csv index 6d92ab351..e92c7e9e0 100644 --- a/static/performance/httpd100k.csv +++ b/static/performance/httpd100k.csv @@ -1,17 +1,17 @@ connections,runtime,metric,result -1,runc,transfer_rate,922.54 -1,runc,latency,0.0 -1,runsc,transfer_rate,402.11 -1,runsc,latency,1.0 -5,runc,transfer_rate,4278.39 +1,runc,transfer_rate,565.35 +1,runc,latency,1.0 +1,runsc,transfer_rate,282.84 +1,runsc,latency,2.0 +5,runc,transfer_rate,3260.57 5,runc,latency,1.0 -5,runsc,transfer_rate,1205.09 -5,runsc,latency,2.0 -10,runc,transfer_rate,5170.11 +5,runsc,transfer_rate,832.69 +5,runsc,latency,3.0 +10,runc,transfer_rate,4672.01 10,runc,latency,1.0 -10,runsc,transfer_rate,1390.26 -10,runsc,latency,3.0 -25,runc,transfer_rate,5435.27 +10,runsc,transfer_rate,1095.47 +10,runsc,latency,4.0 +25,runc,transfer_rate,4964.14 25,runc,latency,2.0 -25,runsc,transfer_rate,1067.27 -25,runsc,latency,10.0 +25,runsc,transfer_rate,961.03 +25,runsc,latency,12.0 diff --git a/static/performance/httpd10240k.csv b/static/performance/httpd10240k.csv index ff25fad77..60dbe7b40 100644 --- a/static/performance/httpd10240k.csv +++ b/static/performance/httpd10240k.csv @@ -1,17 +1,17 @@ connections,runtime,metric,result -1,runc,transfer_rate,880.36 -1,runc,latency,0.0 -1,runsc,transfer_rate,404.93 -1,runsc,latency,1.0 -5,runc,transfer_rate,4263.6 +1,runc,transfer_rate,674.05 +1,runc,latency,1.0 +1,runsc,transfer_rate,243.35 +1,runsc,latency,2.0 +5,runc,transfer_rate,3089.83 5,runc,latency,1.0 -5,runsc,transfer_rate,1211.68 +5,runsc,transfer_rate,981.91 5,runsc,latency,2.0 -10,runc,transfer_rate,5172.49 +10,runc,transfer_rate,4701.2 10,runc,latency,1.0 -10,runsc,transfer_rate,1338.98 -10,runsc,latency,3.0 -25,runc,transfer_rate,5485.12 +10,runsc,transfer_rate,1135.08 +10,runsc,latency,4.0 +25,runc,transfer_rate,5021.36 25,runc,latency,2.0 -25,runsc,transfer_rate,1077.82 -25,runsc,latency,11.0 +25,runsc,transfer_rate,963.26 +25,runsc,latency,12.0 diff --git a/static/performance/iperf.csv b/static/performance/iperf.csv index 182140e27..1f3b41aec 100644 --- a/static/performance/iperf.csv +++ b/static/performance/iperf.csv @@ -1,5 +1,5 @@ runtime,method,metric,result -runc,network.download,bandwidth,769515500.0 -runc,network.upload,bandwidth,790282500.0 -runsc,network.download,bandwidth,711784500.0 -runsc,network.upload,bandwidth,506225500.0 +runc,network.download,bandwidth,746386000.0 +runc,network.upload,bandwidth,709808000.0 +runsc,network.download,bandwidth,640303500.0 +runsc,network.upload,bandwidth,482254000.0 diff --git a/static/performance/redis.csv b/static/performance/redis.csv index 9b517b9f9..9a92f3220 100644 --- a/static/performance/redis.csv +++ b/static/performance/redis.csv @@ -1,35 +1,35 @@ runtime,metric,result -runc,PING_INLINE,31328.32 -runc,PING_BULK,30797.66 -runc,SET,30854.68 -runc,GET,30826.14 -runc,INCR,31725.89 -runc,LPUSH,31515.91 -runc,RPUSH,31210.99 -runc,LPOP,30637.26 -runc,RPOP,30835.65 -runc,SADD,31123.56 -runc,HSET,30778.7 -runc,SPOP,31017.37 -runc,LRANGE_100,24654.83 -runc,LRANGE_300,14692.92 -runc,LRANGE_500,12253.4 -runc,LRANGE_600,10389.61 -runc,MSET,31535.79 -runsc,PING_INLINE,14932.06 -runsc,PING_BULK,15772.87 -runsc,SET,15532.77 -runsc,GET,15603.06 -runsc,INCR,15542.43 -runsc,LPUSH,15253.2 -runsc,RPUSH,15332.72 -runsc,LPOP,15391.72 -runsc,RPOP,15408.32 -runsc,SADD,15520.72 -runsc,HSET,15283.51 -runsc,SPOP,15644.56 -runsc,LRANGE_100,13635.12 -runsc,LRANGE_300,9993.0 -runsc,LRANGE_500,8588.11 -runsc,LRANGE_600,7231.18 -runsc,MSET,14669.21 +runc,PING_INLINE,30525.03 +runc,PING_BULK,30293.85 +runc,SET,30257.19 +runc,GET,30312.21 +runc,INCR,30525.03 +runc,LPUSH,30712.53 +runc,RPUSH,30459.95 +runc,LPOP,30367.45 +runc,RPOP,30665.44 +runc,SADD,30030.03 +runc,HSET,30656.04 +runc,SPOP,29940.12 +runc,LRANGE_100,24224.81 +runc,LRANGE_300,14302.06 +runc,LRANGE_500,11728.83 +runc,LRANGE_600,9900.99 +runc,MSET,30120.48 +runsc,PING_INLINE,14528.55 +runsc,PING_BULK,15627.44 +runsc,SET,15403.57 +runsc,GET,15325.67 +runsc,INCR,15269.51 +runsc,LPUSH,15172.2 +runsc,RPUSH,15117.16 +runsc,LPOP,15257.86 +runsc,RPOP,15188.33 +runsc,SADD,15432.1 +runsc,HSET,15163.0 +runsc,SPOP,15561.78 +runsc,LRANGE_100,13365.41 +runsc,LRANGE_300,9520.18 +runsc,LRANGE_500,8248.78 +runsc,LRANGE_600,6544.07 +runsc,MSET,14367.82 diff --git a/static/performance/startup.csv b/static/performance/startup.csv index 7871e0438..6bad00df6 100644 --- a/static/performance/startup.csv +++ b/static/performance/startup.csv @@ -1,7 +1,7 @@ runtime,method,metric,result -runc,startup.empty,startup_time_ms,1114.56914 -runc,startup.node,startup_time_ms,2311.1579199999996 -runc,startup.ruby,startup_time_ms,2297.36332 -runsc,startup.empty,startup_time_ms,1071.5360200000002 -runsc,startup.node,startup_time_ms,2308.90646 -runsc,startup.ruby,startup_time_ms,2336.6960599999998 +runc,startup.empty,startup_time_ms,1193.10768 +runc,startup.node,startup_time_ms,2557.95336 +runc,startup.ruby,startup_time_ms,2530.12624 +runsc,startup.empty,startup_time_ms,1144.1775 +runsc,startup.node,startup_time_ms,2441.90284 +runsc,startup.ruby,startup_time_ms,2455.69882 diff --git a/static/performance/sysbench-cpu.csv b/static/performance/sysbench-cpu.csv index 870172f3f..f4e6b69a6 100644 --- a/static/performance/sysbench-cpu.csv +++ b/static/performance/sysbench-cpu.csv @@ -1,3 +1,3 @@ runtime,metric,result -runc,cpu_events_per_second,104.35 -runsc,cpu_events_per_second,103.86 +runc,cpu_events_per_second,103.62 +runsc,cpu_events_per_second,103.21 diff --git a/static/performance/sysbench-memory.csv b/static/performance/sysbench-memory.csv index 362ca14a4..626ff4994 100644 --- a/static/performance/sysbench-memory.csv +++ b/static/performance/sysbench-memory.csv @@ -1,3 +1,3 @@ runtime,metric,result -runc,memory_ops_per_second,13274.43 -runsc,memory_ops_per_second,13204.74 +runc,memory_ops_per_second,13098.73 +runsc,memory_ops_per_second,13107.44 diff --git a/static/performance/syscall.csv b/static/performance/syscall.csv index a21a1bd32..7fa9b5d50 100644 --- a/static/performance/syscall.csv +++ b/static/performance/syscall.csv @@ -1,4 +1,5 @@ runtime,metric,result -runc,syscall_time_ns,1929.0 -runsc,syscall_time_ns,36011.0 -runsc-kvm,syscall_time_ns,754.0 +runc,syscall_time_ns,1939.0 +runsc,syscall_time_ns,38219.0 +runsc-kvm,syscall_time_ns,763.0 +runsc-kvm-bare,syscall_time_ns,455.0 \ No newline at end of file diff --git a/static/performance/tensorflow.csv b/static/performance/tensorflow.csv index de5baea5b..03498bef0 100644 --- a/static/performance/tensorflow.csv +++ b/static/performance/tensorflow.csv @@ -1,3 +1,3 @@ runtime,metric,result -runc,run_time,192.232783 -runsc,run_time,223.366044 +runc,run_time,207.1118165 +runsc,run_time,244.473401