スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

UbuntuでRamdisk tmpfs再び(on Ubuntu10.10)

以前に書いた時から大分時間も経ってしまって、手順的にビミョーになった部分もあるし、まとめなおし。
ちなみに前のは
UbuntuでもRAMdisk利用(とりあえずFireFox高速化)
続・UbuntuでもRAMDisk利用(システム一時ファイルもいってみる)

x64な環境のUbuntu10.10で実行。確か、10.04も同じだったかと。

容量が動的に変化するRAMディスクを使うには

 仮想メモリベースのファイルシステムであるtmpfsを使用すれば、必要なサイズに応じてRAMディスクの容量が動的に変化するため、メモリを効率よく使用できる。また、RAMディスクはmke2fsコマンドでファイルシステムを作成しなければならないが、tmpfsはファイルシステムそのものなのでそのままmountコマンドでマウントできる。ただし、tmpfsはカーネル2.4からサポートされた機能なので、それ以前のカーネルでは使えない点に注意が必要だ。


tmpfs専用のマウントポイントは/dev/shm
というわけで、最初から機能としては備えられている。で、デフォルトでは/dev/shmがtmpfs専用のマウントポイント。
なので、このdev/shmの容量を設定すること、さらに使い道を設定することで活用しようって寸法。

まずは以前のように、/mnt/ramdiskを作って、ここに/dev/shmをマウントし、フォルダとして扱えるようにしてFirefoxの一時ファイルなんかを置いてみるように設定。

# mkdir /mnt/ramdisk
# mount -t tmpfs -o size=2g /dev/shm /mnt/ramdisk

うちの環境では以前と変わらず、4Gのメモリを積んでて、これがUbuntuではめったに2G以上使うことはない。
というわけでここでは以前と同じく2Gを指定。
ちなみにこの -o size=2gってとこでサイズを指定してるんですが、これは「最大容量」なので、普段はOSが使う以外で空いてる分のうち、最大で2Gまでをtmpfsとして利用できることになります。
で、OSが2G以上のメモリを使ったとき、つまり2+2=4Gの搭載メモリを超えたときは、tmpfsがSWAP領域に移される模様。

で、この状態では手動でマウントしただけ、なので。
起動時に自動で読み込むように、永続化。
# gedit /etc/rc.local
exit.0の上の行にこれを貼り付け
mount -t tmpfs -o size=2g /dev/shm /mnt/ramdisk

これで起動時に常に最大2Gまでのtmpfsを確保し、それを/mnt/ramdiskにマウントしてくれる。
Firefoxの場合はURLに
about:config
browser.cache.disk.parent_directory って行を探して(なかったら作って)値に/mnt/ramdisk。
これで/mnt/ramdisk以下にcacheってフォルダができて、ここに画像ファイルとかが保存されるので、最初の読み込みはそれなり、一度開いたページの読み込みは爆速になる。
しかし。
Firefoxに限ってはFirefoxの設定のみで実は行けます。

browser.cache.disk.enableをがtrueになってたらfalseに
browser.cache.memory.enableをfalseになってたらtrueに
新規browser.cache.memory.capacity、値はKB単位で



