<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>etcd benchmarks on etcd</title><link>https://etcd.io/docs/v3.1/benchmarks/</link><description>Recent content in etcd benchmarks on etcd</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://etcd.io/docs/v3.1/benchmarks/index.xml" rel="self" type="application/rss+xml"/><item><title>etcd v2.1.0-alpha benchmarks</title><link>https://etcd.io/docs/v3.1/benchmarks/etcd-2-1-0-alpha-benchmarks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://etcd.io/docs/v3.1/benchmarks/etcd-2-1-0-alpha-benchmarks/</guid><description>&lt;h2 id="physical-machines"&gt;Physical machines&lt;/h2&gt;
&lt;p&gt;GCE n1-highcpu-2 machine type&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1x dedicated local SSD mounted under /var/lib/etcd&lt;/li&gt;
&lt;li&gt;1x dedicated slow disk for the OS&lt;/li&gt;
&lt;li&gt;1.8 GB memory&lt;/li&gt;
&lt;li&gt;2x CPUs&lt;/li&gt;
&lt;li&gt;etcd version 2.1.0 alpha&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="etcd-cluster"&gt;etcd Cluster&lt;/h2&gt;
&lt;p&gt;3 etcd members, each runs on a single machine&lt;/p&gt;
&lt;h2 id="testing"&gt;Testing&lt;/h2&gt;
&lt;p&gt;Bootstrap another machine and use the &lt;a href="https://github.com/rakyll/hey" target="_blank" rel="noopener"&gt;hey HTTP benchmark tool&lt;/a&gt; to send requests to each etcd member. Check the &lt;a href="https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark" target="_blank" rel="noopener"&gt;benchmark hacking guide&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;h2 id="performance"&gt;Performance&lt;/h2&gt;
&lt;h3 id="reading-one-single-key"&gt;reading one single key&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;key size in bytes&lt;/th&gt;
 &lt;th&gt;number of clients&lt;/th&gt;
 &lt;th&gt;target etcd server&lt;/th&gt;
 &lt;th&gt;read QPS&lt;/th&gt;
 &lt;th&gt;90th Percentile Latency (ms)&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;1534&lt;/td&gt;
 &lt;td&gt;0.7&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;10125&lt;/td&gt;
 &lt;td&gt;9.1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;13892&lt;/td&gt;
 &lt;td&gt;27.1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;1530&lt;/td&gt;
 &lt;td&gt;0.8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;10106&lt;/td&gt;
 &lt;td&gt;10.1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;14667&lt;/td&gt;
 &lt;td&gt;27.0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;all servers&lt;/td&gt;
 &lt;td&gt;24200&lt;/td&gt;
 &lt;td&gt;3.9&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;all servers&lt;/td&gt;
 &lt;td&gt;33300&lt;/td&gt;
 &lt;td&gt;11.8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;all servers&lt;/td&gt;
 &lt;td&gt;24800&lt;/td&gt;
 &lt;td&gt;3.9&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;all servers&lt;/td&gt;
 &lt;td&gt;33000&lt;/td&gt;
 &lt;td&gt;11.5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="writing-one-single-key"&gt;writing one single key&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;key size in bytes&lt;/th&gt;
 &lt;th&gt;number of clients&lt;/th&gt;
 &lt;th&gt;target etcd server&lt;/th&gt;
 &lt;th&gt;write QPS&lt;/th&gt;
 &lt;th&gt;90th Percentile Latency (ms)&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;60&lt;/td&gt;
 &lt;td&gt;21.4&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;1742&lt;/td&gt;
 &lt;td&gt;46.8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;3982&lt;/td&gt;
 &lt;td&gt;90.5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;58&lt;/td&gt;
 &lt;td&gt;20.3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;1770&lt;/td&gt;
 &lt;td&gt;47.8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;leader only&lt;/td&gt;
 &lt;td&gt;4157&lt;/td&gt;
 &lt;td&gt;105.3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;all servers&lt;/td&gt;
 &lt;td&gt;1028&lt;/td&gt;
 &lt;td&gt;123.4&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;all servers&lt;/td&gt;
 &lt;td&gt;3260&lt;/td&gt;
 &lt;td&gt;123.8&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;all servers&lt;/td&gt;
 &lt;td&gt;1033&lt;/td&gt;
 &lt;td&gt;121.5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;all servers&lt;/td&gt;
 &lt;td&gt;3061&lt;/td&gt;
 &lt;td&gt;119.3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>etcd v2.2.0 benchmarks</title><link>https://etcd.io/docs/v3.1/benchmarks/etcd-2-2-0-benchmarks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://etcd.io/docs/v3.1/benchmarks/etcd-2-2-0-benchmarks/</guid><description>&lt;h2 id="physical-machines"&gt;Physical Machines&lt;/h2&gt;
&lt;p&gt;GCE n1-highcpu-2 machine type&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1x dedicated local SSD mounted as etcd data directory&lt;/li&gt;
&lt;li&gt;1x dedicated slow disk for the OS&lt;/li&gt;
&lt;li&gt;1.8 GB memory&lt;/li&gt;
&lt;li&gt;2x CPUs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="etcd-cluster"&gt;etcd Cluster&lt;/h2&gt;
&lt;p&gt;3 etcd 2.2.0 members, each runs on a single machine.&lt;/p&gt;
&lt;p&gt;Detailed versions:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;etcd Version: 2.2.0
Git SHA: e4561dd
Go Version: go1.5
Go OS/Arch: linux/amd64
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="testing"&gt;Testing&lt;/h2&gt;
&lt;p&gt;Bootstrap another machine, outside of the etcd cluster, and run the &lt;a href="https://github.com/rakyll/hey" target="_blank" rel="noopener"&gt;&lt;code&gt;hey&lt;/code&gt; HTTP benchmark tool&lt;/a&gt; with a connection reuse patch to send requests to each etcd cluster member. See the &lt;a href="https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark" target="_blank" rel="noopener"&gt;benchmark instructions&lt;/a&gt; for the patch and the steps to reproduce our procedures.&lt;/p&gt;</description></item><item><title>etcd v2.2.0-rc benchmarks</title><link>https://etcd.io/docs/v3.1/benchmarks/etcd-2-2-0-rc-benchmarks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://etcd.io/docs/v3.1/benchmarks/etcd-2-2-0-rc-benchmarks/</guid><description>&lt;h2 id="physical-machines"&gt;Physical machines&lt;/h2&gt;
&lt;p&gt;GCE n1-highcpu-2 machine type&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1x dedicated local SSD mounted under /var/lib/etcd&lt;/li&gt;
&lt;li&gt;1x dedicated slow disk for the OS&lt;/li&gt;
&lt;li&gt;1.8 GB memory&lt;/li&gt;
&lt;li&gt;2x CPUs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="etcd-cluster"&gt;etcd Cluster&lt;/h2&gt;
&lt;p&gt;3 etcd 2.2.0-rc members, each runs on a single machine.&lt;/p&gt;
&lt;p&gt;Detailed versions:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;etcd Version: 2.2.0-alpha.1+git
Git SHA: 59a5a7e
Go Version: go1.4.2
Go OS/Arch: linux/amd64
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Also, we use 3 etcd 2.1.0 alpha-stage members to form cluster to get base performance. etcd&amp;rsquo;s commit head is at &lt;a href="https://github.com/etcd-io/etcd/commits/c7146bd5f2c73716091262edc638401bb8229144" target="_blank" rel="noopener"&gt;c7146bd5&lt;/a&gt;, which is the same as the one that we use in &lt;a href="../etcd-2-1-0-alpha-benchmarks/"&gt;etcd 2.1 benchmark&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>etcd v2.2.0-rc-memory benchmarks</title><link>https://etcd.io/docs/v3.1/benchmarks/etcd-2-2-0-rc-memory-benchmarks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://etcd.io/docs/v3.1/benchmarks/etcd-2-2-0-rc-memory-benchmarks/</guid><description>&lt;h2 id="physical-machine"&gt;Physical machine&lt;/h2&gt;
&lt;p&gt;GCE n1-standard-2 machine type&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1x dedicated local SSD mounted under /var/lib/etcd&lt;/li&gt;
&lt;li&gt;1x dedicated slow disk for the OS&lt;/li&gt;
&lt;li&gt;7.5 GB memory&lt;/li&gt;
&lt;li&gt;2x CPUs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="etcd"&gt;etcd&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;etcd Version: 2.2.0-rc.0+git
Git SHA: 103cb5c
Go Version: go1.5
Go OS/Arch: linux/amd64
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="testing"&gt;Testing&lt;/h2&gt;
&lt;p&gt;Start 3-member etcd cluster, each of which uses 2 cores.&lt;/p&gt;
&lt;p&gt;The length of key name is always 64 bytes, which is a reasonable length of average key bytes.&lt;/p&gt;
&lt;h2 id="memory-maximal-usage"&gt;Memory Maximal Usage&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;etcd may use maximal memory if one follower is dead and the leader keeps sending snapshots.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;max RSS&lt;/code&gt; is the maximal memory usage recorded in 3 runs.&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;value bytes&lt;/th&gt;
 &lt;th&gt;key number&lt;/th&gt;
 &lt;th&gt;data size(MB)&lt;/th&gt;
 &lt;th&gt;max RSS(MB)&lt;/th&gt;
 &lt;th&gt;max RSS/data rate on leader&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;128&lt;/td&gt;
 &lt;td&gt;50000&lt;/td&gt;
 &lt;td&gt;6&lt;/td&gt;
 &lt;td&gt;433&lt;/td&gt;
 &lt;td&gt;72x&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;128&lt;/td&gt;
 &lt;td&gt;100000&lt;/td&gt;
 &lt;td&gt;12&lt;/td&gt;
 &lt;td&gt;659&lt;/td&gt;
 &lt;td&gt;54x&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;128&lt;/td&gt;
 &lt;td&gt;200000&lt;/td&gt;
 &lt;td&gt;24&lt;/td&gt;
 &lt;td&gt;1466&lt;/td&gt;
 &lt;td&gt;61x&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1024&lt;/td&gt;
 &lt;td&gt;50000&lt;/td&gt;
 &lt;td&gt;48&lt;/td&gt;
 &lt;td&gt;1253&lt;/td&gt;
 &lt;td&gt;26x&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1024&lt;/td&gt;
 &lt;td&gt;100000&lt;/td&gt;
 &lt;td&gt;96&lt;/td&gt;
 &lt;td&gt;2344&lt;/td&gt;
 &lt;td&gt;24x&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1024&lt;/td&gt;
 &lt;td&gt;200000&lt;/td&gt;
 &lt;td&gt;192&lt;/td&gt;
 &lt;td&gt;4361&lt;/td&gt;
 &lt;td&gt;22x&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="data-size-threshold"&gt;Data Size Threshold&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;When etcd reaches data size threshold, it may trigger leader election easily and drop part of proposals.&lt;/li&gt;
