1

I have a long running background index creation running in MongoDB. However, the CPU and RAM usage is below 30%.

Is there a way to allocate more resources to the index creation process or is it mostly constrained by disk speed? I have not found anything in the MongoDB config file.

I am running MongoDB 4.0.2 on Debian 3.16.7.

MongoDB config:

> db._adminCommand({getParameter:"*"})
{
"AsyncRequestsSenderUseBaton" : true,
"KeysRotationIntervalSec" : 7776000,
"ShardingTaskExecutorPoolHostTimeoutMS" : 300000,
"ShardingTaskExecutorPoolMaxConnecting" : 2,
"ShardingTaskExecutorPoolMaxSize" : -1,
"ShardingTaskExecutorPoolMinSize" : 1,
"ShardingTaskExecutorPoolRefreshRequirementMS" : 60000,
"ShardingTaskExecutorPoolRefreshTimeoutMS" : 20000,
"TransactionRecordMinimumLifetimeMinutes" : 30,
"adaptiveServiceExecutorIdlePctThreshold" : 60,
"adaptiveServiceExecutorMaxQueueLatencyMicros" : 500,
"adaptiveServiceExecutorRecursionLimit" : 8,
"adaptiveServiceExecutorReservedThreads" : -1,
"adaptiveServiceExecutorRunTimeJitterMillis" : 500,
"adaptiveServiceExecutorRunTimeMillis" : 5000,
"adaptiveServiceExecutorStuckThreadTimeoutMillis" : 250,
"allowSecondaryReadsDuringBatchApplication" : true,
"authSchemaVersion" : 5,
"authenticationMechanisms" : [
    "MONGODB-X509",
    "SCRAM-SHA-1",
    "SCRAM-SHA-256"
],
"bgSyncOplogFetcherBatchSize" : 13981010,
"clientCursorMonitorFrequencySecs" : 4,
"cloudFreeMonitoringEndpointURL" : "https://cloud.mongodb.com/freemonitoring/mongo",
"clusterAuthMode" : "undefined",
"collectionClonerBatchSize" : -1,
"connPoolMaxConnsPerHost" : 200,
"connPoolMaxInUseConnsPerHost" : 2147483647,
"connPoolMaxShardedConnsPerHost" : 200,
"connPoolMaxShardedInUseConnsPerHost" : 2147483647,
"createRollbackDataFiles" : true,
"createTimestampSafeUniqueIndex" : false,
"cursorTimeoutMillis" : NumberLong(600000),
"debugCollectionUUIDs" : false,
"diagnosticDataCollectionDirectorySizeMB" : 200,
"diagnosticDataCollectionEnabled" : true,
"diagnosticDataCollectionFileSizeMB" : 10,
"diagnosticDataCollectionPeriodMillis" : 1000,
"diagnosticDataCollectionSamplesPerChunk" : 300,
"diagnosticDataCollectionSamplesPerInterimUpdate" : 10,
"disableJavaScriptJIT" : true,
"disableLogicalSessionCacheRefresh" : false,
"disableNonSSLConnectionLogging" : false,
"disabledSecureAllocatorDomains" : [ ],
"enableElectionHandoff" : true,
"enableInMemoryTransactions" : false,
"enableLocalhostAuthBypass" : true,
"enableTestCommands" : false,
"failIndexKeyTooLong" : true,
"featureCompatibilityVersion" : {
    "version" : "4.0"
},
"forceRollbackViaRefetch" : false,
"globalConnPoolIdleTimeoutMinutes" : 2147483647,
"heapProfilingEnabled" : false,
"heapProfilingSampleIntervalBytes" : NumberLong(262144),
"honorSystemUmask" : false,
"initialSyncOplogBuffer" : "collection",
"initialSyncOplogBufferPeekCacheSize" : 10000,
"initialSyncOplogFetcherBatchSize" : 13981010,
"internalDocumentSourceCursorBatchSizeBytes" : 4194304,
"internalDocumentSourceLookupCacheSizeBytes" : 104857600,
"internalGeoNearQuery2DMaxCoveringCells" : 16,
"internalGeoPredicateQuery2DMaxCoveringCells" : 16,
"internalInsertMaxBatchSize" : 64,
"internalProhibitShardOperationRetry" : false,
"internalQueryAlwaysMergeOnPrimaryShard" : false,
"internalQueryCacheEvictionRatio" : 10,
"internalQueryCacheFeedbacksStored" : 20,
"internalQueryCacheSize" : 5000,
"internalQueryEnumerationMaxIntersectPerAnd" : 3,
"internalQueryEnumerationMaxOrSolutions" : 10,
"internalQueryExecMaxBlockingSortBytes" : 33554432,
"internalQueryExecYieldIterations" : 128,
"internalQueryExecYieldPeriodMS" : 10,
"internalQueryFacetBufferSizeBytes" : 104857600,
"internalQueryForceIntersectionPlans" : false,
"internalQueryIgnoreUnknownJSONSchemaKeywords" : false,
"internalQueryMaxScansToExplode" : 200,
"internalQueryPlanEvaluationCollFraction" : 0.3,
"internalQueryPlanEvaluationMaxResults" : 101,
"internalQueryPlanEvaluationWorks" : 10000,
"internalQueryPlanOrChildrenIndependently" : true,
"internalQueryPlannerEnableHashIntersection" : false,
"internalQueryPlannerEnableIndexIntersection" : true,
"internalQueryPlannerGenerateCoveredWholeIndexScans" : false,
"internalQueryPlannerMaxIndexedSolutions" : 64,
"internalQueryProhibitBlockingMergeOnMongoS" : false,
"internalQueryProhibitMergingOnMongoS" : false,
"internalQueryS2GeoCoarsestLevel" : 0,
"internalQueryS2GeoFinestLevel" : 23,
"internalQueryS2GeoMaxCells" : 20,
"internalValidateFeaturesAsMaster" : true,
"javascriptProtection" : false,
"journalCommitInterval" : 0,
"jsHeapLimitMB" : 1100,
"localLogicalSessionTimeoutMinutes" : 30,
"logComponentVerbosity" : {
    "verbosity" : 0,
    "accessControl" : {
        "verbosity" : -1
    },
    "command" : {
        "verbosity" : -1
    },
    "control" : {
        "verbosity" : -1
    },
    "executor" : {
        "verbosity" : -1
    },
    "geo" : {
        "verbosity" : -1
    },
    "index" : {
        "verbosity" : -1
    },
    "network" : {
        "verbosity" : -1,
        "asio" : {
            "verbosity" : -1
        },
        "bridge" : {
            "verbosity" : -1
        }
    },
    "query" : {
        "verbosity" : -1
    },
    "replication" : {
        "verbosity" : -1,
        "heartbeats" : {
            "verbosity" : -1
        },
        "rollback" : {
            "verbosity" : -1
        }
    },
    "sharding" : {
        "verbosity" : -1
    },
    "storage" : {
        "verbosity" : -1,
        "recovery" : {
            "verbosity" : -1
        },
        "journal" : {
            "verbosity" : -1
        }
    },
    "write" : {
        "verbosity" : -1
    },
    "ftdc" : {
        "verbosity" : -1
    },
    "tracking" : {
        "verbosity" : -1
    },
    "transaction" : {
        "verbosity" : -1
    }
},
"logLevel" : 0,
"logicalSessionRefreshMinutes" : 5,
"maxAcceptableLogicalClockDriftSecs" : NumberLong(31536000),
"maxBSONDepth" : 200,
"maxIndexBuildMemoryUsageMegabytes" : 500,
"maxLogSizeKB" : 10,
"maxNumInitialSyncCollectionClonerCursors" : 1,
"maxSessions" : 1000000,
"maxSyncSourceLagSecs" : 30,
"maxTransactionLockRequestTimeoutMillis" : 5,
"newCollectionsUsePowerOf2Sizes" : true,
"notablescan" : false,
"numInitialSyncAttempts" : 10,
"numInitialSyncCollectionCountAttempts" : 3,
"numInitialSyncCollectionFindAttempts" : 3,
"numInitialSyncConnectAttempts" : 10,
"numInitialSyncListCollectionsAttempts" : 3,
"numInitialSyncListDatabasesAttempts" : 3,
"numInitialSyncListIndexesAttempts" : 3,
"numInitialSyncOplogFindAttempts" : 3,
"opensslCipherConfig" : "",
"opensslDiffieHellmanParameters" : "",
"oplogFetcherInitialSyncMaxFetcherRestarts" : 10,
"oplogFetcherSteadyStateMaxFetcherRestarts" : 1,
"oplogInitialFindMaxSeconds" : 60,
"oplogRetriedFindMaxSeconds" : 2,
"orphanCleanupDelaySecs" : 900,
"periodicNoopIntervalSecs" : 10,
"priorityTakeoverFreshnessWindowSeconds" : 2,
"quiet" : false,
"rangeDeleterBatchDelayMS" : 20,
"recoverFromOplogAsStandalone" : false,
"replBatchLimitOperations" : 5000,
"replElectionTimeoutOffsetLimitFraction" : 0.15,
"replIndexPrefetch" : "uninitialized",
"replWriterThreadCount" : 16,
"rollbackRemoteOplogQueryBatchSize" : 2000,
"rollbackTimeLimitSecs" : 86400,
"saslHostName" : "vm-141-40-254-44",
"saslServiceName" : "mongodb",
"saslauthdPath" : "",
"scramIterationCount" : 10000,
"scramSHA256IterationCount" : 15000,
"scriptingEngineInterruptIntervalMS" : 1000,
"shardedConnPoolIdleTimeoutMinutes" : 2147483647,
"skipCorruptDocumentsWhenCloning" : false,
"skipShardingConfigurationChecks" : false,
"sslMode" : "disabled",
"startupAuthSchemaValidation" : true,
"suppressNoTLSPeerCertificateWarning" : false,
"syncdelay" : 60,
"synchronousServiceExecutorRecursionLimit" : 8,
"taskExecutorPoolSize" : 1,
"tcmallocAggressiveMemoryDecommit" : 0,
"tcmallocEnableMarkThreadTemporarilyIdle" : false,
"tcmallocMaxTotalThreadCacheBytes" : NumberLong(1073741824),
"testingSnapshotBehaviorInIsolation" : false,
"traceExceptions" : false,
"traceWriteConflictExceptions" : false,
"transactionLifetimeLimitSeconds" : 60,
"ttlMonitorEnabled" : true,
"ttlMonitorSleepSecs" : 60,
"waitForSecondaryBeforeNoopWriteMS" : 10,
"wiredTigerConcurrentReadTransactions" : 128,
"wiredTigerConcurrentWriteTransactions" : 128,
"wiredTigerCursorCacheSize" : -100,
"writePeriodicNoops" : true,
"ok" : 1

}

The only related parameter seems to be maxIndexBuildMemoryUsageMegabytes but as per this it only applies to foreground index builds.

  • What are your mongod cofiguration details? – Mani Mar 25 at 16:34
  • @Mani Added the config details. – maax Mar 26 at 10:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.