ま、この/mnt/ramdiskはフォルダとして使えるので、キャッシュを多用するソフト、エンコとか、画像編集とかのソフトに割り当ててもいいかもしれないです。(とはいえ、すぐにそんな大量のキャッシュ使ってかつ保存先を指定できるソフトが思い当たらないんだけど。。。

で、システム一時ファイル。
これはfstabの記述で書き換える。
#
proc /proc proc nodev,noexec,nosuid 0 0
tmpfs /dev/shm tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /var/run tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0

この、頭がtmpfsになってるのが全てそう。
ちなみに/dev/shmはそのままでいいはずなんだけど、この記述なしでdfしたときにファイルシステムがnoneになってました。
どうやらこの記述がどうあれ、/dev/shmはtmpfsであることは間違いないので問題ないらしいけど、ちと気持ち悪いので書き換えただけ。
$ df
ファイルシステム 1K-ブロック 使用 使用可 使用% マウント位置
/dev/md1 51612856 6391736 42599324 14% /
none 1987840 288 1987552 1% /dev
none 2027796 456 2027340 1% /dev/shm
tmpfs 2027796 48 2027748 1% /tmp
tmpfs 2027796 216 2027580 1% /var/run
tmpfs 2027796 0 2027796 0% /var/lock
tmpfs 2027796 0 2027796 0% /var/tmp
/dev/sda1 4127076 112352 3805080 3% /boot
/dev/md0 400811248 244026660 135406100 65% /home
/dev/shm 2097152 3340 2093812 1% /mnt/ramdisk

ってなってたんだけど(これでも問題ない)一応明示的に記述してやることで
$ df
ファイルシステム 1K-ブロック 使用 使用可 使用% マウント位置
/dev/md1 51612856 6392032 42599028 14% /
none 1987840 296 1987544 1% /dev
tmpfs 2027796 3888 2023908 1% /dev/shm
tmpfs 2027796 56 2027740 1% /tmp
tmpfs 2027796 220 2027576 1% /var/run
tmpfs 2027796 0 2027796 0% /var/lock
tmpfs 2027796 1817380 210416 90% /var/tmp
/dev/sda1 4127076 112352 3805080 3% /boot
/dev/md0 400811248 244023700 135409060 65% /home
/dev/shm 2097152 914220 1182932 44% /mnt/ramdisk

と、ちゃんとtmpfsとして表示される。(実質的には変わらないけどw
/var/run や /var/lockについては/etc/default/rcS に
RAMRUN=yes
RAMLOCK=yes
とすることでも可能らしい。
しかも/var/tmp も tmpfs としてマウントしたいと思うかもしれませんが、これは、 FHS に違反するので推奨されません。
とのこと。
http://debian.fam.cx/index.php?Software%2FInit#content_1_4

どうやら再起動時に読みに行くことがあるので、電源OFFで消えてしまうRamdiskを使うのはトラブルの元になる、とのこと。
なのでまぁ、それなりの覚悟を持って行かねばならないかもしれない。

ちなみにあれ以来、ほとんどずっとこの設定は使ってるんだけど、これが原因と思われるトラブルは・・・2~3回あったかもw
なぜか起動にこける、とか。

さらにちなみに。
前回やったときはfstabの最終行に
/dev/shm /mnt/ramdisk tmpfs,size=2g 0 0
これを書き加えることで起動時に読み込むようになるっていう話だったんだけど。
これ、9.10のときだか10.04のときだかから、ビミョーに記述が変わってて、fstabに書き加えるとこの行の読み込みでエラーが出て起動にこけるようになるみたい。(少なくとも俺の環境では

ので、このtmpfsを/mnt/ramdiskにサイズ指定してマウントする、というプロセスだけは、上の方のようにrc.localに記述で対応。
Screenshot-Cache.pngこれがCacheフォルダ。
Firefox起動のたびに作られて、システムシャットダウンのたびにフォルダ毎消えてなくなります。

で、ほんとは/mnt/ramdisk以下に/tmpへのリンクとか貼ってココで一括管理しようとしたけどめんどいのでry
tmp、var/tmpは通常通りシステムファイルとして存在するんだけど、ここ、ほんとにRamdiskに当たってるのか?とちと不安になったのでちょいと実験。
約800MBの動画ファイルを/mnt/ramdiskにコピー。コピー元がフツーに/home(HDD)なので、読み出しに時間がかかって数秒。あの移動中の進行状況示すバーがでるくらいの速度。
これをさらに/mnt/ramdiskから/tmpにコピーしてみる。
すると・・・まさに一瞬!!バーは一瞬表示されただけ。ケタ違いの速度。
というわけでどうやらちゃんと動いているらしい。

で、一応体感として、なんだけど。システム一時ファイルをtmpfsに割り当てると、Nautilusの読み込みがかなり速くなる。
特に/etcとか/libといった、何百ものアイテムがあるフォルダの表示に待たされることがほとんどなくなります。
ま、代わりにちょいとリスキーではあるみたいですが。

さて、Firefoxだけじゃ芸がないので、なんか他にいい活用法を考えねば。

今開いてるタブ
Ubuntu-RAMディスクを作成してSSDへのアクセスを減らす (1)tmpfsの作成
tmpfs は本当に容量が動的なのかCommentsAdd Star
How to: Reduce Disk Writes to Prolong the Life of your Flash Drive
[Linux][ブラウザ] RAMディスクにFirefoxのキャッシュを保存し快適なFireFoxライフを送ろう!
UbuntuでRAMディスク活用 Ubuntu自体とFirefox

なんか色々やり方あってむずかしい><;

関連記事
UbuntuでもRAMdisk利用(とりあえずFireFox高速化)
続・UbuntuでもRAMDisk利用(システム一時ファイルもいってみる)
Ubuntuの高速化 ~preload入れてみた~
Ubuntuインストール後最初にやることっていうと・・・ on Ubuntu10.04
tmpfsの使い道試行錯誤
関連記事
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

コメントの投稿

管理者にだけ表示を許可する
ブログ内検索

カスタム検索

フリーエリア

クリックで救える命がある。

レンタルサーバー

さくらのマネージドサーバ
さくらインターネットのVPS
ConoHaのVPS
WebARENA VPSクラウド
99円レンタルサーバー
【CloudCore VPS】
GMOクラウドのレンタルサーバー
転送量無制限 ABLENET
@WAPPYレンタルサーバー
SPPDレンタルサーバー

カテゴリー+月別アーカイブ

 

アクセスカウンター

現在の閲覧者数:

プロフィール

Author:tmin
PCヲタ。ライト2ちゃんねら。
スロット好きのギャンブラー。(元
むしろ人生がギャンブルだが目下のところ負けっぱなし。
座右の銘は「結果オーライ」。故に基本適当。
トラブルもまた楽しみのひとつ

コメント、トラバ、相互リンク歓迎。お気軽にどうぞ。
当ブログについて
Twitterでこっちとあっちの更新情報流すことにしてみます。
http://twitter.com/t_min
Project Mikunchu♪Wikiできました。
Mikunchu200x40.png


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。