AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-52948

King Roger's questions

Martin Hope
King Roger
Asked: 2014-11-27 01:55:06 +0800 CST

除非 Windows 中有非常大的页面文件,否则 MongoDB 会因 SymInitialize 错误而失败

  • 1

我想知道是否有人可以帮助解决我们似乎遇到的 MongoDB/页面文件问题,因为我们的数据库大小随着时间的推移而增加。MongoDB 时不时会在我们的副本集中的特定节点上崩溃,并且它不会再次启动,直到我们显着增加(双倍是安全的)我们的页面文件大小。当前,页面文件为 42GB。我们将 MongoDB 作为 3 节点副本集运行,每个节点都在 Azure 中的 Windows Server 2012 R2 虚拟机上运行。每个服务器有 3.5 GB 的内存。MongoDB 是 2.6.5 版。

我看过下面相关的帖子,我知道 MongoDB 使用内存映射文件,当我们没有足够的 RAM 时,虚拟内存可能会帮助解决这个问题。我不明白的是:

为什么 MongoDB 在启动时需要如此多的内存(对于 131GB 的数据库 >32GB 的页面文件)并且工作集相对较小(~100MB)?大概它可以根据需要换出文件,尤其是对于这么大的页面文件,那么为什么 MongoDB 会崩溃呢?

以下是我到目前为止找到的帖子:

即使只进行了插入,mongodb 内存使用率也会很高

和这个

SERVER-10044这解释了为什么 Mongo 崩溃并暗示 VM 更糟

在此先感谢您的帮助。

为了提供更多上下文,我们使用 MongoDB 来记录数据,因此大多数集合都被写入但很少从中读取,除了一些小集合(总共 100MB),它们经常读写。数据存储在单个 Mongo DB 数据库中,其统计信息如下所示(修改了数据库和集合名称):

    "db" : "MyDatabase",
    "collections" : 854,
    "objects" : 243025868,
    "avgObjSize" : 541.2304596809423,
    "dataSize" : 131533002252,
    "storageSize" : 172592721920,
    "numExtents" : 7268,
    "indexes" : 1934,
    "indexSize" : 27824138048,
    "fileSize" : 210284576768,
    "nsSizeMB" : 16,
    "dataFileVersion" : {
            "major" : 4,
            "minor" : 5
    },
    "extentFreeList" : {
            "num" : 3,
            "totalSize" : 110592
    },
    "ok" : 1

工作集似乎在 100 MB 左右,如下图所示:

   "workingSet" : {
           "note" : "thisIsAnEstimate",
           "pagesInMemory" : 20874,
           "computationTimeMicros" : 26236,
           "overSeconds" : 876
   },

最近发生故障的辅助设备上的日志文件输出如下(虽然第一次发生故障是在正常操作期间,但它发生在启动期间):


