@brandoncurtis Thank your for the feedback. First for the metrics, write delay metric data will be collected even without `—metrics`, the zero value is because these metrics are updated only after the write operation be resumed.
And the second, since write operation is paused due to the compaction, so `blockchain.InsertChain` operation is also sucked. Geth doesn’t exit immediately before all inflight insert operations be done.
But for these problem, the main reason is **leveldb write operation should be resumed when enough level0 files be compacted instead of waiting all compactions be finished**. I have a patch in my local and will open a PR to upstream repo asap.