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

Init script sets process ulimit to different value compared to documentation

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor - P4
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.6.10, 3.0.3, 3.1.1
    • Component/s: Packaging
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Completed:
    • Sprint:
      BUILD 1 04/03/15

      Description

      On rhel 6.6 (mongodb was installed with rpm) the issue of ulimits, documentation says the following:
      http://docs.mongodb.org/manual/reference/ulimit/#recommended-ulimit-settings

      Every deployment may have unique requirements and settings; however, the following thresholds and settings are particularly important for mongod and mongos deployments:

      -f (file size): unlimited
      -t (cpu time): unlimited
      -v (virtual memory): unlimited
      -n (open files): 64000
      -m (memory size): unlimited
      -u (processes/threads): 64000

      i.e open file and process ulimit (soft and hard) should be set to 64000.

      In the mongod init script (/etc/init.d/mongod), the start function sets process ulimit to 32000:

        \\# Recommended ulimit values for mongod or mongos
        \\# See http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
        #
        ulimit -f unlimited
        ulimit -t unlimited
        ulimit -v unlimited
        ulimit -n 64000
        ulimit -m unlimited
        ulimit -u 32000
      

      Here is a link to git :

      https://github.com/mongodb/mongo/blob/400dabd20809c561d8de21438d4bb7c682129641/rpm/init.d-mongod#L60

      While documentation recommends setting ulimit to 64000.

      It is possible this is a documentation bug. If so, please move to DOCS.

      Additionally, if /etc/security/limits.d/99-mongodb-nproc.conf file is created (as documentation recommends):

      mongod       soft        nproc        64000
      mongod       hard      nproc        64000
      mongod       soft       nofile      64000
      mongod       hard      nofile      64000
      

      Then the ulimit set by the init script will be run over by the ulimit of 99-mongodb-nproc.conf file, and the ulimit will be set to the recommended.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                2 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: