Debianの/lib/init/rwについて

このQ&Aのポイント
  • Debianのインストール時にマウントされる/lib/init/rwと/dev/shmについて調査
  • 両者はtempfsファイルシステムで、容量はメモリの半分を指定
  • マウントしなくても動作可能だが、処理スピードに影響がある可能性あり
回答を見る
  • ベストアンサー

Debianの/lib/init/rwについて

Debianをインストールしてdfコマンドの実行結果を見てみると /lib/init/rw   …(1) /dev/shm    …(2)     がtempfsファイルシステムでマウントされてました。 容量はメモリの半分をそれぞれ指定されていました。 tempfsファイルシステムは動的に割り振られることはわかっています。 しかし、この2つはいったい何の目的でマウントされているのでしょうか? マウントしなくても正常に動作するのでしょうか? 処理のスピードが遅くなるのでしょうか? マウントの最大容量を減らすのであれば、それぞれどれぐらいの容量であれば十分なのでしょうか? しっている方どうか教えていただけないでしょうか(><) よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • A1200hd40
  • ベストアンサー率52% (337/648)
回答No.5

/dev以下のディレクトリを覗いてみますと、/shm以外にも、/disk, /bus等のようなディレクトリも存在します。 これらも、同じように、任意のデバイスの表現です。 たぐっていくと、/diskの中には、/by-id, /by-label等、ハードウェア実個体の指定方法別のフォルダが有ったりします。 ちなみに、これを書いている環境(OpenSuSE12.1_x86_64@KDE4)では、/shmの中に、pulseaudioの一時ファイルが置かれています。

その他の回答 (4)

  • A1200hd40
  • ベストアンサー率52% (337/648)
回答No.4

>/dev/shmがデバイスファイルではなく、普通のディレクトリみたいです。これがいまいちどうなっているかわかりません。 引用URL:日経Linux Linuxキーワード:デバイス・ファイルとは http://itpro.nikkeibp.co.jp/article/Keyword/20070420/269052/ /dev以下に配置されるモノは、ファイルとして表現されたデバイスです。 (Linuxに限らず、Posix系のお約束です。) 詳しくは、引用元をご覧ください。

Vernal412
質問者

補足

/dev以下にあるものはデバイスファイルだけでなく、実際にはリンクファイル、ディレクトリなども含まれています。 その中で、/dev/shmは以下のようになっています。 drwxrwxrwt. 2 root root 220 4月 27 09:06 shm ファイル識別子がdになっています。 やっぱりディレクトリではないですか?

  • A1200hd40
  • ベストアンサー率52% (337/648)
回答No.3

>/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は、ファイルシステムであって、デバイスでは無いので、エラーが出そうですが。

Vernal412
質問者

補足

>mount -t tmpfs -o size=256m tmpfs /mnt/ramdisk >tmpfsは、ファイルシステムであって、デバイスでは無いので、エラ>が出そうですが。 エラーはでませんでした。 確認済みです。 /dev/shmがデバイスファイルではなく、普通のディレクトリみたいです。これがいまいちどうなっているかわかりません。

  • A1200hd40
  • ベストアンサー率52% (337/648)
回答No.2

