On Mon, May 14, 2018 at 2:20 AM, xiangyang yu <penglaiyxy@xxxxxxxxx> wrote: > Hi cephers, > > I have met a monitor problem with capacity too large in our production > environment. > > This logical volume for monitor is 100GB, the capacity can grow to > 95GB, and then go down. Sometimes, the monitor process > > can not start ,we have to rebuild the monitor. > > Then we set a crontab task, every week we compact the monitor at a > assigned point time. The command is "ceph tell mon.xx > > compact", While the monitor is compacting(it can last for 80 seconds), > the monitor is down by lease timeout. When the > > compact task complete, the monitors vote again ,the monitor is up and active. > > In monitor message dispatch code, while one command is executing , it > must have the dispatch lock. So indeed all command > > are executing synchronously. If one command is executing for long > time, others command must wait. > > So I change the monitor tell compact command to just add a > task(compact range(0,0)) to the monitor compact thread to > > execute the compact task, so the monitor tell compact command can > execute immediately. > > PATCH: > https://github.com/penglaiyxy/ceph/commit/86bcfd2ccb349ccc05512d8df9deaf9b368524db > > > I have test the patch, no monitor down, no message block, everything work fine. > > Glad to receive any ideas! This looks okay at a glance; can you submit it as a PR? It's easier to tag in the right people and keep a comment history that way. :) -Greg -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html