设为首页 收藏本站
查看: 1007|回复: 0

[经验分享] NoSql之Mongodb日常操作命令整理

[复制链接]

尚未签到

发表于 2018-10-26 11:05:51 | 显示全部楼层 |阅读模式
  1、db.serverStatus()  看看分片性能信息
  db.serverStatus().connections;分片查看客户端连接数,mongod和mongos的连接属于长连接
  "connections" : {
  "current" : 737, --当前活动连接量。连接到server的当前活跃连接数目
  "available" : 82 --剩余空闲连接量。剩余的可用连接数目
  },
  db.serverStatus().mem  查看分片内存情况
  "mem" : {
  "bits" : 64, --64位机器
  "resident" : 18363, --占用物理内存量。
  "virtual" : 478810, --占用的虚拟内存量
  "supported" : true, --是否支持扩展内存
  "mapped" : 233311, --映射到内存的数据文件大小,很接近于你的所有数据库大小。
  "mappedWithJournal" : 466622,
  "note" : "virtual minus mapped is large. could indicate a memory leak"
  },
  2、mongod 和mongos 登录方式,注意管理数据库要用mongo客户端登录管理
  /usr/local/bin/mongo localhost:port
  /usr/local/bin/mongo 10.20.25.48:10001
  /usr/local/bin/mongo  10.20.25.48:27017/admin -uroot -p123456
  3、查看集群中,个分片平均分布情况
  sh.status()
  结果如下
  dbname.tablename
  shard key: { "_id" : "hashed" }
  chunks:
  s2      16
  s1      13
  s3      14
  too many chunks to print, use verbose if you want to force print
  4、查看分片mongo性能
  mongostat -h 10.20.25.48 --port 27017 -uroot -p123456  -n 100  20
  mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。
  mongostat命令格式,当然也可以加参数:
  在第一个例子中,mongostat将返回数据的每一秒,持续20秒。 mongostat收集数据的mongod实例上运行的本地主机接口端口27017。以下所有调用产生相同的行为:
  mongostat -rowcount 20 1
  mongostat -rowcount 20
  mongostat -N 20 1
  mongostat -N 20
  在下面的例子中,mongostat返回的数据每5分钟(300秒),只要在程序运行。 mongostat收集数据的mongod实例上运行的本地主机接口端口27017。以下两种调用产生相同的行为。
  mongostat - rowcount 0 300
  mongostat -N 0 300
  mongostat 300
  在下面的例子中,mongostat返回的数据每5分钟一个小时(12次)。mongostat收集数据的mongod实例上运行的本地主机接口端口27017。以下两种调用产生相同的行为。
  mongostat -rowcount 12 300
  mongostat -N 12 300
  在许多情况下,使用 -discover将帮助整组机器的状态,提供更完整的快照。如果Mongos的过程中,连接到一个片式集群上运行在本地机器上的端口27017,你可以使用下面的形式从群集中的所有成员返回统计:
  mongostat -discover
  以上参考文档:http://cn.docs.mongodb.org/manual/reference/mongostat/
  主要详细说明一下各列的意义(也可以参考./mongostat --help)
  insert:     一秒内的插入数
  query :     一秒内的查询数
  update:     一秒内的更新数
  delete:     一秒内的删除数
  10条简单的查询可能比一条复杂的查询速度还快, 所以数值的大小,意义并不大。
  但至少可以知道,现在是否在处理查询,是否在插入。
  如果是slave,数值前往往有一个*, 代表是replicate操作
  getmore:    查询时游标(cursor)的getmore操作
  用处不大
  www.iyunv.com
  command:    一秒内执行的命令数
  比如批量插入,只认为是一条命令。 意义不大。
  如果是slave,会显示两个值, local|replicated,通过这两个数值的比较,或许可以看出点问题。
  flushes:    一秒内flush的次数
  一般都是0,或者1,通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。
  flush开销是很大的,如果频繁的flush,可能就要找找原因了。
  mapped:
  vsize:
  res:
  这个和你用top看到的一样,mapped, vsize一般不会有大的变动, res会慢慢的上升,如果res经常突然下降,去查查是否有别的程序狂吃内存。
  faults:
  别被这个名字吓着,大压力下这个数值往往不为0。如果经常不为0,那就该加内存了。
  locked:
  MongoDB就一把读写锁,这里指的是写锁所住的时间百分比。这个数值过大(经常超过10%),那就是出状况了。
  idx miss:
  非常重要的参数, 正常情况下,所有的查询都应该通过索引,也就是idx miss为0。如果这里数值较大,是不是缺少索引。
  qr|qw: queue lengths for clients waiting (read|write)
  ar|aw: active clients (read|write)
  如果这两个数值很大,那么就是DB被堵住了,DB的处理速度不及请求速度。
  看看是否有开销很大的慢查询。如果查询一切正常,确实是负载很大,就需要加机器了。
  netIn: network traffic in - bits
  netOut: network traffic out - bits
  网络带宽压力,一般MongoDB,网络不会成为瓶颈
  conn: number of open connections
  MongoDB为每一个连接创建一个线程,线程的创建和释放也是有开销的。尽量不要让这个数值很大。
  repl: 服务器当前状态
  M   - master
  SEC - secondary
  REC - recovering
  UNK - unknown
  SLV - slave
  time: 当前时间
  如果在windows下的cmd窗口中执行mongostat命令时,可能由于窗口太窄,监控数据排列较乱而阻碍视觉的情况,大家可以把结果输出到一个txt文件中,然后去查看这个文件,办法是曲折了一些哈哈。
  E:\mongodb-win32-x86_64-2.2.1\bin\mongostat -n 2 > E:\test.txt
  打印2行结果到E盘的跟目录下的test.txt中。
  5、查看mongo  TCP连接IP 排序
  netstat -ant|awk '{print $5}' |awk -F: '{print $1}'|sort |uniq -c|sort -rn
  6、mongo简单分片备份
  /home/mongodb/bin/mongodump  -h192.168.0.15:50001  -u username  -p 123456 --authenticationDatabase admin   -d dbname -o  /home/data/dbbackup/
  7、db.status() 查看分片集群状态
  8、待续


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626699-1-1.html 上篇帖子: mongodb aggregate多个分组条件 下篇帖子: Mongodb调研
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表