2005/03/18(金)swap領域の確保しなおし
2005/03/18 5:00
spamassassinを使っていると凄まじく重くなっていた問題。原因は物理メモリを使い切ったことなのだが、にしてもこんなに重くなるのは挙動不審だと思ったら、どうやらスワップが設定されていないらしい。
スワップ領域の確認
# free total used free shared buffers cached Mem: 124552 110944 13608 0 3608 20852 -/+ buffers/cache: 86484 38068 Swap: 0 0 0おいおいおいおい!
swapを0にしたことはないぞ。
別の方法で確認。
# cat /proc/meminfo MemTotal: 124552 kB MemFree: 13584 kB Buffers: 3636 kB Cached: 20856 kB SwapCached: 0 kB Active: 45332 kB Inactive: 4764 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 124552 kB LowFree: 13584 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 4 kB Writeback: 0 kB Mapped: 31944 kB Slab: 50476 kB Committed_AS: 115528 kB PageTables: 1096 kB VmallocTotal: 909276 kB VmallocUsed: 724 kB VmallocChunk: 908552 kB # cat /proc/swaps #やっぱり動いていない。
起動設定を確認。
# cat /etc/fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/hda1 / ext2 errors=remount-ro 0 1 /dev/hda2 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto user,noauto 0 0 /dev/cdrom /cdrom iso9660 ro,user,noauto 0 0おかしいな。やはり起動設定(fstab)には書かれているし、インストール後にswapの確認をした記憶がある。HDDを入れ替えたときになんかやっちゃったか。
# fdisk /dev/hda コマンド (m でヘルプ): p ディスク /dev/hda: ヘッド 16, セクタ 63, シリンダ 77520 ユニット = シリンダ数 of 1008 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/hda1 * 1 73504 37045858+ 83 Linux 領域 1 はシリンダ境界で終わっていません: 物理=(1023, 254, 63) (1023, 15, 63) であるべきです /dev/hda2 73504 75592 1052257+ 83 Linux 領域 2 はシリンダ境界で終わっていません: 物理=(1023, 254, 63) (1023, 15, 63) であるべきです /dev/hda3 75592 77520 971932+ 82 Linux スワップ 領域 3 はシリンダ境界で終わっていません: 物理=(1023, 254, 63) (1023, 15, 63) であるべきですビンゴ。パーティションがおかしいっつね。うちは色々な理由(ウソ)があってswap以外パーティション切らないでやっているが、hda2は切った記憶がない。サイズも中途半端だし、こいつはなんだろう。
マウント確認。どうでもいいけど、mountって打つとPC-8001を思い出す。
# mount /dev/hda1 on / type ext2 (rw,errors=remount-ro) proc on /proc type proc (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) sysfs on /sys type sysfs (rw) usbfs on /proc/bus/usb type usbfs (rw)マウントされてない。
確認のためにマウントして覗いてみる。
# mkdir /mnt/hda2 # mount -r -t ext2 /dev/hda2 /mnt/hda2 # ls -alF /mnt/hda2/ 合計 56 drwxr-xr-x 3 root root 4096 4月 19 2003 ./ drwxr-xr-x 3 root root 4096 3月 17 20:45 ../ drwxr-xr-x 2 root root 49152 4月 19 2003 lost+found/ debian:/mnt/hda2/lost+found# ls -alF 合計 52 drwxr-xr-x 2 root root 49152 4月 19 2003 ./ drwxr-xr-x 3 root root 4096 4月 19 2003 ../使われていないよう。hda2パーティション消そう。Linux上でhda3->hda2への差し替え方法が無いか調べてみたけど、なんか怖いことが書いてある情報しか出てこなかったのと今回は時間がないのでPartitionExpertで強引に切り直す。fdiskもようわからんし。
hda2消去、hda1をhda1+hda2まで拡張する。で処理時間3分強。swapがデバイスID:hda3のままなのでいったん消去して確保し直す。PartitionExpertはlinuxのデバイスIDが確認できるところがすばらしいが、変更できるとなおいいのにな。
再起動
# free total used free shared buffers cached Mem: 124552 115604 8948 0 2668 40500 -/+ buffers/cache: 72436 52116 Swap: 971924 0 971924いよし。
[参考サイト]
http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html
http://www.glasscom.com/tone/linux/SysManage/Disk.htm
http://www.a-yu.com/opt/fdisk.html
http://x68000.q-e-d.net/~68user/unix/pickup?mount