我正在努力筛选一个给我们带来很多麻烦的事件的遗迹。除了向管理层报告发生的事情之外,我还试图更好地了解这种情况是如何发生的以及如何在未来避免这种情况。另外,对于长篇大论很抱歉,我只是想提供细节。
我们的 Mongo 服务器上有两个数据库。我们的服务器是:
数据库 A包含的数据或多或少是一个 LIFO 队列,数据被插入,并在一天内分批处理,最旧的首先被处理。处理完就删除了。这是两者中较大的一个,读/写活动较高的一个,约为 1.3Gb。在过去,它已达到10-13Gb。网站上的用户活动跟踪日志是必不可少的。出于所有意图和目的,它是大量的一维数组和相对较小的文档大小。
数据库 B包含用户的事务日志。数据是随机读取和写入的,但在连续的时间块中。当用户登录时,更有可能访问该特定用户的文档。它大约为 0.3Gb,并且已经增长,但只是最小的。
我们已经经历了一段时间的高磁盘 Io,但在过去的几天里,它从大约 28Mbps 跃升到 35Mbps,这是我们的极限(以 100% 注册)。发生这种情况时,我们的 CPU 稳步上升,但 RAM 保持在原来的位置,大约为 750Mb。
纵观MMS,在此期间,数据库A似乎隆隆愉快沿,但是数据库B突然开始得到了很多page_faults,accessesNotInMemory和pageFaultExceptionsThrown。我们没有得到任何b 树未命中。我们的totalOpen和clientCursor_size稳步上升,但从未达到峰值。
该storageSize数据库约为13GB,所以大约比实际数据大小大一个数量级。
我们重新启动了 mongo 服务器,这导致我们的全局 RAM 使用量从 705Mb 跳到了大约 1530Mb,并保持在那里,但 CPU 再次上升,并且 diskio 几乎直线上升。
MMS 在重启后数小时内显示出与上述相同的行为。
我们尝试在数据库 …
mongodb ×1