&lt;li&gt;At most cases, etcd cluster should work smoothly if it doesn&amp;rsquo;t hit the threshold. If it doesn&amp;rsquo;t work well due to insufficient resources, you need to decrease its data size.&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;value bytes&lt;/th&gt;
 &lt;th&gt;key number limitation&lt;/th&gt;
 &lt;th&gt;suggested data size threshold(MB)&lt;/th&gt;
 &lt;th&gt;consumed RSS(MB)&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;128&lt;/td&gt;
 &lt;td&gt;400K&lt;/td&gt;
 &lt;td&gt;48&lt;/td&gt;
 &lt;td&gt;2400&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;1024&lt;/td&gt;
 &lt;td&gt;300K&lt;/td&gt;
 &lt;td&gt;292&lt;/td&gt;
 &lt;td&gt;6500&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>etcd v3-demo benchmarks</title><link>https://etcd.io/docs/v3.1/benchmarks/etcd-3-demo-benchmarks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://etcd.io/docs/v3.1/benchmarks/etcd-3-demo-benchmarks/</guid><description>&lt;h2 id="physical-machines"&gt;Physical machines&lt;/h2&gt;
&lt;p&gt;GCE n1-highcpu-2 machine type&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1x dedicated local SSD mounted under /var/lib/etcd&lt;/li&gt;
&lt;li&gt;1x dedicated slow disk for the OS&lt;/li&gt;
&lt;li&gt;1.8 GB memory&lt;/li&gt;
&lt;li&gt;2x CPUs&lt;/li&gt;
&lt;li&gt;etcd version 2.2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="etcd-cluster"&gt;etcd Cluster&lt;/h2&gt;
&lt;p&gt;1 etcd member running in v3 demo mode&lt;/p&gt;
&lt;h2 id="testing"&gt;Testing&lt;/h2&gt;
&lt;p&gt;Use &lt;a href="../../op-guide/performance/#benchmarks"&gt;etcd v3 benchmark tool&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="performance"&gt;Performance&lt;/h2&gt;
&lt;h3 id="reading-one-single-key"&gt;reading one single key&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;key size in bytes&lt;/th&gt;
 &lt;th&gt;number of clients&lt;/th&gt;
 &lt;th&gt;read QPS&lt;/th&gt;
 &lt;th&gt;90th Percentile Latency (ms)&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;2716&lt;/td&gt;
 &lt;td&gt;0.4&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;64&lt;/td&gt;
 &lt;td&gt;16623&lt;/td&gt;
 &lt;td&gt;6.1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;256&lt;/td&gt;
 &lt;td&gt;16622&lt;/td&gt;
 &lt;td&gt;21.7&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The performance is nearly the same as the one with empty server handler.&lt;/p&gt;</description></item><item><title>Storage Memory Usage Benchmark</title><link>https://etcd.io/docs/v3.1/benchmarks/etcd-storage-memory-benchmark/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://etcd.io/docs/v3.1/benchmarks/etcd-storage-memory-benchmark/</guid><description>&lt;!---todo: link storage to storage design doc--&gt;