2014-11-25T09:25:17.833+0000 [rsBackgroundSync] replSet 同步到:10.1.6.71:27017 2014-11-25T09:25:17.833+0000 [rsBackgroundSync] replset 设置 syncSourceFeedback 到 10.1.6.71:27017 1-2014 25T09:25:17.849+0000 [rsSync] replSet 仍在同步,尚未达到 minValid optime 54744561:c 2014-11-25T09:25:18.286+0000 [rsSync] replSet SECONDARY 2014-11-25T09:26:01.590+0000 [ conn21] serverStatus 非常慢:{ 在 basic 之后:0,在 asserts 之后:0,在 backgroundFlushing 之后:0,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info:0 之后,在 globalLock:0 之后,在 indexCounters 之后:0,在锁之后:0,在网络之后:0,在opcounters之后:0,在opcountersRepl之后:0,在oplog之后:10451,在recordStats之后:10451,在repl之后:10451,在结束时:10451} 2014-11-25T09:26 :01.590+0000 [conn21] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] 刷新 mmaps 花费 15022ms 处理 115 个文件 2014- 11-25T09:26:47.501+0000 [conn5] serverStatus 非常慢:{ 在 basic 之后:0,在断言之后:0,在 backgroundFlushing 之后:0,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info 之后:0,在 globalLock 之后:0,在 indexCounters 之后:0,在锁之后:0,在网络之后:0,在 opcounters 之后:0,在 opcountersRepl 之后:0,在 oplog 之后:4791,在 recordStats 之后:4791,在 repl 之后:4791,在结束: 4791 } 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09: 26:47.501+0000 [conn5] serverStatus 非常慢:{ 在 basic 之后:0,在断言之后:0,在 backgroundFlushing 之后:0,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info 之后:0,之后globalLock:0,indexCounters 之后:0,锁之后:0,网络之后:0,opcounters 之后:0,opcountersRepl 之后:0,oplog 之后:4791,recordStats 之后:4791,repl 之后:4791,结束时:4791 } 2014 -11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11 -25T09:27:06.350+0000 [repl writer worker 6]1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09: 26:47.501+0000 [conn5] serverStatus 非常慢:{ 在 basic 之后:0,在断言之后:0,在 backgroundFlushing 之后:0,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info 之后:0,之后globalLock:0,indexCounters 之后:0,锁之后:0,网络之后:0,opcounters 之后:0,opcountersRepl 之后:0,oplog 之后:4791,recordStats 之后:4791,repl 之后:4791,结束时:4791 } 2014 -11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11 -25T09:27:06.350+0000 [repl writer worker 6]0 锁(微) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09:26:47.501+0000 [conn5] serverStatus 非常slow: { 在 basic: 0 之后,在 asserts: 0 之后,在 backgroundFlushing: 0 之后,在连接之后:0,在游标之后:0,在 dur: 0 之后,在 extra_info: 0 之后,在 globalLock: 0 之后,在 indexCounters: 0 之后,在锁之后:0,在网络之后:0,在opcounters之后:0,在opcountersRepl之后:0,在oplog之后:4791,在recordStats之后:4791,在repl之后:4791,在结束:4791}2014-11-25T09:26:47.501 + 0000 [ conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer工人 6]0 锁(微) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09:26:47.501+0000 [conn5] serverStatus 非常slow: { 在 basic: 0 之后,在 asserts: 0 之后,在 backgroundFlushing: 0 之后,在连接之后:0,在游标之后:0,在 dur: 0 之后,在 extra_info: 0 之后,在 globalLock: 0 之后,在 indexCounters: 0 之后,在锁之后:0,在网络之后:0,在opcounters之后:0,在opcountersRepl之后:0,在oplog之后:4791,在recordStats之后:4791,在repl之后:4791,在结束:4791}2014-11-25T09:26:47.501 + 0000 [ conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer工人 6]155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09:26:47.501+0000 [conn5] serverStatus 非常慢:{ 在 basic 之后:0,在断言之后:0,在 backgroundFlushing 之后:0,在连接之后: 0,游标之后:0,dur:0之后,extra_info之后:0,globalLock之后:0,indexCounters之后:0,锁之后:0,网络之后:0,opcounters之后:0,opcountersRepl之后:0,oplog之后:4791,recordStats 之后:4791,repl 之后:4791,结束:4791 } 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates :0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]155+0000 [DataFileSync] 刷新 mmaps 为 115 个文件花费了 15022ms 2014-11-25T09:26:47.501+0000 [conn5] serverStatus 非常慢:{ 在 basic 之后:0,在断言之后:0,在 backgroundFlushing 之后:0,在连接之后: 0,游标之后:0,dur:0之后,extra_info之后:0,globalLock之后:0,indexCounters之后:0,锁之后:0,网络之后:0,opcounters之后:0,opcountersRepl之后:0,oplog之后:4791,recordStats 之后:4791,repl 之后:4791,结束:4791 } 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates :0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]在断言之后:0,在 backgroundFlushing:0 之后,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info:0 之后,在 globalLock:0 之后,在 indexCounters:0 之后,在锁之后:0,在网络之后:0, opcounters 之后:0,opcountersRepl 之后:0,oplog 之后:4791,recordStats 之后:4791,repl 之后:4791,最后:4791} 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]在断言之后:0,在 backgroundFlushing:0 之后,在连接之后:0,在游标之后:0,在 dur:0 之后,在 extra_info:0 之后,在 globalLock:0 之后,在 indexCounters:0 之后,在锁之后:0,在网络之后:0, opcounters 之后:0,opcountersRepl 之后:0,oplog 之后:4791,recordStats 之后:4791,repl 之后:4791,最后:4791} 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]回复后:4791,结束时:4791 } 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros ) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]回复后:4791,结束时:4791 } 2014-11-25T09:26:47.501+0000 [conn5] 命令 admin.$cmd 命令:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros ) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]VirtualProtect for m:/mongodb/data/MyDatabase.72 chunk 21220 failed with errno:1455 分页文件太小,无法完成此操作。(块大小为 67108864,地址为 14b90000000)在 mongo::makeChunkWritable 中,终止 2014-11-25T09:27:06.350+0000 [repl writer worker 6] MyDatabase.RC_PUR_11_456754 Fatal Assertion 16362 2014-11-25:25:T69 0000 [repl writer worker 6] 堆栈跟踪失败,SymInitialize 失败,错误 3765269347 2014-11-25T09:27:06.615+0000 [repl writer worker 6] MyDatabase.RC_PUR_11_456754 2014-11-25T09:27:06.615+0000 [repl writer工人 6]

***在 fassert() 失败后中止

mongodb virtualisation
  • 1 个回答
  • 1016 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve