「/run」ディレクトリのサイズをどのように調整しますか?

「/run」ディレクトリのサイズをどのように調整しますか?

NixカスタムイメージのビルドはUbuntu 18.04.4 LTSのメッセージで失敗し続け、それを使用してビルドの実行中にそれを追跡No space left on deviceできます。watch -n -1 "df -h"犯人は最終的に /runマウントポイント(より具体的に/run/user/1000)であり、間接的にはスワップスペースでした。

以前の様子は次のとおりです。

Filesystem                   Size  Used Avail Use% Mounted on
...
tmpfs                        785M   28K  785M   1% /run/user/1000
...

答え1

1./runマウントポイントのサイズ変更

~によると tmpfs文書tmpfs3つのサイズの取り付けオプションがあります。」どこ サイズはい

このtmpfsインスタンスに割り当てられるバイト数の制限。デフォルトは物理RAMの半分で、スワップはありません。 tmpfsインスタンスが大きすぎると、OOMハンドラがメモリを解放できないため、システムがデッドロックに陥ります。

つまり、必要なサイズに設定できますが、RAMまたはスワップスペース(またはその組み合わせ)が十分であることを確認し、必要に応じて後者を調整します(下記4.を参照)。

私の場合は初心者で15GBに設定しましたが、それだけで十分でした。

sudo mount -o remount,size=15G,noatime /run/user/1000

2.スワップスペースの調整

2.1 一時的

使用されるこのAskubuntuの答えによって:

現在の交換確認:

$ free -th
              total        used        free      shared  buff/cache   available
Mem:           7.7G        4.6G        253M        985M        2.8G        1.8G
Swap:          975M          0B        975M
Total:         8.6G        4.6G        1.2G

$ sudo swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-2                               partition       999420  3840    -2

スワップファイルを設定して開きます。

$ sudo touch /temp_swap_15G.img
$ sudo fallocate -l 15G /temp_swap_15G.img
$ sudo mkswap /temp_swap_15G.img

# `-p` is the priority; the default is -2 and anything
# higher will be used first
$ sudo swapon -p 27 /temp_swap_15G.img

検査結果:

$ sudo swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-2                               partition       999420  4352    -2
/temp_swap_15G.img                      file            15728636        0       27

2.2 永久

StackExchangeの回答(archive.orgでスナップショットを確認できます):

LVMのトラブルシューティング方法は次のとおりです。


ノート:NixOSでは、上記の手順よりもプロセスが非常に簡単です。

  1. services.logind.extraConfig プロパティの編集 /etc/nixos/configuration.nix:
  services.logind.extraConfig = ''
    RuntimeDirectorySize=12G
    HandleLidSwitchDocked=ignore
  '';
  1. 設定を再構築します(例:使用sudo nixos-rebuild switch)。

追加情報:


何ですか/run

これ 権威ある答えですが、 このQuoraの答え 要約する:

/run 非常に早く起動したシステムデーモン(例:および)は、後で起動したデーモン(たとえばApache)で使用するPIDファイルや通信ソケットエンドポイントなどの一時的なランタイムファイルを保存するという /var/run点で、「アーリーバード」と同じです。systemdudev/var/runsshd

Traditional /var/runはディスクの物理ディレクトリです。つまり、デフォルトのファイルシステムがまだマウントされていない可能性があり、 systemd他の人がコンテンツを作成する必要があることを意味します。 tmpfs(つまりRAMベース)ファイルシステムを作成すると、/run この問題はきちんと解決され、次回の起動時にクリーンアップする必要がなくなります。

もちろん、2つのランタイム一時ディレクトリを持つことは多くの人にとって多少負担になるので、多くの最新のLinuxディストリビューション /var/run では /run

何ですか tmpfs

kernel.org/doc/Documentation/filesystems/tmpfs.txt:

ハードドライブにファイルが作成されないため、tmpfsのすべては一時的です。 tmpfs インスタンスをアンマウントすると、インスタンスに保存されているすべてのコンテンツが失われます。

tmpfsはカーネルの内部キャッシュにすべてを格納し、埋め込みファイルを収容するために拡張および縮小し、不要なページをスワップ領域に置き換える機能を提供します。最大サイズ制限があり、次のように動的に調整できます。mount -o remount ...

返品、」tmpfs は完全にページキャッシュとスワッピングに存在します。」。

関連情報