&lt;p&gt;Two components of etcd storage consume physical memory. The etcd process allocates an &lt;em&gt;in-memory index&lt;/em&gt; to speed key lookup. The process&amp;rsquo;s &lt;em&gt;page cache&lt;/em&gt;, managed by the operating system, stores recently-accessed data from disk for quick re-use.&lt;/p&gt;
&lt;p&gt;The in-memory index holds all the keys in a &lt;a href="https://en.wikipedia.org/wiki/B-tree" target="_blank" rel="noopener"&gt;B-tree&lt;/a&gt; data structure, along with pointers to the on-disk data (the values). Each key in the B-tree may contain multiple pointers, pointing to different versions of its values. The theoretical memory consumption of the in-memory index can hence be approximated with the formula:&lt;/p&gt;</description></item><item><title>Watch Memory Usage Benchmark</title><link>https://etcd.io/docs/v3.1/benchmarks/etcd-3-watch-memory-benchmark/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://etcd.io/docs/v3.1/benchmarks/etcd-3-watch-memory-benchmark/</guid><description>&lt;p&gt;&lt;em&gt;NOTE&lt;/em&gt;: The watch features are under active development, and their memory usage may change as that development progresses. We do not expect it to significantly increase beyond the figures stated below.&lt;/p&gt;
&lt;p&gt;A primary goal of etcd is supporting a very large number of watchers doing a massively large amount of watching. etcd aims to support O(10k) clients, O(100K) watch streams (O(10) streams per client) and O(10M) total watchings (O(100) watching per stream). The memory consumed by each individual watching accounts for the largest portion of etcd&amp;rsquo;s overall usage, and is therefore the focus of current and future optimizations.&lt;/p&gt;</description></item></channel></rss>