- ベストアンサー
Debianの/lib/init/rwについて
- Debianのインストール時にマウントされる/lib/init/rwと/dev/shmについて調査
- 両者はtempfsファイルシステムで、容量はメモリの半分を指定
- マウントしなくても動作可能だが、処理スピードに影響がある可能性あり
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
/dev以下のディレクトリを覗いてみますと、/shm以外にも、/disk, /bus等のようなディレクトリも存在します。 これらも、同じように、任意のデバイスの表現です。 たぐっていくと、/diskの中には、/by-id, /by-label等、ハードウェア実個体の指定方法別のフォルダが有ったりします。 ちなみに、これを書いている環境(OpenSuSE12.1_x86_64@KDE4)では、/shmの中に、pulseaudioの一時ファイルが置かれています。
その他の回答 (4)
- A1200hd40
- ベストアンサー率51% (336/647)
>/dev/shmがデバイスファイルではなく、普通のディレクトリみたいです。これがいまいちどうなっているかわかりません。 引用URL:日経Linux Linuxキーワード:デバイス・ファイルとは http://itpro.nikkeibp.co.jp/article/Keyword/20070420/269052/ /dev以下に配置されるモノは、ファイルとして表現されたデバイスです。 (Linuxに限らず、Posix系のお約束です。) 詳しくは、引用元をご覧ください。
- A1200hd40
- ベストアンサー率51% (336/647)
>/lib/init/rw 無視はできませんか? >/dev/shm 前回の引用URLの「MARUのてくめも」のエントリを良く御覧頂くと、お気付き頂けるとは思いますが、引用したものより1つ前のエントリで、自動でマウントしない設定について言及されています。 で、今回、こういう情報を見付けました。 引用URL:labunix の ラボゆにっくす http://d.hatena.ne.jp/labunix/20120115 これによれば、取り得る最小値は、カーネルのドキュメント内部に、そのものズバリの値が記述されている様です。 これは、ご利用のカーネルバージョンによって、記述に齟齬が出てはいけないので、引用URLの方法を参照して、そちらでご確認ください。 ついでに、本当にメモリが足りないのか、検証してみてはいかがでしょう。 引用URL:K.Kodama's page Linux のメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止) http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html >mount -t tmpfs -o size=256m /dev/shm /mnt/ramdisk これは、デバイス/dev/shm を生かし、/ramdiskを定義して、/mntにマウントしているのでしょう。 あとで/mnt/ramdiskをunmountすることで、中身をそっくり消してしまえますので。 >mount -t tmpfs -o size=256m tmpfs /mnt/ramdisk tmpfsは、ファイルシステムであって、デバイスでは無いので、エラーが出そうですが。
補足
>mount -t tmpfs -o size=256m tmpfs /mnt/ramdisk >tmpfsは、ファイルシステムであって、デバイスでは無いので、エラ>が出そうですが。 エラーはでませんでした。 確認済みです。 /dev/shmがデバイスファイルではなく、普通のディレクトリみたいです。これがいまいちどうなっているかわかりません。
- A1200hd40
- ベストアンサー率51% (336/647)
>(daemonがSysV系の場合) 初期化における共通事項のようですので、関係なく言えることかと。 その上、unmountした事例が探しても見当たりません。 (.ramfsの4kbしか使っていないので、無視されているのかも知れません) それと、こちらにはこういう記述がされています。 引用URL:cyberciti.biz・該当部分 http://www.cyberciti.biz/tips/what-is-devshm-and-its-practical-usage.html >/dev/shm is nothing but implementation of traditional shared memory concept. /dev/shm は、旧来の共有メモリ概念の実装に他ならない。 >It is an efficient means of passing data between programs. それは、プログラム間におけるデータ受け渡しの効率的な手段の一つである。 合わせてこちらもご覧ください。 引用URL:MARUのてくめも http://marutechmemo.blog56.fc2.com/blog-entry-22.html 調べて見たところ、双方とも、置いたままにしていても、パフォーマンスに影響するものでは有りませんし、後者は、取っ払ってもシステム全体としてのパフォーマンス低下やエラーをもたらすだけだと思われます。 おまけ:引用URL:揮発性のメモ http://d.hatena.ne.jp/iww/20111018/shm こちらでは、実装仕様に憤慨して、毒を吐かれてます。
補足
何度も申し訳ありません。 知識不足で理解できませんでした。 確かに/lib/init/rwと/dev/shmは置いていたほうがいいかもしれません。 しかし、今回どうしてもメモリを使われると困る現状です。 なるべくアンマウントしたいと思っています。 どうしてもアンマウントできない場合は、現在の最大容量がメモリの半分になっているため、できるだけ抑えたいと思っています。 あふれた場合は、swapに落ちると書いてありましたが、現在swapもない状態です。 /lib/init/rwがこれだけあればクラッシュしないだろうという見積りと根拠を教えて頂けないでしょうか? あと、 # mount -t tmpfs -o size=256m /dev/shm /mnt/ramdisk (1) # mount -t tmpfs -o size=256m tmpfs /mnt/ramdisk (2) の違いがわかるでしょうか? (1)はマウントポイントを変えているだけですか?
- A1200hd40
- ベストアンサー率51% (336/647)
知っているワケでは有りませんが、調べられる範囲内で調べてみました。 双方、ramdiskのようなものと考えれば宜しいかと。 (1)については、起動の際に使われるモノの様子ですが、起動後に居座ってしまうのはバグでは無いかと言う話があります。 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=405189 遣り取りの中で、各種daemonが使うような話も出ていますが、これは、/lib/init/rwが、systemdに関連するゆえでしょう。 http://wiki.debian.org/systemd ただ、これは今後、daemonの扱いが他のディストリビューションと同じように標準化され、/runに変更されて行くため、解決を見た事になった様子です。(バグレポート最後参照) (2)については、揮発しても構わない内容のキャッシュを置く等で、アプリケーションのレスポンスを良く出来たりもできるようです。 (2)の使い方に、SSDの延命策として、書き込み回数を減らすために使う事を考えた方も居られた様子です。 https://forums.ubuntulinux.jp/viewtopic.php?id=2196 >マウントしなくても正常に動作するのでしょうか? 利用するパッケージ/サービスによっては、その存在を要求される場合も考えられますので、推奨出来ません。 >処理のスピードが遅くなるのでしょうか? 使い方しだいで、逆の効果を期待できるかも知れません。 最初に提示した、バグレポートの遣り取りのMessage #20のなかで、回答者が、 tmpfs is one of the more memory-friendly filesystems in Linux, it wastes almost nothing. tmpfs は、Linuxにおいては、殆ど何も無駄にしない、よりメモリーフレンドリーなファイルシステムの一つだ。 と、しています。 よほどキツい環境以外は、あまり気にする必要は無いのでは?
補足
回答有り難うございます。 まとめますと (1)は起動してさえしてしまえば、使われることがないので、アンマウントしても問題がない。(daemonがSysV系の場合) (2)はアプリケーションで使われるものがない場合はアンマウントしても問題がない。 ということでしょうか? もし(2)がマウントされていない場合にアプリケーションが/dev/shmを使用しようとした場合にどうなるかご存知でしょうか? すいませんがよろしくお願いします><
補足
/dev以下にあるものはデバイスファイルだけでなく、実際にはリンクファイル、ディレクトリなども含まれています。 その中で、/dev/shmは以下のようになっています。 drwxrwxrwt. 2 root root 220 4月 27 09:06 shm ファイル識別子がdになっています。 やっぱりディレクトリではないですか?