如何配置Mongodb的缓存大小?

时间:2015-10-01 14:20:03

标签: mongodb mmap

我需要处理Mongodb中的兑现。它需要大量的RAM才能做到这一点吗? 在这种情况下使用存储引擎有哪些特点和优势?

3 个答案:

答案 0 :(得分:0)

Dba是合适的地方。如果您使用WiredTiger(使用所有可用的RAM)和动态配置,则已经定义了缓存。

答案 1 :(得分:0)

  1. 方法(重启后无效):

    ./ bin / mongo admin

      

    db.adminCommand({“setParameter”:1,“wiredTigerEngineRuntimeConfig”:“cache_size = 10G”})

  2. 使用

    启动mongodb服务

    ./ bin / mongod --config server.conf --wiredTigerCacheSizeGB = 10

  3. --- server.conf(每行一个键/值)---

    maxConns=200
    logpath=logs/server.log
    logappend=true
    fork=true
    dbpath=data
    nohttpinterface=true
    syncdelay=60
    quiet = true
    slowms = 2000
    notablescan = false
    

    使用此命令检查大小:

    > db.serverStatus().wiredTiger.cache
    {
            "bytes currently in the cache" : 4606522365,
            "bytes read into cache" : 3291056,
            "bytes written from cache" : 5631783282,
            "checkpoint blocked page eviction" : 0,
            "eviction currently operating in aggressive mode" : 0,
            "eviction server candidate queue empty when topping up" : 448,
            "eviction server candidate queue not empty when topping up" : 0,
            "eviction server evicting pages" : 0,
            "eviction server populating queue, but not evicting pages" : 447,
            "eviction server unable to reach eviction goal" : 0,
            "eviction worker thread evicting pages" : 12,
            "failed eviction of pages that exceeded the in-memory maximum" : 0,
            "files with active eviction walks" : 0,
            "files with new eviction walks started" : 105,
            "hazard pointer blocked page eviction" : 0,
            "in-memory page passed criteria to be split" : 896,
            "in-memory page splits" : 448,
            "internal pages evicted" : 0,
            "internal pages split during eviction" : 0,
            "leaf pages split during eviction" : 13,
            "lookaside table insert calls" : 0,
            "lookaside table remove calls" : 0,
            "maximum bytes configured" : 10737418240,  <---- this is the configured size
            "maximum page size at eviction" : 8388576,
            "modified pages evicted" : 13,
            "modified pages evicted by application threads" : 0,
            "page split during eviction deepened the tree" : 0,
            "page written requiring lookaside records" : 0,
            "pages currently held in the cache" : 675,
            "pages evicted because they exceeded the in-memory maximum" : 1,
            "pages evicted because they had chains of deleted items" : 448,
            "pages evicted by application threads" : 0,
            "pages queued for eviction" : 12,
            "pages queued for urgent eviction" : 0,
            "pages read into cache" : 234,
            "pages read into cache requiring lookaside entries" : 0,
            "pages seen by eviction walk" : 25702,
            "pages selected for eviction unable to be evicted" : 0,
            "pages walked for eviction" : 127975,
            "pages written from cache" : 310352,
            "pages written requiring in-memory restoration" : 0,
            "percentage overhead" : 8,
            "tracked bytes belonging to internal pages in the cache" : 316858,
            "tracked bytes belonging to leaf pages in the cache" : 4606205507,
            "tracked bytes belonging to overflow pages in the cache" : 0,
            "tracked dirty bytes in the cache" : 809239633,
            "tracked dirty pages in the cache" : 190,
            "unmodified pages evicted" : 0
    }
    

答案 2 :(得分:0)

WT缓存大小的更简洁输出为GB:

db.serverStatus()。wiredTiger.cache [“已配置的最大字节数”] / 1024/1024/1024 64