Docker のフルシンプールに接続すると、dmeventd の CPU 使用量が高くなるのはなぜですか?
Issue
シンプールの現在の割り当てがボリュームグループで利用できる領域の合計に近づくと、プールを拡張する試みがそれぞれ失敗し、/var/log/messages に以下のようなメッセージが出力されます。
Thin docker--storage-docker--pool is now 99% full.
Insufficient free space:510 extents needed, but only 6 available
Failed to extend thin docker--storage-docker--pool.
シンプールの割り当てが dmeventd によって監視され、dmeventd が 10 秒ごとに lvextend コマンドをエミュレートすることでプールを拡張しようとします (dmeventd は、個別のプロセスをフォークまたは実行しません)。たとえば、以下をエミュレートします。
lvextend --use-policies docker-storage/docker-pool
lvextend のオペレーションを試行または失敗するたびに、/etc/lvm/archive ディレクトリに追加ファイルが作成されます。したがって、システム管理者がシンプールに追加領域を提供しないと、長期的には /etc/lvm/archive のファイル数が大幅に増え続けます (10 秒に 1 つのファイルが追加されると、1 日あたり 8640 ファイルになります)。/etc/lvm/archive ディレクトリに大量のファイルが作成されると、dmeventd の CPU 使用量が高くなります。
Environment
- シンプールの devicemapper を使用する Docker
- lvm2-2.02.166-1.el7 より前の lvm2
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.