06/12/25 22:12:05 nVFvgO3v
ノートPCを使ってるのでHDDが遅くてportageが遅い。
/usr/portageは小さいファイルが沢山あるからシークが沢山発生してる。
そこでUSBメモリにportageを置いたら速くなるんじゃないかと思って試してみた。
公称27MB/sの1GBのUSBメモリをUSB 2.0に(ハブを1つ経由して)繋いだ。
ファイルシステムはext2にdir_indexオプションを付けたもの。
emerge --metadataに10分ぐらいかかってたのが2分以下でできるようになった。
emerge -pe systemはそんなに速くならなくて、straceで調べると/var/cache/edbとか/var/db/pkgに多くアクセスしているらしい。
そこでその2つもUSBメモリに入れてみる。
公称22MB/sの512MBのUSBメモリを/usr/portageを入れたやつと同じハブに繋いだ。
パーティションを2つに分けてそれぞれをext2にdir_indexを付けてフォーマットしてファイルをコピー。
結果、/usr/portageをUSBメモリに入れた状態でemerge -pe systemに40秒ぐらいかかってたのが10秒以下になった。
その他のメモ:
mkfs.ext2でデフォルト状態でフォーマットするとinodeの数が足りない(15万ぐらいファイルがある)。-Nを付けてinodeの数を指定してやる。
ブロックサイズを4096にすると600MBぐらい消費する。多くのファイルは1024バイト以下なのでブロックサイズを1024にすると300MB程度になった。
その場合速度はやや落ちる。emerge --metadataが1分40秒ぐらいだったのが1分45秒ぐらいになる程度。
reiserfsでやったらもっと速くなるんだろうか。