Linux RAM/TMP、FSの残りのスペース

Linux RAM/TMP、FSの残りのスペース

最近、私は、Parted Magic Live CDを実行するときに発生する多くの珍しい現象が、RAMベースのファイルシステムのスペース不足によって引き起こされると考えました。つまり、次のようになります。

  • フォルダの内容が消え、後で再び表示されます。
  • Mount-gtkマウントされた個々のドライブを表示しない/削除を許可する(bashmountコマンドが正常に実行されている場合)
  • Firefoxが停止した後にGUIが停止するようです。
  • ブラウザを完全に閉じるたびにブラウザがクラッシュするように、私のFirefoxセッションは再開されます。
  • 過去x分のFirefoxセッション履歴が失われました。
  • サウンド/クリップボードリダイレクトが断続的に機能しないrdesktop
  • Conky定期的な衝突

...状態データを保存するスペースがないというSpaceFMの警告にもかかわらず、まだスペースがありません。そしてこれらの問題の一部は、特定のファイルをファイルシステムから移動した後にのみ消えます。

問題は、(少なくとも)ファイルシステムの左側にある「スペース」にどのように焦点を合わせるべきかわかりません(注:、またはの出力にパーティションのエントリがありません)/。 m はい) ファイルシステム空間はシステムメモリとは無関係です。監視してきました。)起動時にサイズを大きくする方法は?dffdisk -lmountconky

助ける?

PSは、この質問が次のタグで最もよくタグ付けされたと考えました。(または...どのようなものが使用されているかを識別する方法がわかりません)タグに似ていますが、残念ながらタグがないようです。コミュニティが 1 つまたはすべてを作成したくない場合は、他の人が適切だと思う他のタグを自由に提案してください。

答え1

デフォルトでは、tmpfs RAMディスクは以下を有効にします。最高システムで使用可能なRAMの半分(標準の非PAE 32ビットカーネルは、VGAカードなどのデバイスで使用されるアドレススペースを除いて最大4 GBまでアドレスを指定できます。)

仮想マシンでParted Magic 2013 08 01を起動し、4 GBのRAMを割り当てました。 Rootfsは合計2GBで約444KBを使用するため、PMはデフォルト値のtmpfsを使用します。 1 GB の RAM のみを使用して VM を再起動すると、ルート tmpfs には 504 MB しか使用できません。カーネルは一部を使用するため、RAM全体の半分よりわずかに少なくなります。

また、/ tmpと/ runを同じサイズのtmpfsでマウントします。これらのファイルシステムは余分なスペースではなく、rootfsと実行中のプログラムと同じRAMプールを使用します(つまり、1 GBのRAMを持つシステムでは1 GBより少し少ない)。

(しかし、df/etc/mtabを削除して/proc/mountsへのシンボリックリンクに置き換えるまでは実行されません。)

覚えておくべき重要な点は、tmpfsと実行されているすべてのプログラムが同じシステムメモリを共有することです。したがって、tmpfsがいっぱいになると、プログラムの実行に使用できるRAMの量が減り、RAMを多用するプログラムを実行すると、tmpfsに使用可能なRAMの量が減ります。

あなたは両方しているようです。ディスクをログファイルでいっぱいにしています。そしてFirefox、X、rdesktopを実行しています。どちらもRAMを多用する傾向があります。 Unixシステムはrootfsがいっぱいになるとうまく反応せず、RAMが不足し始めると、Linuxカーネルのメモリ不足(OOM)操作は、いくつかのRAMを確保するためにプロセスをランダムにシャットダウンし始めます。

これらの要因のいずれかが奇妙で予測不可能な問題を引き起こす可能性があります。両者を組み合わせると問題は避けられない。

他の人が提案したように、私はこの方法でLive CD(Parted Magicなど)を使用しないことを強くお勧めします。彼らはこれのために設計されておらず、あなたがしていることはほとんど確実に問題を引き起こすでしょう。つまり、Don't Do That, Then!

代わりに、ハードドライブを再パーティション化し、小さなディストリビューションをインストールし、仮想マシンでLinuxディストリビューションを実行するか、tmpfsを/ rootとして使用せずにUSBスティックにインストールして実行するディストリビューションを見つけます。つまり、USBスティックをrootとして使用します。ファイルシステム(これはtmpfsで実行するよりもはるかに遅いです。いいえ、そのような操作については知りません)。または、USBフラッシュドライブの代わりにUSBハードドライブを使用してください。

ところで、システムのRAM容量はどのくらいで、どのバージョンのParted Magicを実行していますか?

答え2

