64ビット14.04を1から128GB RAMのような新しいマシンにインストールします。スワップパーティションにどのくらいの領域を割り当てる必要がありますか?
そして特に:なぜこれらの数値に対する推奨事項がありますか?
(こことここの既存の回答のいずれも、理由のいずれかを説明しておらず、1GBまたはRAM以上を見ると少し日付が付けられています)
64ビット14.04を1から128GB RAMのような新しいマシンにインストールします。スワップパーティションにどのくらいの領域を割り当てる必要がありますか?
そして特に:なぜこれらの数値に対する推奨事項がありますか?
(こことここの既存の回答のいずれも、理由のいずれかを説明しておらず、1GBまたはRAM以上を見ると少し日付が付けられています)
回答:
スワップファイルを次のように設定します。
round(sqrt(RAM))
あなたがあれば使用していない休止状態をRAM+round(sqrt(RAM))
休止状態を使用する場合swappiness
デスクトップではyour を10に設定しますが、サーバーでは設定しません!
過去25年間に使用されている経験則は、最小1xRAMと最大2xRAMであったため、これは常に引用されるものです。
私がティーンエイジャーであり、恐竜がまだ地球を歩き回っていたとき、そして RAMがあまりにも高価であり、あなたが何かを達成するためにそのスワップスペースが絶対に必要だったので、その最小値は石器時代に後退しました。
最大値はその時の戻り値の減少のために設定されました:HDDアクセスはRAMよりも1000倍遅いので、あまりにも多くのメモリをスワップするのは遅すぎます:緊急時には良いですが、日常の使用にはあまり良くありません!当時、スワップ領域が足りなくなったときは、RAMを追加する必要がありました。(これは今日でも真実です)。
休止状態を使用せず、メモリが1GByteを超える場合、新しい経験則はround(sqrt(RAM))
、RAM
明らかにRAMのサイズ(GB)とsqrt
平方根です。:-)
休止状態を使用する場合、RAMの全容量と既にスワップされたRAMをディスクにスワップできる必要があります。したがって、式は次のようになります。 RAM+round(sqrt(RAM))
収益の減少のルールは今日でも最大値を保持していますが、実際の使用状況をテストしない限り、2xRAMの使用はディスク領域の浪費に過ぎないため、他の方法を使用してスワップ領域が不足しない限り、最大値を使用しないでください。
これらはすべて、次の表を提供します:(最後の3列はスワップ領域を示します)
RAM No hibernation With Hibernation Maximum
1GB 1GB 2GB 2GB
2GB 1GB 3GB 4GB
3GB 2GB 5GB 6GB
4GB 2GB 6GB 8GB
5GB 2GB 7GB 10GB
6GB 2GB 8GB 12GB
8GB 3GB 11GB 16GB
12GB 3GB 15GB 24GB
16GB 4GB 20GB 32GB
24GB 5GB 29GB 48GB
32GB 6GB 38GB 64GB
64GB 8GB 72GB 128GB
128GB 11GB 139GB 256GB
256GB 16GB 272GB 512GB
512GB 23GB 535GB 1TB
1TB 32GB 1056GB 2TB
2TB 46GB 2094GB 4TB
4TB 64GB 4160GB 8TB
8TB 91GB 8283GB 16TB
上記は単なる経験則です。 重力の法則ではありません!特定のユースケースが異なる場合は、(重力の法則とは異なり)この規則を破る
ことができます!
プロのヒント: ヘッドはディスクの内側を移動する必要が少ないため、常にHDDの開始時にSWAPを割り当てます。
はい: SSDでは、ヘッドを動かす代わりにクォンタムトンネリングを使用し、最新のSSDはすべてのメモリセル(割り当てられていないスペースも含む)を使用して量子劣化を防ぐため、スワップ領域をどこに配置してもかまいません。
実行するだけです:
for szFile in /proc/*/status ; do
awk '/VmSwap|Name/{printf $2 "\t" $3}END{ print "" }' $szFile
done | sort --key 2 --numeric --reverse | more
スワップアウトされている実行中のすべてのプログラムのリストが表示されます(一番上のスワップスペースを使用しているもの)
数KB以上を使用している場合:最小サイズ以上にサイズ変更します。それ以外の場合は、気にしないでください...
デスクトップ/ラップトップクライアント(サーバーではない)を使用している場合は、GUIの応答性をできるだけ高くし、本当に必要な場合にのみスワップする必要があります。Ubuntuはサーバーで使用するために早めにスワップするように最適化されていますが、クライアントでは、その巨大な250メガピクセルの生の画像をgimp
高速で編集したいのでswappiness
、10に設定すると、カーネルが早すぎるスワップを防ぎますが、遅すぎるスワップ:
sysctl.conf
ファイルがある場合、
sudo nano /etc/sysctl.conf
sysctl.d
ディレクトリはあるがsysctl.conf
ファイルがない場合は、新しいファイルを作成します。
sudo nano /etc/sysctl.d/35_swap.conf
両方の場合に追加:
# change "swappiness" from default 60 to 10
# (theoretically only swap when RAM usage reaches around 80 or 90 percent)
vm.swappiness = 10
ファイルの最後まで、ファイルを保存し(nanoではCtrl+ XY+ Enter)、次を実行します。
sysctl --system
パラメータを再読み込みするか、Window $アプローチを使用して再起動します... :-)
スワップの必要性
スワップは次の3つの理由で便利です。
RAMからクラッターを削除します。kernel.org の記事から:
「プロセスの寿命の早い段階で参照されるかなりの数のページは、初期化にのみ使用され、その後再び使用されることはありません。これらのページをスワップアウトし、常駐および未使用のままにするよりも多くのディスクバッファーを作成することをお勧めします」
言い換えれば、RAMに保存されたデータは、プロセスが開始されたとき(スタートアッププロセスなど)にのみ有用であり、その後RAMに常駐し、より良い目的に使用できるスペースを乱雑にします。
プロセスが使用できるメモリ量を拡張します。これはよく理解されています。システムがメモリ不足になり、メモリ不足のためにクラッシュするのは望ましくありません。この特定の理由から、保護機能として機能するスワップが存在する必要があります。
休止状態:コンピューターが休止状態になると、RAMの内容がディスクに移動します。
スワップ量
スワップの目的を知り、マシンのRAM量に応じて、目的に合ったスワップサイズを選択できます。特定のガイドラインはなく、システムに合わせてスワップサイズを調整するために使用できる経験則のみがあります。
たとえば、linux.comは以下を推奨しています。
経験則は次のとおりです。1)デスクトップシステムの場合、2つのシステムメモリのスワップスペースを使用します。これにより、多数のアプリケーション(その多くがアイドル状態で簡単にスワップされる可能性があります)を実行できるため、アクティブなアプリケーションに使用可能なRAMが増えます。2)サーバーの場合、使用可能なスワップの量を少なくして(物理メモリの半分など)、必要に応じてスワップできる柔軟性を確保しますが、使用されるスワップスペースの量を監視し、必要に応じてRAMをアップグレードします。3)古いデスクトップマシン(たとえば128MBのみ)の場合は、1GBまでの余裕のあるスワップスペースを使用します。
個人的な経験から、私がすることは次のとおりです。
休止状態にする必要のない1〜2 GBのマシンを検討し、カジュアルな使用のために、1GBから2GBのスワップスペースを確保できます。14.04 Ubuntuを搭載したPCには1GBのRAMと2GBのスワップがあります。スワップの量が800MBの境界を越えることはありません。私は自分のPCをWebサーフィンとスクリプト作成にのみ使用しています。
2GB以上のPCで、休止状態にする必要がない場合、512MBから1GBにスワップを維持できます。15.04のラップトップがあり、これは休止状態にならず、512 MBのスワップファイル(パーティションではない)を持っています。RAM自体は6 GBですが、2〜3 GBを超えることはありません。繰り返しますが、カジュアルな使用法です。
CosmoscaliburとFabbyは、休止状態にする必要がある場合に備えて既にスワップに対応しているため、あまり詳しく説明しません。私の謙虚な意見はこれです:
休止状態を計画する場合は、RAMの内容を交換する必要があるため、少なくとも RAMと同じサイズが必要です。