-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: 3.2.0
-
Component/s: WiredTiger
-
Fully Compatible
-
ALL
-
Platforms E (01/08/16)
ISSUE SUMMARY
In SERVER-20991, direct_io was enabled by default on Windows machines. This change reduced the memory consumption of mongod processes, but may cause a degradation in performance. This change to the default setting of direct_io was reverted in this ticket.
USER IMPACT
With direct_io enabled, when the WiredTiger cache becomes full, the insertion rate may drop significantly.
WORKAROUNDS
To correct the performance regression in MongoDB 3.2.0, start mongod with
--wiredTigerEngineConfigString="direct_io="
To maintain to the performance characteristics of MongoDB 3.2.0 in later versions, start mongod with
--wiredTigerEngineConfigString="direct_io=(data)"
This setting may also be configured in the mongod configuration file:
storage: wiredTiger: engineConfig: configString: direct_io=(data)
AFFECTED VERSIONS
MongoDB 3.2.0
FIX VERSION
The fix is included in the 3.2.1 production release.
Original description
- AWS Instance - c4.4xlarge (16 CPU, 30GB RAM)
- journal and data files configured on separate drives
- 5 threads inserting small records in batches of 1000
- default cache settings
- syncdelay 10 (probably not relevant as checkpoints are very long anyway)
- test run under rc6, same code as ga
3.0.7
3.2.0
- initially 3.2.0 has somewhat higher insert rate
- after cache fills 3.0.7 insert rate remains constant but 3.2.0 drops by about 5x, to about 25% of rate under 3.0.7
Averages insert rates during initial and cache full portions of run:
initial cache full 3.0.7 152 k/s 135 k/s 3.2.0 178 k/s 33 k/s