conkyPartedは、右上隅にある小さな「ヘッドアップ」ディスプレイ(明らかに1つと呼ばれる)に使用可能なメモリを表示します。したがって、この情報を取得する方法について考える必要さえありません。すでに表示されているからです。 (使用可能なメモリのためはい残りの空きディスク領域)。

Parted Live CDが新しいものを提供します。

あるいは、ブロックやinodeが不足している可能性があります。以下を使用してこの情報を推論できますstat

# stat -f /
   File: "/"
   ID: 0        Namelen: 242    Type: aufs
Block Size: 4096     Fundamental block size: 4096
Blocks: Total: 129061   Free: 127337    Available: 127337
Inodes: Total: 129061   Free: 128101

答え3

私や他の人がコメントしたように、Parted Magicを正規分布に使用しないでください。正規分布のために設計されていないので、問題が発生するしかありません。

とにかく、実行可能な空き容量を確認するためにdfParted Magic OSのコピーを購入してテストしたくありませんでしたが、dfUbuntu Live CDを実行している仮想マシンの出力は次のとおりです。

ここに画像の説明を入力してください。

これらのほとんどはRAMにあるtmpfsスタイルのものです(とにかく実際にマウントされたパーティションではありません)。df使用量は依然として正確に報告することができます。 Parted Magicの下にアイテムが表示されない場合、/難解な名前を使用しているようです。もう一つのヒントは、作業に間違ったツールを使用していることです。

答え4

私はDebian、Ubuntu、Mint、そしておそらくFedoraのようなライブCD / DVD / USBディストリビューションで長年この問題を経験しました。 Overlayfs(現在のLive Mint / Ubuntuで使用されているfstype)とtmpfsで使用されているメモリは、freeキャッシュメモリ(および/ proc / meminfoのInactiveエントリ)と一時ディスクの読み取りキャッシュに隠されているため、メモリ量がどれくらいになるかは不明です。 「無料」です。

私はdfoverlayfsとtmpfsが使用するすべてのスペースを追加してから始めて、誤解を招くfree「空きメモリ」の横にその数を強調表示しました。すべての寸法はK単位です。

ディストリビューションのライブバージョンがそれをサポートしていない場合は、dfoverlayfs / tmpfsに関する情報をどこで見つけるべきかわかりません。 mount、/proc/mounts、および/etc/mtabは、現在のサイズとは異なり、最大サイズのみを表示したり、サイズが表示されないようですdf

最初は、overlayfs&tmpfs が使用するスペースです。

overlayfsused=$( df -t overlayfs --total |tail -n 1|tr -s [:space:]|cut -d " " -f 3 )
tmpfsused=$( df -t tmpfs --total|tail -n 1|tr -s [:space:]|cut -d " " -f 3 )
diskused=$(( overlayfsused + tmpfsused ))

ちなみに、-t of dfはfsのタイプのみを表示し(2つを1つのdfに入れることができます)、tailは最後の合計のみを提供し、trはスペースを単一のスペースに圧縮してトリミングがより簡単になるように右をカットします。サイドフィールド。

空きメモリを取得するには、free出力を解析するか(簡単にすることができます)/ proc / meminfoから読み取ることができます(試して次のように入力しました)。

free=$(grep MemFree < /proc/meminfo |tr -s [:space:]|cut -d " " -f 2)
buffers=$(grep Buffers < /proc/meminfo |tr -s [:space:]|cut -d " " -f 2)
cached=$(grep "^Cached" < /proc/meminfo |tr -s [:space:]|cut -d " " -f 2)

それからそれをすべてまとめて、conkyが1〜2分ごとに実行できる素晴らしいスクリプト出力を考えてみましょう。

realfree=$(( free + buffers + cached - diskused ))
echo "$(( realfree / 1024 )) MiB"

realfreeが100M未満の場合は、警告メッセージの表示、一時ファイルの削除、赤い警告音などを考慮することもできます。

毎日使用するためにライブディストリビューションを使用している場合、Ubuntu(および他の多くの)ライブディストリビューションのポイントは、数時間定期的に「毎日」使用するためにディストリビューションを試して、気に入っていることを確認することです。多くのオンラインバンキングやセキュリティ認識の記事では、特に安全なオンラインバンキングなどのためにライブディストリビューションを使用することをお勧めします。ライブディストリビューションが実際にメモリが足りないときに気付かないという事実は、私が見るにはバグのようです。 $ HOMEと/ tmpの両方がRAMを使用し、最大サイズが1/2のRAMであるため、大きなファイルを$ HOMEと/ tmpにコピーするとLive Mintがクラッシュする可能性があります。ちなみに、現在のMintはおそらく/(overlayfs)、/ dev(devtmpfs?は4kしか使用しないため、通常は小さいと仮定します)、/ tmp、/ run / shmで使用されるメモリの半分を持っています。

関連情報