Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-21792

Performance regression with directio enabled on Windows with WiredTiger

    • Fully Compatible
    • ALL
    • Platforms E (01/08/16)

      Issue Status as of Jan 05, 2016

      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
      

        1. 3.0.7.png
          3.0.7.png
          80 kB
        2. 3.2.0-rc6.png
          3.2.0-rc6.png
          79 kB
        3. 3.2.0-rc6-nodirectio.png
          3.2.0-rc6-nodirectio.png
          68 kB
        4. 3.2.0-rc6-perf.png
          3.2.0-rc6-perf.png
          435 kB

            Assignee:
            mark.benvenuto@mongodb.com Mark Benvenuto
            Reporter:
            bruce.lucas@mongodb.com Bruce Lucas (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            20 Start watching this issue

              Created:
              Updated:
              Resolved: