我正在用MONGO3.0 wiredTiger安装程序测试我的DB。在用wiredTIger恢复数据库之后,我运行了db.serverStatus。我在控制台输出中发现了下面的内容。
"bytes currently in the cache" : 6009288998 (5.5 GB),
"maximum bytes configured" : 7516192768 (7 GB),
"bytes read into cache" : 18380155206 (17 GB),
"bytes written from cache" : 17020204785 (16 GB),你能告诉他们这个输出是什么意思吗?
我的服务器上有16 GB内存。数据库配置如下:
MongoD instance 1
Databases 4
Original Data size with 2.6.4 : DB1- 25 GB, DB2- 19 GB, DB3- 5 GB, DB4- 3 GB
With wiredTiger : DB1- 3 GB, DB2- 1.9 GB, DB3- 0.9 GB, DB4- 0.5 GB我在寻找更新的性能,但似乎性能下降了,当在DB3上使用23000更新命令运行批量更新时,我在Mongostat中看到了这一点。
insert query update delete getmore command % dirty % used flushes vsize res qr|qw ar|aw netIn netOut conn time
*0 *0 *0 *0 0 2|0 0.6 80.0 0 7.7G 7.4G 0|0 1|1 137b 15k 6 11:21:27
*0 *0 *0 *0 0 3|0 0.9 79.9 0 7.7G 7.4G 0|0 1|1 195b 15k 6 11:21:28
*0 *0 *0 *0 0 1|0 1.2 80.0 0 7.7G 7.4G 0|0 1|1 79b 15k 6 11:21:29
*0 *0 *0 *0 0 1|0 1.4 80.0 0 7.7G 7.4G 0|0 1|1 79b 15k 6 11:21:30
*0 *0 *0 *0 0 2|0 1.7 79.9 0 7.7G 7.4G 0|0 1|1 133b 15k 6 11:21:31
*0 *0 *0 *0 0 1|0 2.0 80.0 0 7.7G 7.4G 0|0 1|1 79b 15k 6 11:21:32
*0 *0 *0 *0 0 3|0 2.2 80.0 0 7.7G 7.4G 0|0 1|1 195b 15k 6 11:21:33
*0 *0 *0 *0 0 1|0 2.4 80.0 0 7.7G 7.4G 0|0 1|1 79b 15k 6 11:21:34
*0 *0 *0 *0 0 1|0 2.6 80.0 0 7.7G 7.4G 0|0 1|1 79b 15k 6 11:21:35
*0 *0 *0 *0 0 2|0 2.9 80.0 0 7.7G 7.4G 0|0 1|1 133b 15k 6 11:21:36
insert query update delete getmore command % dirty % used flushes vsize res qr|qw ar|aw netIn netOut conn time
*0 *0 *0 *0 0 1|0 3.0 80.0 0 7.7G 7.4G 0|0 1|1 79b 15k 6 11:21:37
*0 *0 *0 *0 0 3|0 3.1 80.0 0 7.7G 7.4G 0|0 1|1 195b 15k 6 11:21:38
*0 *0 *0 *0 0 1|0 3.3 80.0 0 7.7G 7.4G 0|0 1|1 79b 15k 6 11:21:39
*0 *0 *0 *0 0 1|0 3.5 80.0 0 7.7G 7.4G 0|0 1|1 79b 15k 6 11:21:40
*0 *0 *0 *0 0 2|0 3.7 80.0 0 7.7G 7.4G 0|0 1|1 133b 15k 6 11:21:41如果你看到脏%不断增加。同样,在完成更新之后,我将Db保持不变(没有读和写),但我仍然得到了显示字节的netIn和netOut。
请您检查行为,并解释它更多,因为Mongo文档部分没有显示任何细节或这些参数。
另外,我不确定用一个点做索引压缩也减少了RAM的需求。
发布于 2015-09-09 22:46:42
“缓存中当前的字节”:6009288998 (5.5GB),“最大字节”
当前wiredTiger缓存中的字节数。
配置: 7516192768 (7GB),
配置了最大大小缓存(默认情况下,服务器上的物理内存的一半)。
“读取到缓存中的字节”:18380155206 (17 GB),
自启动以来已被读取到缓存的累计字节数。
“从缓存写入的字节”:17020204785 (16 GB),
自启动以来从缓存中写入磁盘文件的累计字节数。
使用23000 update命令对DB3进行大容量更新
您运行了一个包含23K更新操作的命令,因此您看到了您应该预期的结果--您可以在mongostat输出中看到命令不断地运行,并且始终有活动的写入器。
如果您实际上想要高吞吐量,您应该使用多个线程并行发送操作,以允许使用机器上的所有核心。
看到脏%不断增加
这表明,实际上正在发生写操作--越来越多的缓存被写入(脏)。当检查点开始运行时,脏的百分比会下降,这意味着缓存中的数据正在被保存到磁盘中(当然,在原始写入时,它也已经写入了写前日志,也就是日志)。
索引的压缩是否也减少了对RAM的需求?
是的,索引是前缀压缩的,磁盘和RAM上的格式是相同的.
https://dba.stackexchange.com/questions/94340
复制相似问题