mogilefsd同步速度调优

#查看主从
mogadm settings list

 


#一点点调试
mogadm settings list
mogadm settings set internal_queue_limit 500
mogadm settings set queue_rate_for_fsck 100
mogadm settings set queue_size_for_fsck 20000


#
mogadm settings set internal_queue_limit 50000
mogadm settings set queue_rate_for_fsck 10000
mogadm settings set queue_size_for_fsck 5000000

#
mogadm settings set internal_queue_limit 100000
mogadm settings set queue_rate_for_fsck 20000
mogadm settings set queue_size_for_fsck 10000000

 


#查看速度
mogadm fsck status


#查看状态
telnet 127.0.0.1 7001
#fsck工作量
!stats
#fsck数量
!jobs
#查看信息
!watch
#设置工作数量
!want 1 fsck

internal_queue_limit 这个值是指 tracker 从数据库(fsck )队列中一次取出的 FID 的数量.如果你使用 '!stats' 的命令连接在 tracker 上查看看, 你会见到象 work_queue_for_fsck 0 之类的这样的各种变量.如果你运行了很多个用来做 fsck 的 worker , 但这个统计非常低或为 0, 需要增加 internal_queue_limit 将会让它执行更快. 但不要设置的过高..大约几千可能是个合适的值.我建议是设置 2000-7000 之间.目前我是设置 5000, 这是一个缓慢的内部设置的增加,所以要有耐心点调.您要调整这个值保持不断的提供给队列任务又不能太多.所以直到出现 work_queue_for_fsck 后面一直有数,但又不高为止.

queue_size_for_fsck 这是给在 tracker 数据库的队列中一次取多少 FID 发送给 worker .太高,这会浪费你更多的磁盘空间,但是,如果队列是时常为零, 增加二倍 or 三倍的值来帮助你从队列中提前取得需求的内容.

queue_rate_for_fsck 注入到循环的每一个队列中的 FID 的数量(every other second-ish),如果队列是在 limit 之下.设置过高的变量,可能会导致太多DB负载,但过低的trackers 不能从队列中提前获得. 可在一次队列可能完成的总的 FID 的数量高达 queue_size_for_fsck + queue_rate_for_fsck.



 * FSCK code has new tunables to control how aggressive it runs:
          queue_size_for_fsck (how many fids to keep in file_to_queue table)
          queue_rate_for_fsck (how many fids to put into the table per second)
          the generic internal queue is now tunable:
          internal_queue_limit (how many fids to pull out of a queue table at
              once. old default was 500).
          All are tunable by 'mogadm settings set'
          (dormando)

posted @ 2018-03-16 11:08  IT菜鸟园  阅读(180)  评论(0编辑  收藏  举报