web-dev-qa-db-ja.com

Ubuntu Server 12.04でLXCコンテナーのapt-getが非常に遅い

この「問題」が単にLXCまたはzfsの制限なのか、この問題がUbuntu固有のものなのか、問題の原因を見つけるのにあまり運がありませんでした。

問題は非常に単純ですapt-getは、コンテナ内で実行すると非常に遅くなります。

apt-getパッケージリストの読み取り時に約30秒間ハングします(実行後apt-get update 例えば)

Reading package lists... 99%

また、新しいソフトウェアをインストールするときにハングします。たとえば、straceをインストールすると、次のようにハングします。

Setting up strace (4.5.20-2.3ubuntu1) ...

Zfsバッキングストアでlxcのデイリービルドを使用しています。

4
badsyntax

OPのソリューションが質問から削除されました:

さらに掘り下げて、同僚の助けを借りて解決策を見つけました。

まず、straceを使用して、どこにぶら下がっていたかを見つけました。

strace apt-get update

そして、それがぶら下がっていることに気づいた

msync(0x7f02a57b1000, 37879664, MS_SYNC ...

調査では、これはディスクI/Oに関連していることが示唆されました。

そこで、iostatをインストールして実行しました。

Sudo apt-get install sysstat
Sudo iostat -x 1

ディスク使用率は約90%でした。これにより、ディスクI/Oのボトルネックが確認されました。

私の同僚は、ZFSの同期ファイル同期をオフに切り替えることを提案しました。

zfs set sync=disabled pool/fs

これで問題が解決しました!

これがバグなのか機能なのかはまだ議論の余地があるため、この問題については数日間未回答のままにします。

2
Zanna