十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一、概述
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的寻乌网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!mongodb副本集维护主要工作:
1、查看副本集状态(集群状态、同步延迟、单个库的运行状态mongostate)
2、增删节点、停节点shutdown
mongodb副本集集群同步机制
数据复制的目的是使数据得到大的可用性,冗余,避免单点故障。
副本集中同一时刻只有一台服务器是可以写的,primary主库上写,从库同步数据
副本集主从复制也是异步同步的过程。slave从primary上获取日志,然后在自己身上完全顺序的执行日志记录的操作(该日志不记录查询操作,只记录更新操作)。被同步的日志就是local库中的oplog.rs表,这个表占空间比较大,磁盘大小5%。启动参数设置oplog.rs的大小:--oplogSize 1000,单位M。生产环境中建议设置大一些,防止无法同步情况发生。
二、查看集群状态
1.rs.status()
2.db.printSlaveReplicationInfo()
查看主从数据库延迟时间
3.mongodb监控工具- mongostat
3.1 如果发现DB突然变慢或者有其他问题,首先mongostat查看状态
mongostat -uxx -pyy -rowcount 12 300 mongostat -uxx -pyy -N 12 300 ##每300秒输出一次DB状态,共输出12次3.2 输出参数说明
inserts/s 每秒插入次数
query/s 每秒查询次数
update/s 每秒更新次数
delete/s 每秒删除次数
getmore/s 每秒执行getmore次数,查询时游标(cursor)的getmore操作,用处不大
command/s 每秒命令数,比以上插入、查找、更新、删除的综合还多,还包含了别的命令。比如批量插入,只认为一条命令,意义不大。
flushes/s 每秒执行fsync,将数据写入磁盘的次数。一般都是0,刷如磁盘时是1,可以通过两个1之间的间隔时间,判断多久刷新一次数据到磁盘。flush开销很大,如股票频繁刷新,可能有问题。
mapped/s 所有的被nmap的数据量,单位是MB
vsize 虚拟内存使用量,单位MB
res 物理内存使用量,单位MB。这个和top看到的状态一样,mapped/vsize一般不会有大变动,res会慢慢上升,如果res经常突然下降,查查是不是有别的程序狂吃内存。
faults/s 每秒访问失败数(只有linux有),数据被交换出物理内存,放入swap,如果经常不为0,就是服务器内存太小,造成频繁swap写入,此时要加大内存。
locked db % 被锁的时间百分比,尽量控制在50%以下。这个值过大(经常超过10%,可能出问题)
idx miss % 非常重要的参数,索引不命中所占百分比。正常情况下,查询都应该通过索引,也就是idx miss为0,如果太高的话就是索引太少了
qr|qw queue lengths for clients waiting (read|write)客户端过来的读写请求的长度。
ar|aw active clients(read|write)活跃的客户端过来的读写请求。即总共的读写请求。
PS:当mongdb接收太多命令,而数据库被锁住无法执行完成,就会将命令加入到队列。都为0,表示mongodb毫无压力,高并发时,队列值会升高,表示DB的处理速度不及请求速度。看下是否有开销很大的慢查询。如果查询一切正常,确实负载很大,则考虑加服务器了。
net In/Out 网络带宽压力,一般网络不会成为mongdb瓶颈。
conn 当前连接数
set 副本集集群名称
repl 当前库在集群中的状态。PRI-master,SEC-second,REC-recovering,UNK-unkown
time 时间戳
4.web控制台
mongodb自带web控制台,默认和数据服务一起开启。默认端口28017(数据端口27017基础上+1000)
状态页显示信息:
4.1 当前db的所有连接
4.2 各个数据库dbs和collection的访问统计,包括reads/writes/queries/getmores/inserts/updates/removes
4.3 写锁的状态
4.4 日志文件的最后几百行
4.5 最上面两行,mongodb状态查询的其他命令
5.获取mongodb当前正在执行的操作db.currentOp()
>db.currentOp() >{ "opid" : "shard3:466404288", "active" : false, "waitingForLock" : false, "op" : "query", "ns" : "sd.usersEmails", "query" : { }, "client_s" : "10.121.13.8:34473", "desc" : "conn" }5.1 杀死执行时间过长的命令
>db.killOp("shard3:466404288")6.MongoDB监控服务MongoDB Monitoring Service(MMS)
mongodb厂商提供的监控服务,可在网页和Andriod客户端查看
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。