
Ubuntu日本語フォーラム

ログインしていません。
当方、Ubuntu 7.10 Gutsyを、Intel Pentium III 1.2GHz, 512MB SDRAM, 80GB IDE HDD (5400rpm)という環境で動かしています。Swap領域として、ハードディスクから約4GBを割り当てています。
OSインストール後、いろいろなソフトウェア、追加モジュール類をインストールしたため、FirefoxとGNOME端末を同時に立ち上げた時点ですでに、swap領域を仮想メモリとして使い始め、プログラムの体感的な処理速度(動作)が遅くなってしまうように感じます。
そこで、マシンの処理速度を向上すべく、以下の記事を参考に、[システム]>[システム管理]>[サービスの管理]で、当座不要と思われるサービスの起動(常駐)を解除しました。
「Linuxのメモリー・フットプリントを削減する」
http://www.ibm.com/developerworks/jp/li … emory.html
その後、free コマンドを使ってメモリの使用状況を調べると、次のようになっています。
yaskn@ubuntu:~$ free
total used free shared buffers cached
Mem: 514296 507952 6344 0 1840 332332
-/+ buffers/cache: 173780 340516
Swap: 3510192 34812 3475380上記を見る限り、まだswap領域を消費している模様です。
おそらく、システム構成上メモリの消費量をこれ以上削減するのは難しく、マシンのスペック上物理メモリを増設することもできません。
そこで、一つのアイディアとして、Windows Vistaにおける「ReadyBoost」機能と同じように、ハードディスクよりもデータの転送速度が速い(かもしれない)USB 2.0 Hi-Speedポート(理論上の転送速度480Mbps)にUSB 2.0フラッシュメモリ(1GB)を挿して、swap専用領域として確保するのはどうかと思い至りました。
もし、このような方法をすでにお試しの方、swapテクノロジーにお詳しい方がいらっしゃいましたら、このような方法が有効(可能)かどうか、有効(可能)であればパーティションをどのように設定すべきか、ご教示いただければと思います。
よろしくお願いいたします。
最後の編集者: yaskn (2007-11-28 15:46:17)
オフライン
試したことはありませんがどうぞ。
http://ubuntuforums.org/showthread.php?t=395435
オフライン
cat /proc/meminfo の結果を見せて頂けると、もう少し使用メモリを
削る方法をアドバイスできるかもしれません。
なお、LinuxのSWAPはReadyBoostとアクセスパターンが異なるため
(というかReadyBoostのようにUSBメモリの特性を生かしているわけでは
ないですし、そもそもあれはSWAPとは違うものなので)、SWAPをUSBメモリに
作っても体感速度が改善するとは限りません。
メモリを足せない現状では厳しいかもしれませんが、HDDを最新世代のもの
にする方が体感速度の改善につながる可能性が高いように思います。
USB Memory類にSWAPを作る方法で何よりイヤなのが、動作中にUSBメモリが
抜かれるとクラッシュすることです……。
オフライン
anoirさん、hitoさん、アドバイスありがとうございます :rolleyes:
anoirさんが紹介してくださった ubuntuforums.org の記事を参考に、USBフラッシュメモリをSWAP領域に設定してみました。
以下に、http://ubuntuforums.org/showthread.php?t=395435 の記述を一部改変・翻訳して示します。
1) USBフラッシュメモリをUSBポートに挿す。
2) UbuntuがUSBフラッシュメモリをUSBデバイスとして自動認識(automount)するときは(通常、パスは /media/[USBメモリのボリューム名]となる)、端末でumountコマンドを実行してデバイスをアンマウントする。コード:
sudo umount /media/[USBメモリのボリューム名]3) [システム]>[設定]>[ハードウェア情報] でUSBフラッシュメモリを探し、デバイスへのパスを確認する(ここでは /dev/sdb1 とする)。
4) USBフラッシュメモリをSWAP領域に指定する。コード:
sudo mkswap /dev/sdb1 sudo swapon -p 32767 /dev/sdb1
以上の操作を実行した上で、確認のために cat /proc/swaps コマンドを実行すると、次のような状況になっています。
root@ubuntu:~# cat /proc/swaps Filename Type Size Used Priority /dev/sda4 partition 3510192 32528 -1 /dev/sdb1 partition 500712 0 32767
ここで、sda4はOSインストール時にハードディスク上に設定したswap領域です。
USBフラッシュメモリ(sdb1)に優先権(Priority)を与えたにもかかわらず、ハードディスクが先にswap領域として使われています。
質問1: この順番を変更するには、どのようなコマンドが必要ですか?
質問2: OSを再起動すると、USBフラッシュディスクが再び自動認識され、swapとして使うためにはその都度上記1)〜4)の操作を行う必要があります。この操作を省略して、毎回起動時にUSBフラッシュメモリを自動でswapとして認識させるには、どうすればいいですか?
ところで、hitoさん曰く、
cat /proc/meminfo の結果を見せて頂けると、もう少し使用メモリを
削る方法をアドバイスできるかもしれません。
メモリの使用状況は次の通りです。
root@ubuntu:~# cat /proc/meminfo MemTotal: 514296 kB MemFree: 6364 kB Buffers: 968 kB Cached: 334084 kB SwapCached: 0 kB Active: 210916 kB Inactive: 264852 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 514296 kB LowFree: 6364 kB SwapTotal: 4010904 kB SwapFree: 3976076 kB Dirty: 152 kB Writeback: 0 kB AnonPages: 140740 kB Mapped: 66284 kB Slab: 12592 kB SReclaimable: 5376 kB SUnreclaim: 7216 kB PageTables: 1996 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 4268052 kB Committed_AS: 549100 kB VmallocTotal: 507896 kB VmallocUsed: 6304 kB VmallocChunk: 501520 kB
いかがでしょうか?
オフライン
>質問2
起動時にswapを自動認識したい場合は /etc/fstab を編集して以下を追記してください。(危険なので慎重に)
/dev/sdb1 none swap sw pri=100 0 0
デバイスをUUIDで指定したい場合は
sudo vol_id -u /dev/sdb1
で、/dev/sdb1のUUIDを確認することができます。
最後の編集者: aqn (2007-11-28 21:38:38)
オフライン
たぶんswap outした状態でswaponしたからだと思います。
起動時点からUSBメモリがswap領域として認識されていれば
問題なく扱えるはずです。
/etc/fstabで、各swapパーティションにpri=(数字)を記述することで
priorityを指定できますので、念のため行ってください。
なので、aqnさんの投稿を見てUSBメモリのswapをfstabに書いた上で、
HDD側のpriorityを下げてください。
また、現状のmeminfoを見た限りではメモリの割り当て方針でどうにか
することはできなさそうです(余裕がなさすぎて、調整しても無駄)。
オフライン
ご教示ありがとうございます。
/etc/fstab に、swap用のUSBメモリ(/dev/sdb1)を追加しました。
fstabの該当部分を抜粋して示します。
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> # 中略 # /dev/sda4 UUID=e58f9c37-8f76-4085-85c7-9bcd2ffd9fb2 none swap sw pri=x 0 0 # USB flash memory inside for SWAP # /dev/sdb1 UUID=C4C2-2295 none swap sw pri=y 0 0
ここで、優先度(priority)x,yを設定する際に、(x=1,y=100)としても、(x=100,y=1)としても、
再起動後のswapディスクの状態(cat /proc/swaps)は次のようになります。
root@ubuntu:~# cat /proc/swaps Filename Type Size Used Priority /dev/sda4 partition 3510192 34824 -1 /dev/sdb1 partition 500712 0 -2
そこでおたずねしたいのですが、
質問3: 本来ならば、fstab のpri値が大きいほど優先順位が高くなるのですか。あるいは反対ですか。
質問4: cat /proc/swaps の「Priority」は、/dev/sda4(HDD) が /dev/sdb1(USB)に優先してswap領域として使用されているという解釈で正しいですか。
質問5: もし質問4の解釈が正しいとすれば、fstabのpri値を変えても常に/dev/sda4(HDD)が優先となるのはどうしてですか。/sda/sdb1(USB)を優先させるには、どのような設定が必要ですか。
再度のご教示、よろしくお願いいたします。
最後の編集者: yaskn (2007-12-05 12:24:01)
オフライン
ごめんなさい書き損じていました。
/dev/sdb1 none swap sw,pri=100 0 0
このように設定してみてください。
オフライン