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 of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
