EC2 インスタンスを起動すると、仮想メモリが有効になっていないことに気付きました。
$ free
total used free shared buffers cached
Mem: 1017260 344956 672304 60 141252 136976
-/+ buffers/cache: 66728 950532
Swap: 0 0 0
一般的な Linux インストールでは、デフォルトでスワップ パーティションが作成されます。EC2 で仮想メモリがデフォルトで有効になっていないのは何か理由があるのでしょうか? それとも、EC2 が取得しているメモリは一部物理 / 一部スワップなのでしょうか?
答え1
必要がない限り、仮想メモリを有効にする必要はないと思います。ほとんどの場合、EBS ディスクはネットワーク経由で比較的低速なので、スワップが多ければサーバーの速度が遅くなります。マシン内にインスタンス ディスク、つまり SSD があれば、かなり高速になります。
ただし、より多くのメモリが必要で、アクティブにスワップされていない場合は、仮想メモリを少し使用することで、より小さな VM でより多くのソフトウェアを実行できるようになります。私は 512 MB の RAM と 512 MB のスワップを搭載した t2.nano を実行していますが、問題なく動作しています。これにより、Nginx、PHP 5.6、MySQL、およびいくつかのユーティリティを問題なく実行できます。
インスタンスにスワップスペースを追加する方法についてのチュートリアルがありますここ。
これが私のサーバーのメモリ設定です
[ec2-user@aws ~]$ free
total used free shared buffers cached
Mem: 500984 458016 42968 118864 13164 171068
-/+ buffers/cache: 273784 227200
Swap: 524284 141252 383032