You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Based on profiling with pprof, I found that some functions related to memory allocation and garbage collection (e.g. runtime.mallocgc and runtime.scanobject) are consuming much more cycles when the compaction interval becomes larger. It can be considered that the mark phase of GC becomes heavy because of the increased number of live objects (in this case, raft.MemoryStorage.ents would be a dominating object).
Although the difference is not so significant, adding guideline for performance tuning would be helpful because the long interval is not good for memory consumption and CPU cycles.
I did some performance evaluation and found that too short compaction is harmful for throughput but too long compaction also degrades throughput. The result can be found in page 49 to 51 of https://www.slideshare.net/mitakeh/understanding-performance-aspects-of-etcd-and-raft
Based on profiling with pprof, I found that some functions related to memory allocation and garbage collection (e.g.
runtime.mallocgc
andruntime.scanobject
) are consuming much more cycles when the compaction interval becomes larger. It can be considered that the mark phase of GC becomes heavy because of the increased number of live objects (in this case,raft.MemoryStorage.ents
would be a dominating object).Although the difference is not so significant, adding guideline for performance tuning would be helpful because the long interval is not good for memory consumption and CPU cycles.
/cc @xiang90 @heyitsanthony this is what I talked today
The text was updated successfully, but these errors were encountered: