今井です。 SuperMicro H8DGi-F(Opteron 6338Px2) メモリ:16GB グラフィックカード:GeForce GTX 760(4GB) に Gentoo(カーネル3.16.2) on ZFSroot で VirtualBox 4.3.14が動いている状態で BtrFS、ext4、XFSなVM環境をそれぞれ用意してありますが (VirtualBox Guest Additionsインストール済みであり、 それぞれメモリは4GB割り当て、32bit VMではPAEカーネル使用) BtrFSかつKDE4が起動している状態でやってみました。 カーネルはTumbleweed配布のもので 32bitVMでは 1952 1952 62587 real 0m33.803s user 0m2.952s sys 0m1.752s 64bitVMでは 2021 2021 68398 real 0m4.865s user 0m1.557s sys 0m1.796s ですね。 そして素のopenSUSE 13.1カーネルで BtrFSかつKDE4が起動している状態で 32bitVMでは 1970 1970 63646 real 0m29.399s user 0m4.040s sys 0m1.188s 64bitVMでは 2039 2039 69513 real 0m25.315s user 0m1.754s sys 0m1.080s でした。 (09/11/2014 11:48 PM), 1xx wrote:
皆さんの環境で time rpm -qa | wc を実行すると、何行(何パッケージ)の出力を何秒で完了するでしょうか?
私は
Operating System: Windows 7 Ultimate 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_gdr.140303-2144) Language: Japanese (Regional Setting: Japanese) System Manufacturer: Dell Inc. System Model: XPS 8300 BIOS: BIOS Date: 03/28/12 09:12:57 Ver: 04.06.04 Processor: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (8 CPUs), ~3.4GHz Memory: 16384MB RAM (その他詳細は https://dl.dropboxusercontent.com/u/86335040/DxDiag20140911.txt 参照)
というHostに VirtualBox 4.3.12 r93733 を入れ そこに RAM 1 G byte HDD 60 G byte LVM+ext4使用 のVMを作り openSUSE 13.1 を入れてテストしておりました。
下記のメールで書いたとおり、私のこの環境では30秒を超えることがあります。
(1回目)
time rpm -qa | wc 1917 1917 65019
real 1m52.677s user 0m1.641s sys 0m0.302s
(2回目)
time rpm -qa | wc 1917 1917 65019
real 0m6.990s user 0m0.977s sys 0m0.124s
(リブート後1回目)
time rpm -qa | wc 1917 1917 65019
real 0m23.426s user 0m1.898s sys 0m0.328s
そのことが原因で、パッケージのインストール・アンインストール・更新時に ZYppプラグインがタイムアウトしetckeeperが正常終了しません。 そこで以下のパッチを書いてetckeeperがrpm -qaを呼び出さないようにできるpatchを書き、 pullrequestしました。 https://github.com/joeyh/etckeeper/pull/17 https://build.opensuse.org/package/view_file/utilities/etckeeper/etckeeper-a...
ところがetckeeperの作者joeyhさんから以下のコメントをもらいました。 https://github.com/joeyh/etckeeper/pull/17#issuecomment-55059127 要は、環境が悪すぎるのではないか、ということです。
ところで昨晩VirtualBoxを4.3.16に上げたのですが、 その環境で、同じVMでrpm -qaを実行すると2秒ほどで終わりました。
あまりにも差が極端なので、今VirtualBox4.3.12に環境を戻して、 rpm -qaを実行して上記結果を得ました。
ひょっとするとメチャクチャ環境依存なのではないかという疑いが出てきました。
そこで皆さんの環境と time rpm -qa | wc の結果を教えていただきたいのです。 よろしくお願いします。
alerqueさんから https://github.com/joeyh/etckeeper/pull/17#issuecomment-55078734 というコメントをもらったけど、こっちも意味合いが取れずに困っています:-)
2014年7月30日 19:32 1xx <itsango@gmail.com>:
etckeeperについて皆さんに相談です。
upstreamにいくつかpullrequestを送付し、 そのうち小さな修正は取り込まれました。
しかし、以下の2つが大きな変更が取り込まれず pendingになっています。 仕様を大きく変更してしまうので、 おそらくupstreamには取り込まれないでしょう。
これらの変更をopenSUSE独自のpatchとして 適応するか否かの判断に迷っています。
etckeeperは割としょっちゅうソースが更新されているので パッチを当てると、後々メンテが面倒になりそうです。
1. ZYpp pluginのタイムアウトに対するパッチ
zypperやYaST 1 click installなど、ZYppが動作すると、 etckeeperはプラグインを通じて自動的に起動します。 そして更新前・更新後の/etcの状態をVCSで管理しようとします。
しかしこの動作が遅いという問題が有ります。 30秒かかってpluginがtimeoutしてしまいます。 (インストール自体は成功します。) そして、timeoutした場合、etckeeperの自動commitは成功しません。
原因は解っています。 etckeeperはVCSのログにどのパッケージを追加・削除・変更したのかを 記録します。 この記録をするために、(アン)インストーラの起動前後で 合計2回rpm -qa | sortでパッケージ一覧を取得し、 その差分を取っています。 試しに私の環境で今rpm -qaしてみると24.255秒かかりました。 これを合計2回行うので30秒を超えてしまいZYppのpluginが timeoutします。
そこで、このログにパッケージの増減リストを取るのを諦めて、 rpm -qaをさせないことをconfファイルに定義できるpatchを書きました。
また、ZYppプラグインをサブパッケージにして、 アンインストール可能にしました。 ZYppによるetckeeperの自動commitを必要としない人は プラグインだけをアンインストールできます。 (が、etckeeperの魅力が半減します。) こちらはパッチではなく、サブパッケージなのでリリースします。
2. ZYpp, YUMの2つのパッケージマネージャーに対応するパッチ
あまり知られていませんが、openSUSEは パッケージマネージャーとして、ZYppの他にYUMも使えます。 (使っている人がいるかどうかは判りませんが。) しかしetckeeperは複数のパッケージマネージャーを使う ディストリビューションを想定していません。
そこで複数のパッケージマネージャーに対応するパッチを 書いたのですが、仕様変更が大きく、 upstreamに取り込まれていません。
これらのパッチを入れた状態でリリースすべきでしょうか? それとも独自仕様は入れない方が良いでしょうか?
「1.」は機能的に不便なのでパッチを当ててもいいかなと 思うのですが、後々メンテを考えると入れてしまっていいのか どうか悩みます。 「2.」はYUMを使っている人がいるか否か判らないので、 あてないでいいかなと思っています。
皆さんのご意見を聞かせてください。
パッチを当てていない(どのディストリビューションよりも)新しい etckeeperは https://build.opensuse.org/package/show/home:Mitsutoshi:branches:utilities/e... にあります。
2014年7月13日 23:12 1xx <itsango@gmail.com>:
2014年7月13日 16:15 1xx <itsango@gmail.com>:
test仕様書: https://docs.google.com/spreadsheets/d/1kmtjqvCnqNMmuFHRLh0-xh1iBdjhxnvKoYgR...
-- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ja+owner@opensuse.org