「E4rat」の版間の差分
(同期) |
(→インストール: ヒントを翻訳して追加) |
||
38行目: | 38行目: | ||
* ビルドするために、最初に {{ic|staticlibs}} オプションを明示的に有効にして {{Pkg|audit}} を [[ABS]] からリビルドする必要があります。デフォルトの {{Pkg|audit}} パッケージをインストールするだけではビルドエラーが発生します。 |
* ビルドするために、最初に {{ic|staticlibs}} オプションを明示的に有効にして {{Pkg|audit}} を [[ABS]] からリビルドする必要があります。デフォルトの {{Pkg|audit}} パッケージをインストールするだけではビルドエラーが発生します。 |
||
* audit を使うには audit をサポートしたカーネルが必要です。カーネルコンフィグで audit (CONFIG_AUDIT) と audit のシステムコールのサポート (CONFIG_AUDITSYSCALL) を有効にしてください。[[カーネル/コンパイル/Arch Build System]] も参照。また、カーネルパラメータに {{ic|1=audit=1}} を追加してください。 |
* audit を使うには audit をサポートしたカーネルが必要です。カーネルコンフィグで audit (CONFIG_AUDIT) と audit のシステムコールのサポート (CONFIG_AUDITSYSCALL) を有効にしてください。[[カーネル/コンパイル/Arch Build System]] も参照。また、カーネルパラメータに {{ic|1=audit=1}} を追加してください。 |
||
+ | }} |
||
+ | |||
+ | {{Tip| |
||
+ | * 2020-05-06 の時点で、 {{AUR|e4rat}} は1年以上更新されておらず(最終更新日:2019-04-01)、コンパイルされていません。 代替の {{AUR|e4rat-lite-git}} には利用可能なパッチがありますが、元の {{AUR|e4rat}} に移植または適用されていません。 詳細については、 AUR のコメントセクションと [https://wiki.archlinux.jp/index.php/E4rat#e4rat-lite e4rat-lite] セクションをご覧ください。 |
||
+ | * [https://wiki.archlinux.jp/index.php/E4rat#e4rat-lite e4rat-lite] は再構築された {{Pkg|audit}} を必要とせず、公式リポジトリのバージョンで正常に機能します。 |
||
}} |
}} |
||
2020年12月22日 (火) 18:15時点における版
e4rat は e4 'reduced access time' (ext4 ファイルシステムのみ) の略語で、Andreas Rid と Gundolf Kiefer によるプロジェクトです。e4rat range of tools は e4rat-collect, e4rat-realloc, e4rat-preload から成り立っています。
現在のバージョンは 0.2.3 です。
プロセス
古典的な bootchart を見ると、ブートプロセスの間にディスクも CPU も完全には使われていないことに気づくかもしれません。e4rat はブートプロセスでディスクと CPU をフルに使うようにして、起動時間を劇的に縮めます。3つの段階に分かれています:
- e4rat-collect - 特定時間ファイルを収集します (デフォルトは120秒ですが変更することも可能です)
- e4rat-realloc - ファイルを再配置します
- e4rat-preload - ファイルをプリロードします
利益を得る人、得ない人
X を起動して、多数のプログラムを開くような、典型的なシングルユーザーセットアップで e4rat は大変効果があることが証明されています。サーバーセットアップで CLI で起動するような場合、起動時間の短縮はあまり効果があらわれないでしょう。SSD ドライブを使っている場合も利益はあまりありません、可動部がないためディスクの遅延が(ほとんど)ないためです - Ureadahead はチェックする価値があるかもしれません。
備えあれば憂いなし。パーティションに入っているデータを消失したくないのならばバックアップを取っておきましょう。
インストール
AUR から e4ratAUR をインストールしてください。
使用方法
それでは本題に入ります:
e4rat-collect
e4rat にファイルのリストを収集させるために init=/sbin/e4rat-collect
をカーネルパラメータに追加します。例:
kernel /vmlinuz-linux root=/dev/disk/by-label/ARCH init=/sbin/e4rat-collect ro 5
これは一度だけやれば十分なので、grub のコマンドラインなどにこのコマンドを追加すれば良いでしょう。
起動時に e4rat-collect はデフォルトで120秒間システムを監視します。なので起動したら、2分の間に、X にログインして、お気に入りのブラウザやメールクライアントを開いたりしてください。それらの活動すべてが記録されます。デフォルトの120秒を変更したいときは /etc/e4rat.conf
を編集してください。手動で e4rat-collect を停止するには次を入力:
e4rat-collect -k
もしくは:
pkill e4rat-collect
ちゃんと起動して規定の時間待機したら /var/lib/e4rat/startup.log
ファイルを見て下さい。
そして忘れずにブートローダーの設定ファイルから e4rat-collect コマンドを取り除いておきましょう (grub のコマンドラインに追加した場合は必要ありません)。
e4rat-realloc
e4rat-collect を実行したら、root でログインして次を実行:
e4rat-realloc /var/lib/e4rat/startup.log
startup.log ファイルに記述されたファイルの数によってしばらく時間がかかります。systemctl isolate rescue
でレスキューモードに移行することで (Systemd#ターゲット表)、multiuser.target ではフリーにならない inode やブロックも再配置することができます。
e4rat-preload
init=/sbin/e4rat-preload
を永続的にカーネルパラメータに追加してください。
e4rat と init システム
e4rat-collect はデフォルトで実行時に /sbin/init
を置き換えます。systemd
のデフォルト環境では、このファイルは /lib/systemd/systemd
のシンボリックリンクになっています。他のプロセス (例: /usr/bin/busybox
) を PID 1 に指定する必要がある場合、/etc/e4rat.conf
を編集して init
パラメータを設定することで変更することが可能です:
init /usr/bin/busybox
これによって同一のブートシーケンスで e4rat-preload
と bootchart
の両方を起動することができます。
e4rat-lite
複数の改善がなされている e4rat の代替です。元の e4rat パッケージで発生する問題が解決するかもしれません。e4rat-lite-gitAUR パッケージでインストールできます。
e4rat-lite を使う
e4rat-lite のコマンドは e4rat と全く同じです。違うのはパスだけです:
- collect:
init=/usr/bin/e4rat-lite-collect
- realloc:
/usr/bin/e4rat-lite-realloc
- preload:
init=/usr/bin/e4rat-preload
Bootchart
Bootchart を使うことでシステムの起動グラフを生成できます。CPU やディスクの使用量を視覚的に確認することができます。必須ではありませんが、e4rat によるブートプロセスの変化を確認できます。
bootchart
このバージョンの bootchart はディスプレイマネージャが立ち上がるとすぐにログの記録を停止します。以下のように上書きすることでログを停止しないようにすることができます:
ログを続行するには以下のように /etc/bootchartd.conf
を変更:
AUTO_STOP_LOGGER="no"
手動で停止するには次を実行:
# bootchartd stop
e4rat-preload と bootchart の両方を実行するには grub の kernel 行に以下を追加:
init=/sbin/bootchartd bootchart_init=/sbin/e4rat-preload
bootchart2
e4rat と共に bootchart2AUR を動作させるには /sbin/bootchartd2
を編集して次の行を:
init="/sbin/init"
以下のように置き換えて下さい:
init="/sbin/e4rat-preload"
上記の設定で Bootchart2 による情報を使って起動時間を測定できます。
bootchart2 を停止する時間は /etc/bootchartd2.conf
ファイルを編集することで簡単に設定できます。特定のアプリケーションが起動したときに Bootchart2 のログを止めるには以下のように設定してください:
EXIT_PROC="kdm_greet xterm konsole gnome-terminal metacity mutter compiz ldm icewm-session enlightenment"
もしくは、上記の行を空にすることで手動でログを停止することもできます。
チャートを生成するには次のコマンドを実行: pybootchartgui -i
。
トラブルシューティング
startup.log が作られない
- auditd サービスを無効にする
- ヒントがないか次を確認
$ dmesg | grep e4rat
e4rat.conf
の verbose と loglevel を31にまで増やす- e4rat のかわりに e4rat-lite を使用する
e4rat が誤って ext2 ファイルシステムと認識する
rootfstype=ext4
をブートローダーのカーネルパラメータに追加してください。
/var/lib/e4rat/startup.log にアクセスできない
This suggests that you have /var
on a separate partition which is not yet mounted during boot. You need move your startup.log
to an accessible partition (/etc/e4rat/
is just fine) and adjust your /etc/e4rat.conf
to reflect this change:
startup_log_file /etc/e4rat/startup.log
うるさいブートメッセージを削除する
起動中の e4rat-preload のメッセージがうっとうしい場合は、/etc/e4rat.conf
で verbose を 1 に減らします。