we have bucket of 34 million items in couchbase cluster setup of 6 aws nodes. bucket has been allocated 32.1gb of ram (5482mb per node) , using 29.1gb. if use formula provided in couchbase documentation (http://docs.couchbase.com/admin/admin/concepts/bp-sizingguidelines.html) should use approx. 8.94gb of ram.
am calculating incorrectly? below link google spreadsheet details. https://docs.google.com/spreadsheets/d/1b9xqn030tbcurujv3bkhihj_aahepabmfg_ljqj-ezq/edit?usp=sharing
assuming indeed have working set of 0.5%, kirk pointed out in comment, odd not impossible, calculating result of memory sizing formula correctly. however, it's important understand formula not hard , fast rule fits situations. rather, it's general guideline , serves starting point go , begin performance tests. also, keep in mind ram sizing isn't consideration deciding on cluster size, because have consider data safety, total disk write throughput, network bandwidth, cpu, how single node failure affects rest of cluster, , more.
using result of ram sizing formula starting point, should test whether working assumptions correct. means putting real (or close representative) load on bucket , seeing whether % of cache misses low enough , operation lacency within acceptable limits. there no general rule this, what's acceptable applications might slow others.
just example, if see under load cache miss ratio 5% , while average read latency 3ms, top 1% latency 100ms - have consider whether having 1 out of every 100 reads take longer acceptable in application. if - great, if not - need start increasing ram size until matches actual working set. similarly, should keep eye on disk throughput, cpu usage, etc.
Comments
Post a Comment