>(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 こちらでは、実装仕様に憤慨して、毒を吐かれてます。

Vernal412
質問者

補足

何度も申し訳ありません。 知識不足で理解できませんでした。 確かに/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
  • ベストアンサー率52% (337/648)
回答No.1

知っているワケでは有りませんが、調べられる範囲内で調べてみました。 双方、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においては、殆ど何も無駄にしない、よりメモリーフレンドリーなファイルシステムの一つだ。 と、しています。 よほどキツい環境以外は、あまり気にする必要は無いのでは?

Vernal412
質問者

補足

回答有り難うございます。 まとめますと (1)は起動してさえしてしまえば、使われることがないので、アンマウントしても問題がない。(daemonがSysV系の場合) (2)はアプリケーションで使われるものがない場合はアンマウントしても問題がない。 ということでしょうか? もし(2)がマウントされていない場合にアプリケーションが/dev/shmを使用しようとした場合にどうなるかご存知でしょうか? すいませんがよろしくお願いします><

関連するQ&A

  • Debian lennyでディスク容量を圧迫して困っています。

    Debian lennyでディスク容量を圧迫して困っています。 OSは Debian GNU/Linux 5.0.0 になります。 webアプリが動作しています。 logなのかわかりませんが、ここ2週間ほどで、ディスク容量が足らなくなってしまっています。(約2週間前にも同様の事例が起こり、とりあえずバックアップしてあったファイルを数GB削除し使用率を80%まで下げました。) 何が原因で容量を使ってしまっているのか、 調査方法を教えていただけると助かります。 現在の使用率は以下です。 xxxxx$ df -la Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda1 7850996 7208256 243928 97% / tmpfs 193124 0 193124 0% /lib/init/rw proc 0 0 0 - /proc sysfs 0 0 0 - /sys udev 10240 80 10160 1% /dev tmpfs 193124 0 193124 0% /dev/shm devpts 0 0 0 - /dev/pts 素人なので稚拙な質問で申し訳ありません。 よろしくお願い致します。

  • sda1下にディレクトリを作るやりがわかりません

    外付けUSB ドライブを接続しました。 サーバーの状態はdfコマンドで以下のとおりです。 Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda1 74342940 3729568 66836896 6% / tmpfs 514252 0 514252 0% /lib/init/rw udev 10240 60 10180 1% /dev tmpfs 514252 0 514252 0% /dev/shm /dev/sda1 153834852 192072 145828364 1% /media/usbdisk hda1をそっくりsda1にバックアップしておいて、後は更新ファイルだけを日々更新したいので、rsyncコマンドを使おうと思います。 その書式は rsync -a [バックアップ元][バックアップ先] なのですが [バックアップ先]に dev/sda1/backup を指定したいのに、 sda1下にbuckupというディレクトリを作るやりがわかりません。 教えてください。 また、ディレクトリが出来たとして具体的に rsync -a [dev/hda] [dev/sda1/backup] と書けば良いのでしょうか?  初歩的疑問なのは承知しているのですが、本当に困っていますので 回答よろしくお願いします。

  • dfでディレクトリの容量が見れません

    RedHat Enterpriseです。 /home 以下の容量を調べようとして、以下のコマンドを打ちました。 [melrt@dose1 /]$ df -k Filesystem    1K-ブロック  使用  使用可 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00             67862104 29859800 34555112 47%  / /dev/sda1        101086  12419   83448  13% /boot none          1037236    0  1037236  0% /dev/shm どうやらマウントされているものの容量が出ているみたいですが、どうすれば /home以下の容量を調べられるでしょうか。 初歩的な質問で申し訳ありませんが、よろしくお願いします。

  • Debian sargeインストール後パーティション追加ってできますか?

    250GのHDDにDebian sargeをインストールしました。 omeesan:~# df -h Filesystem| Size|Used|Avail|Use%|Mounted on /dev/hda1.| 2.0G|1.7G|257M.|87%.|/ tmpfs.....| 63M.|. 0.|63M..|0% .|/dev/shm インストール後に気付いたのですが HDD領域が少ないのか私が見ていないのかこのような結果です。 というのもパッケージのインストールでフォーマット段階から まったく理解していません。 パーティションを区切って新しい領域を作れば何とかなる って素人考えなのですがどうでしょうか。 どなたかウブンツな私を救って下さい。

  • /usrのパーティション変更後、whichコマンドを利用できない。

    「df -h」で「/usr」にマウントした「/dev/sda7」の使用率が83%・空き容量500MBになっていたため、新しいパーティション「/dev/sda11」を「/usr」にマウントしたいと思ってます。 「/dev/sda11」をとりあえず「/tmp/usrcp」にマウントし「/usr」ディレクトリ下のファイルをすべて「/tmp/usrcp」にコピーしました。コマンドは「#cp -r /usr /tmp/usrcp」です。root権限で作業しています。 「/usr」と「/tmp/usrcp」からデバイスファイルをアンマウントし「/usr」に「/dev/sda11」をマウントしました。 「df -h」で確認すると「/usr」に「/dev/sda7」がマウントされていた時の使用量は2.6G、「/dev/sda11」がマウントされた時の使用量は2.4Gです。 「/dev/sda11」がマウントされた場合は、「vi」「df」「ls」は利用できますが「which」を利用できません:「No such file...」。「/dev/sda7」がマウントされた場合は「which」を利用できます。 「/dev/sda11」がマウントされた場合に「ls /usr」を実行すると「/usr」以下のファイルが表示されません。 *「/dev/sda7」のアンマウントは「使用中」ですというエラーが表示されたため、「umount -l」で行いました。 長い文になりましたが、どこを改善すればwhichコマンドを正常に利用できるようになるのかご指導下さい。よろしくお願いします。

  • Solaris10 swapとは

    Solaris10を稼働させている環境です。今回検証機で再インストールすることになり、システム要件を調べていました。 するとswapを512とるようにと書いてあるのですが、実際にdf -kで見たところ、swapというファイルシステムのマウント先は3つあり、 # df -k ファイルシステム kbytes 使用済み 使用可能 容量 マウント先 /dev/dsk/c0d0s0 6399321 5519978 815350 88% / /devices 0 0 0 0% /devices ctfs 0 0 0 0% /system/contract proc 0 0 0 0% /proc mnttab 0 0 0 0% /etc/mnttab swap 1570484 872 1569612 1% /etc/svc/volatile objfs 0 0 0 0% /system/object /usr/lib/libc/libc_hwcap1.so.1 6399321 5519978 815350 88% /lib/libc.so.1 fd 0 0 0 0% /dev/fd /dev/dsk/c0d0s3 1019856 83245 875420 9% /var swap 1569692 80 1569612 1% /tmp swap 1569644 32 1569612 1% /var/run /dev/dsk/c0d0s7 5774427 5769 5710914 1% /export/home となっています。 どこを見てこの仮想メモリの数値を得ればよいのかわかりません。 どなたかご存じの方、教えてください。

  • マウントポイントの途中変更について

    CentOS release 5.6を使用しています。 マウント状態は、以下の状態です。 [root@・・・・。 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda2 17634636 4136948 12557084 25% / /dev/hda1 101086 18022 77845 19% /boot tmpfs 4090872 0 4090872 0% /dev/shm /dev/hdb1 227065876 191864 215339748 1% /home 上記の/dev/hdb1 のマウントポイントを /var に変更しようと考えています。 その場合、システムダウンせずにマウントポイントの変更はできますでしょうか? 手順なども教えて頂ければ幸いです。

  • RHELで、dfは123Gなのにduは61G、再起動しても変わらず

    "Red Hat Enterprise Linux ES release 4"を運用しています。 ディスク容量のチェック作業で、dfとduコマンドの結果が、どうも納得できない内容で困っています。 dfコマンドでの使用容量は123Gなのに対し、duコマンドでは61Gです。 dfとduの結果は、プロセスが起動したままの状態では、正しく反映されない等もある為、再起動を行いましたが、全く変わりません... <"df -h"の結果 ~ rootで実行> Filesystem サイズ 使用 残り 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 133G 123G 2.8G 98% / /dev/sda1 99M 26M 68M 28% /boot none 1.5G 0 1.5G 0% /dev/shm //192.168.xxx.xxx/bak$ 440G 121G 320G 28% /mnt/nas <"du -sh /*/"の結果 ~ rootで実行> 60M /bin/ 21M /boot/ 216K /dev/ 52M /etc/ 38M /home/ 8.0K /initrd/ 200M /lib/ 16K /lost+found/ 16K /media/ 8.0K /misc/ 26G /mnt/ 3.8M /opt/ 902M /proc/ 51M /root/ 17M /sbin/ 8.0K /selinux/ 8.0K /srv/ 0 /sys/ 72K /tftpboot/ 76K /tmp/ 2.3G /usr/ 32G /var/ 先日、運用しているアプリケーションから、「ディスク容量不足」の警告が出た為、dfの結果が正しいのではと思えるのですが、duに出ない幽霊ファイルを見付けきれません。 ひょっとしたら、ブロックサイズよりも小さいファイルが沢山あり、この様な自体になっているのかも?とも思いましたが、確証が得られません。 ("find . | wc -l"は、"610613") ファイルシステムが壊れているのかも!?とも思っています。 何か考えられる事があるでしょうか...? (残り容量が僅かで、焦っています)

  • Linuxのドライブ空き容量の件

    Linux超初心者です。 OSはCentOS6.2 1TBのHDDに「すべての領域を使用する」オプションを選んでインストール。 これで無駄なく1TBの容量を使えるんでしょうか? ググって頑張ってみたんですがハードディスクの割り当てがよくわかりません。 dfコマンドとやらを使用して下記の数値が出ました。 [root@FDREDMINE ~]# df Filesystem 1K-ブロック 使用  使用可 使用% マウント位置 /dev/mapper/vg_fdredmine-lv_root 51606140 4188492 44796208 9% / tmpfs 4027992 336 4027656 1% /dev/shm /dev/sda1 495844 35944 434300 8% /boot /dev/mapper/vg_fdredmine-lv_home 901256464 205320 855269948 1% /home /redminebackup/database の中にたくさんのファイルが入るのでここの領域をいっぱいまで使いたいのですが、これで1TBちゃんと使い切れるんでしょうか? なんか、見たところ/homeの中に入れなきゃダメみたいな感じがするんですが・・・。 Windowsしか触ったことないので戸惑っております。 よろしくお願いします。

  • HDDのmountについて。

    こんにちは。  先日、Linuxをインストールしたのですが、HDD(20GB)がmountできません。 因みに、9.1GBのDiskにOS本体が入っていて、追加で20GBのDisk(未マウント)が入っています。 dfでみるとこんな感じです。  [root@712400-lilwejzk ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 26802428 6507928 18932992 26% / /dev/hda1 101086 9176 86691 10% /boot none 387844 0 387844                         0% /dev/shm です。  fdiskなどのコマンドを使ってやってみましたがmountできませんでした。 mountする方法を教えてください。よろしくお願いします。