[SERVER-24303] Enable tcmalloc aggressive decommit by default Created: 27/May/16 Updated: 26/Aug/16 Resolved: 19/Aug/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Build, Storage, WiredTiger |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Michael Cahill (Inactive) | Assignee: | Michael Cahill (Inactive) |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
In There are performance test regressions, we need to understand them and figure out if anything can be done to reduce the impact. Then we need to make a cost/benefit decision. |
| Comments |
| Comment by Michael Cahill (Inactive) [ 19/Aug/16 ] | ||||||||||||||||||||||||||||||
|
Work in Given that, we have decided not to make this change for MongoDB 3.4. There is still the option of manually enabling aggressive decommit via an environment variable if we find cases in the field where it would help. | ||||||||||||||||||||||||||||||
| Comment by Alexander Gorrod [ 18/Aug/16 ] | ||||||||||||||||||||||||||||||
|
I've done performance analysis comparing MongoDB with TCMalloc aggressive decommit enabled vs disabled. I have run tests both locally and via Evergreen. I have run the YCSB workloads that are configured in Evergreen locally for comparison. The table below summarizes the results, all numbers are in overall throughput (ops/sec):
I have also run the Evergreen performance tests with aggressive decommit enabled. There has been quite a lot of performance fluctuation recently, so it is difficult to get an accurate measure for the difference. There are at least some tests that show significant performance regressions with aggressive decommit enabled. The micro-benchmarks (MongoDB Perf suite) shows results that are mostly within standard variation except:
The system benchmarks (sys-perf suite) results that are outside standard variation are:
The above results are generally reproducible via Evergreen patch builds. Seeing a performance degradation for workloads that allocate large documents was expected, but I had thought it would be in the 10-15% range. The performance degradation in the YCSB tests is larger than is acceptable. Given that the performance degradation is so significant and that the amount of fragmentation that can be generated has already been limited by architectural changes in WiredTiger (see |