首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获取mongoDB分片集群中当前使用的分片服务器的大小

如何获取mongoDB分片集群中当前使用的分片服务器的大小
EN

Stack Overflow用户
提问于 2012-09-10 16:55:52
回答 2查看 671关注 0票数 0

我设置了一个分片集群,由于我的数据在无缝增长,我需要不断监控数据的大小并向集群中添加新的分片。

有没有一个命令可以让我随时知道每个分片服务器使用了多少大小。

例如。假设我有一个数据库,我在mongos控制台执行的show dbs命令如下所示

代码语言:javascript
运行
复制
mongos> show dbs
company 0.375GB
config  0.046875GB
test    0.0625GB

我想知道每个分片服务器使用了多少数据。用于公司数据库。

我实现的体系结构如下

我有一个单一的数据库分片,其中每个集合都是分片的。3台分片服务器运行mongos实例1台服务器运行mongos 1台服务器运行config实例

我的整个应用层都是直接与mongos对话。

我需要知道这一点,因为我计划构建一个cron,它检查分片服务器的可用大小,如果它超过某个数量,它将向管理员发送通知,以显示一些注意事项。

提前感谢您对此帖子的回复

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-18 12:40:44

在mongoDB用户组中发表帖子后,我得到了关于如何执行此操作以及可以使用哪些命令的解决方案

命令

要了解每个分片服务器中特定数据库的空间利用率,我们必须使用

代码语言:javascript
运行
复制
db.stats() 

要了解每个分片服务器中特定集合的空间利用率,我们必须使用

代码语言:javascript
运行
复制
db.<collectionname>.stats()

现在,要在php daemon/cron中使用它,我可以使用php mongo驱动程序调用这些命令

代码语言:javascript
运行
复制
$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驱动程序来实现这一点

感谢大家对这篇文章的回复

票数 1
EN

Stack Overflow用户

发布于 2012-09-10 17:08:33

有通用的监控解决方案(nagios、zabbix等)。它们监视您的机器的许多参数,并且可以设置为在某些情况下发送警报。你不需要重新发明轮子。

这样的通用解决方案还可以在应用服务器上的空间耗尽时发出警告(因为它的日志占用了所有空间)。您的专用mongodb cron作业将无法做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12348282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档