web-dev-qa-db-ja.com

Ubuntu 18.04:動的なスワップ領域のサイジングは実用的ですか?メモリ不足によりUbuntuがクラッシュした

メモリ不足の問題のため、Ubuntu 18.04(Bionic Beaver)のインストールがクラッシュしました。

次のようなメッセージがあります。

Jan 31 16:56:53 adam-Lenovo-YOGA-720-15IKB kernel: [47980.843963] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/,task=chrome,pid=16144,uid=1000
Jan 31 16:56:53 adam-Lenovo-YOGA-720-15IKB kernel: [47980.843992] Out of memory: Killed process 16144 (chrome) total-vm:1229048kB, anon-rss:84920kB, file-rss:0kB, shmem-rss:140kB
Jan 31 16:56:53 adam-Lenovo-YOGA-720-15IKB kernel: [47980.895646] oom_reaper: reaped process 16144 (chrome), now anon-rss:0kB, file-rss:0kB, shmem-rss:140kB
Jan 31 17:07:20 adam-Lenovo-YOGA-720-15IKB kernel: [    0.000000] microcode: microcode updated early to revision 0xca, date = 2019-10-03
Jan 31 17:07:20 adam-Lenovo-YOGA-720-15IKB kernel: [    0.000000] Linux version 5.3.0-28-generic (buildd@lcy01-AMD64-009) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #30~18.04.1-Ubuntu SMP Fri Jan 17 06:14:09 UTC 2020 (Ubuntu 5.3.0-28.30~18.04.1-generic 5.3.13)
Jan 31 17:07:20 adam-Lenovo-YOGA-720-15IKB kernel: [    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.3.0-28-generic root=UUID=e8808971-420e-45c4-96d7-2f490862bf41 ro quiet splash vt.handoff=1
Jan 31 17:07:20 adam-Lenovo-YOGA-720-15IKB kernel: [    0.000000] KERNEL supported cpus:

私は常に多くのプログラムを実行しています(複数のウィンドウとタブを備えたFirefox、 Chromium 、Chrome、 [〜#〜] gimp [〜#〜] 、Emacs、 LibreOffice 、およびVMware Player for Windows 7)。

今日、8 GBのRAM=と8 GBのスワップファイルがあります。

adam@adam-Lenovo-YOGA-720-15IKB:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.5G        3.7G        351M        692M        3.4G        2.8G
Swap:          8.0G          0B        8.0G

事前に割り当てられたサイズに制限する代わりに、Linuxで動的スワップを使用できますか?

Swappiness

adam@adam-Lenovo-YOGA-720-15IKB:~$ sysctl vm.swappiness
vm.swappiness = 10
4
London Smith

パラメーターvm.swappinessについて説明したYouTubeビデオを視聴し、次にvm.swappiness = 10を設定しました。これは、8G RAMを搭載したシステムでは完全に間違っています。そのため、「メモリ不足」になります。

Vm.swappiness = 80を設定します(8G RAMおよび8G SWAPに基づく)、このように...

Sudo -H gedit /etc/sysctl.conf#このファイルを編集

既存のvm.swappiness=エントリを検索...

CTRL+f vm.swappiness

  • 見つかった場合、編集と言いますvm.swappiness=80

  • 見つからない場合、ファイルの最後にaddvm.swappiness=80

編集を保存してgeditを終了します

Sudo sysctl -p

:実行しているアプリに基づいて、RAMを追加し、vm.swappinessを別の値に変更することによっても最善の結果が得られる場合があります。メモリインターリーブの速度の利点を得るには、同じサイズRAMスティックペアで実行します。したがって、あなたのケースでは、別の8G RAMスティックを追加します( 1つの8G RAMスティックが現在インストールされています。)2つの4Gスティックが現在インストールされている場合、2つの8G RAMスティックが必要です。

7
heynnema

Out of swapからの回答-何が起こりますか? 動的にサイズ変更するスワップ領域は危険であり、その仮説をテストする方法を提供します。

パッケージ SwapSpace がありましたが、実行される可能性がありますが、メンテナンスされていません。

代替 ​​dphys-swapfile サービス、詳細はDebianで動的に成長するスワップファイル必要に応じて動的に。

heynnemaからのソリューション は優れており、何よりも先に実装する必要があります。

5
K7AAY