我设置了一个分片集群,由于我的数据在无缝增长,我需要不断监控数据的大小并向集群中添加新的分片。
有没有一个命令可以让我随时知道每个分片服务器使用了多少大小。
例如。假设我有一个数据库,我在mongos控制台执行的show dbs命令如下所示
mongos> show dbs
company 0.375GB
config 0.046875GB
test 0.0625GB
我想知道每个分片服务器使用了多少数据。用于公司数据库。
我实现的体系结构如下
我有一个单一的数据库分片,其中每个集合都是分片的。3台分片服务器运行mongos实例1台服务器运行mongos 1台服务器运行config实例
我的整个应用层都是直接与mongos对话。
我需要知道这一点,因为我计划构建一个cron,它检查分片服务器的可用大小,如果它超过某个数量,它将向管理员发送通知,以显示一些注意事项。
提前感谢您对此帖子的回复
发布于 2012-09-18 12:40:44
在mongoDB用户组中发表帖子后,我得到了关于如何执行此操作以及可以使用哪些命令的解决方案
命令
要了解每个分片服务器中特定数据库的空间利用率,我们必须使用
db.stats()
要了解每个分片服务器中特定集合的空间利用率,我们必须使用
db.<collectionname>.stats()
现在,要在php daemon/cron中使用它,我可以使用php mongo驱动程序调用这些命令
$con= new Mongo()
$stats=$con->dbName->command(array('dbStats' => 1)); // for db.stats()
$stats=$con->dbName->command(array('collStats' => 'collection_name'));
我仍然找不到任何方法从Zend shanty mongo执行这样的命令,但我可以使用默认的PHP pecl mongo db驱动程序来实现这一点
感谢大家对这篇文章的回复
发布于 2012-09-10 17:08:33
有通用的监控解决方案(nagios、zabbix等)。它们监视您的机器的许多参数,并且可以设置为在某些情况下发送警报。你不需要重新发明轮子。
这样的通用解决方案还可以在应用服务器上的空间耗尽时发出警告(因为它的日志占用了所有空间)。您的专用mongodb cron作业将无法做到这一点。
https://stackoverflow.com/questions/12348282
复制相似问题