「E4rat」の版間の差分
細 (1版 をインポートしました) |
|||
2行目: | 2行目: | ||
[[en:E4rat]] |
[[en:E4rat]] |
||
[[es:E4rat]] |
[[es:E4rat]] |
||
+ | [[it:E4rat]] |
||
[[ru:E4rat]] |
[[ru:E4rat]] |
||
[[zh-CN:E4rat]] |
[[zh-CN:E4rat]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
− | {{ |
+ | {{Related|ブートパフォーマンスの向上}} |
− | {{ |
+ | {{Related|Preload}} |
{{Related|Ureadahead}} |
{{Related|Ureadahead}} |
||
{{Related|Ext4}} |
{{Related|Ext4}} |
||
26行目: | 27行目: | ||
X を起動して、多数のプログラムを開くような、典型的なシングルユーザーセットアップで e4rat は大変効果があることが証明されています。サーバーセットアップで CLI で起動するような場合、起動時間の短縮はあまり効果があらわれないでしょう。SSD ドライブを使っている場合も利益はあまりありません、可動部がないためディスクの遅延が(ほとんど)ないためです - [[Ureadahead]] はチェックする価値があるかもしれません。 |
X を起動して、多数のプログラムを開くような、典型的なシングルユーザーセットアップで e4rat は大変効果があることが証明されています。サーバーセットアップで CLI で起動するような場合、起動時間の短縮はあまり効果があらわれないでしょう。SSD ドライブを使っている場合も利益はあまりありません、可動部がないためディスクの遅延が(ほとんど)ないためです - [[Ureadahead]] はチェックする価値があるかもしれません。 |
||
− | {{Note| |
+ | {{Note|''(ureadahead のユーザーへ)'' [http://e4rat.sourceforge.net/wiki/index.php/Main_Page#Ubuntu_and_ureadahead e4rat の公式マニュアル] には ureadahead が e4rat と衝突すると書かれています。この記述は Ubuntu では正しいですが、Arch Linux では e4rat と ureadahead を一緒に使っても問題なく動作します。ただし起動時間はあまり短縮されません。}} |
備えあれば憂いなし。パーティションに入っているデータを消失したくないのならばバックアップを取っておきましょう。 |
備えあれば憂いなし。パーティションに入っているデータを消失したくないのならばバックアップを取っておきましょう。 |
||
32行目: | 33行目: | ||
== インストール == |
== インストール == |
||
− | [[ |
+ | [[AUR]] から {{AUR|e4rat}} をインストールしてください。 |
+ | {{Note| |
||
− | {{Note|ビルドするために、最初に {{ic|staticlibs}} オプションを明示的に有効にして {{Pkg|audit}} を [[ABS|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}} を追加してください。 |
|
+ | }} |
||
== 使用方法 == |
== 使用方法 == |
||
62行目: | 64行目: | ||
=== e4rat-realloc === |
=== e4rat-realloc === |
||
+ | ''e4rat-collect'' を実行したら、root でログインして次を実行: |
||
− | 再配置を行うために init 1 に変更: |
||
+ | e4rat-realloc /var/lib/e4rat/startup.log |
||
− | sudo init 1 |
||
− | + | startup.log ファイルに記述されたファイルの数によってしばらく時間がかかります。{{ic|systemctl isolate rescue}} でレスキューモードに移行することで ([[Systemd#ターゲット表]])、''multiuser.target'' ではフリーにならない inode やブロックも再配置することができます。 |
|
+ | |||
− | root でログインして次を実行: |
||
+ | {{Note| |
||
− | e4rat-realloc /var/lib/e4rat/startup.log |
||
+ | * It may be worthwhile to repeat the reallocation step multiple times before exiting or rebooting in order to further reduce the fragmentation count. Simply re-run the command a few times to see if this is possible on the your setup. If so you'll see the count number reduced after a few runs. This is perfectly safe and shouldn't cause any issues with booting. |
||
− | startup.log ファイルに記述されたファイルの数によってしばらく時間がかかります。 |
||
+ | * SysV スタイルの [[init]] システムを使っている場合、{{ic|e4rat-realloc}} を実行する前に {{ic|sudo init 1}} を使ってランレベル 1 に切り替える必要があります。 |
||
− | {{Note|It may be worthwhile to repeat the reallocation step multiple times before exiting or rebooting in order to further reduce the fragmentation count. Simply re-run the command a few times to see if this is possible on the your setup. If so you'll see the count number reduced after a few runs. This is perfectly safe and shouldn't cause any issues with booting.}} |
||
+ | }} |
||
=== e4rat-preload === |
=== e4rat-preload === |
||
83行目: | 86行目: | ||
* /sbin/init を起動するまではファイルを100個しかプリロードしません、それからは通常のブートシーケンスと同時に残りのファイルをロードします。 |
* /sbin/init を起動するまではファイルを100個しかプリロードしません、それからは通常のブートシーケンスと同時に残りのファイルをロードします。 |
||
− | [[ |
+ | [[AUR]] の {{AUR|e4rat-preload-lite}} でインストールできます。 |
[[カーネルパラメータ]]に {{ic|1=init=/usr/sbin/e4rat-preload-lite}} を追加 (または置換) してください。 |
[[カーネルパラメータ]]に {{ic|1=init=/usr/sbin/e4rat-preload-lite}} を追加 (または置換) してください。 |
||
89行目: | 92行目: | ||
== e4rat と init システム == |
== e4rat と init システム == |
||
+ | e4rat-collect はデフォルトで実行時に {{ic|/sbin/init}} を置き換えます。{{ic|systemd}} のデフォルト環境では、このファイルは {{ic|/lib/systemd/systemd}} のシンボリックリンクになっています。他のプロセス (例: {{ic|/usr/bin/busybox}}) を PID 1 に指定する必要がある場合、{{ic|/etc/e4rat.conf}} を編集して {{ic|init}} パラメータを設定することで変更することが可能です: |
||
− | e4rat-collect defaults to replacing itself with {{ic|/sbin/init}} upon completion. If you need to specify another process with PID 1, such as '''/usr/lib/systemd/systemd''', you can change this in {{ic|/etc/e4rat.conf}} by setting the ''init'' parameter: |
||
− | init /usr/ |
+ | init /usr/bin/busybox |
+ | これによって同一のブートシーケンスで {{ic|e4rat-preload}} と {{ic|bootchart}} の両方を起動することができます。 |
||
− | This allows to launch both e4rat-preload and bootchart in the same boot sequence. |
||
== Bootchart == |
== Bootchart == |
||
104行目: | 107行目: | ||
このバージョンの [[bootchart]] は[[ディスプレイマネージャ]]が立ち上がるとすぐにログの記録を停止します。以下のように上書きすることでログを停止しないようにすることができます: |
このバージョンの [[bootchart]] は[[ディスプレイマネージャ]]が立ち上がるとすぐにログの記録を停止します。以下のように上書きすることでログを停止しないようにすることができます: |
||
− | + | ログを続行するには以下のように {{ic|/etc/bootchartd.conf}} を変更: |
|
AUTO_STOP_LOGGER="no" |
AUTO_STOP_LOGGER="no" |
||
+ | 手動で停止するには次を実行: |
||
− | To stop it manually type: |
||
# bootchartd stop |
# bootchartd stop |
||
− | + | e4rat-preload と bootchart の両方を実行するには grub の kernel 行に以下を追加: |
|
init=/sbin/bootchartd bootchart_init=/sbin/e4rat-preload |
init=/sbin/bootchartd bootchart_init=/sbin/e4rat-preload |
2015年8月12日 (水) 23:42時点における版
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-preload-lite
jlindgren によって開発されている代わりの preload バイナリが存在し、起動時間をさらに数秒ほど縮めます。
起動時間が短縮されるわけは:
- C だけを使用し外部のライブラリに依存しません、それによってリンクされる .so ファイルの数を22から3にまで減らしています。
- /sbin/init を起動するまではファイルを100個しかプリロードしません、それからは通常のブートシーケンスと同時に残りのファイルをロードします。
AUR の e4rat-preload-liteAUR でインストールできます。
カーネルパラメータに init=/usr/sbin/e4rat-preload-lite
を追加 (または置換) してください。
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
の両方を起動することができます。
Bootchart
You will see a noticeable improvement but nothing can beat a nice Bootchart. Have it run before and after e4rat installation and gawk at the difference.
bootchart 0.9-9
このバージョンの 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 と共に bootchart2 を動作させるには /sbin/bootchartd
を編集して次の行を:
init="/sbin/init"
以下のように置き換えて下さい:
init="/sbin/e4rat-preload"
This will allow you to measure your boot time with the fine informations that Bootchart2 provides.
It's easy to set up when to stop bootchart2 (on opposite to bootchat) by editing its configuration file /etc/bootchartd.conf
. Simply adjust the line
EXIT_PROC="kdm_greet xterm konsole gnome-terminal metacity mutter compiz ldm icewm-session enlightenment"
with any program you want Bootchart2 stop logging when it launches, or rather left it empty for logging to be stopped manually.
トラブルシューティング
If things do not work you may want to try the following.
startup.log が作られない
- auditd サービスを無効にする
- ヒントがないか次を確認
dmesg | grep e4rat
e4rat.conf
の verbose と loglevel を31にまで増やす
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 に減らします。