このブログはURLが変更になりました

新しいブログはこちら→ https://matsuu.hatenablog.com/

Gentooサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか

もう何番煎じですか。やりすぎですか。でもGentooですからね。

RX-7乗りの適当な日々
Linuxサーバがディスク容量不足になった!何か消さねば!ってなった時にどう対処するか
tagomorisのメモ置き場
Linuxサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか
iをgに変えるとorangeになることに気づいたoranieの日記
Cassandraサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか
Y-Ken Studio
MySQLサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか
日々の覚書
MySQLサーバーのディスク容量減少アラートが飛んでくる前に

さて、うっかりGentooでサーバを組んでしまい容量減少のアラートが飛んできたらどこを見ればいいか。答えは簡単。とりあえず次の3ヶ所を見ればok。

それぞれディレクトリの場所は変更可能なので、書き換えた人は適宜読み替えてください。

ダウンロードされたソースtarballなどは/usr/portage/distfilesに格納される

Gentooは基本的にソースをダウンロードして自前でコンパイルする仕組みになってますが、そのダウンロードされたソースは/usr/portage/distfilesに格納されます。なのでここが自然と膨らんでいくんですね。

今手元のmacbookairを確認したところ、/usr/portage/distfilesは3.8GBありました。
手元でファイルサイズの大きいファイルTOP3は以下の通り。

$ ls -hl --sort=size |head -n 3
-rw-rw-r-- 1 portage portage 226M 11月 28  2012 qt-everywhere-opensource-src-4.8.4.tar.gz
-rw-rw-r-- 1 portage portage 142M  7月 17  2012 framework-4.4.0.tar.bz2
-rw-rw-r-- 1 portage portage 142M  7月  3 12:01 chromium-28.0.1500.89-lite.tar.xz

qtはQtですね。frameworkってのはmetasploitのソースです。chromiumもガンガンコンパイルするよ!

gentooには参照されなくなったソースを削除するeclean-distってコマンドがあるので、以下の2つのコマンドを一緒に実施するのが常識です。

# eix-sync && eclean-dist

Linuxカーネルは展開されたソースが/usr/srcに設置されるため自然と太る

はい、これ忘れがち。Gentoo使いの/usr/srcのよくある風景はこんな感じ。

$ du -chs /usr/src/*
20K	/usr/src/config.gz
0	/usr/src/linux
752M	/usr/src/linux-3.6.0-gentoo
773M	/usr/src/linux-3.7.0-gentoo
548M	/usr/src/linux-3.7.1-gentoo
548M	/usr/src/linux-3.7.4-gentoo
548M	/usr/src/linux-3.7.8-gentoo
555M	/usr/src/linux-3.8.0-gentoo
789M	/usr/src/linux-3.8.2-gentoo
555M	/usr/src/linux-3.8.7-gentoo
804M	/usr/src/linux-3.9.0-gentoo
5.8G	合計

古いソースは削除しましょう。Gentoo的にはこんな感じかね。

# emerge -C '<sys-kernel/gentoo-sources-3.9.0'

コンパイルに失敗した残骸が/var/tmp/portage残ってる場合がある

Gentooでパッケージ作成のコンパイルは/var/tmp/portage/内で行われますが、コンパイルに失敗するとここに残ります。わーい残ってるからデバッグしやすいぞー!

# du -hs /var/tmp/portage
30M	/var/tmp/portage

あら、あんまり残ってなかった。最近はコンパイルに失敗してないのかも。まぁざっくり消しましょう。

# rm -rf /var/tmp/portage/*

メモリがザクザク余ってる方は、/var/tmp/portage/をtmpfsにするといいかもね。でもlibreofficeとかコンパイルすると簡単に容量不足に陥るから注意な!

ちなみにdistccやccacheのディレクトリも/var/tmp/portage/内に作られます。ここ重要ね。

ところで/usr/localは?

gentoo使いは全部パッケージシステムでコンパイルするから/usr/local/が太ってるとかありえない。

$ du -chs /usr/local/*
4.0K	/usr/local/bin
0	/usr/local/lib
4.0K	/usr/local/lib32
4.0K	/usr/local/lib64
348K	/usr/local/portage
4.0K	/usr/local/sbin
364K	合計

ほーれみたことか!
あ、/usr/local/portageには自作のちょっとしたebuildを格納してます。それぐらいだね。