318

現在、ec2 マイクロ インスタンスを実行していますが、インスタンスのメモリが不足することがあります。

より大きなインスタンス サイズを使用する以外に、他に何ができますか?

4

10 に答える 10

607

この問題の修正は、インスタンスにスペースを追加swap(つまり) することです。paging

ページングは​​、ハード ドライブに領域を作成し、それを追加のメモリとして使用することで機能します。このメモリは、通常のメモリよりもはるかに低速ですが、より多くのメモリを使用できます。

この余分なスペースをインスタンスに追加するには、次のように入力します。

sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo chmod 600 /var/swap.1
sudo /sbin/swapon /var/swap.1

1024 を超える値が必要な場合は、より高い値に変更してください。

再起動後にデフォルトで有効にするには、次の行を /etc/fstab に追加します。

/var/swap.1   swap    swap    defaults        0   0
于 2013-06-18T16:17:42.987 に答える
225

スワップは、EBS デバイスではなく、インスタンス ストレージ (エフェメラル) ディスクで実行する必要があります。スワッピングにより大量の IO が発生し、EBS のコストが増加します。また、EBS はインスタンス ストアよりも遅く、インスタンス ストアには特定のタイプの EC2 インスタンスが無料で付属しています。

通常は /mnt にマウントされますが、実行されない場合

sudo mount /dev/xvda2 /mnt

次に、このデバイスにスワップ ファイルを作成するには、4 GB のスワップ ファイルに対して次の手順を実行します。

sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=4096

他のユーザーがスワップ ファイルを表示できないようにする

sudo chown root:root /mnt/swapfile
sudo chmod 600 /mnt/swapfile

スワップとして作成してフラグを立てる

sudo mkswap /mnt/swapfile
sudo swapon /mnt/swapfile

追加/以下が /etc/fstab にあることを確認してください

/dev/xvda2      /mnt    auto    defaults,nobootwait,comment=cloudconfig 0   2
/mnt/swapfile swap swap defaults 0 0

最後にスワップを有効にする

sudo swapon -a
于 2014-03-07T10:39:17.007 に答える
43

次のコマンドを使用して、インスタンスに 1 GB のスワップを追加できます。

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile

再起動後にデフォルトで有効にするには、次の行を に追加します/etc/fstab

/swapfile swap swap defaults 0 0
于 2013-06-18T16:56:52.147 に答える
43

ajtrichards が言及した手順を適用した後、このコマンドを使用して、Amazon 無料利用枠インスタンスがスワップを使用しているかどうかを確認できます。

cat /proc/meminfo

結果:

ubuntu@ip-172-31-24-245:/$ cat /proc/meminfo
MemTotal:         604340 kB
MemFree:            8524 kB
Buffers:            3380 kB
Cached:           398316 kB
SwapCached:            0 kB
Active:           165476 kB
Inactive:         384556 kB
Active(anon):     141344 kB
Inactive(anon):     7248 kB
Active(file):      24132 kB
Inactive(file):   377308 kB
Unevictable:           0 kB
Mlocked:               0 kB

SwapTotal: 1048572 kB

スワップフリー: 1048572 kB

Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        148368 kB
Mapped:            14304 kB
Shmem:               256 kB
Slab:              26392 kB
SReclaimable:      18648 kB
SUnreclaim:         7744 kB
KernelStack:         736 kB
PageTables:         5060 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1350740 kB
Committed_AS:     623908 kB
VmallocTotal:   34359738367 kB
VmallocUsed:        7420 kB
VmallocChunk:   34359728748 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      637952 kB
DirectMap2M:           0 kB
于 2013-10-29T21:24:14.273 に答える
16

If you are on t2 instances (t2.micro, t2.medium, t2.small), there is no ephemeral or instance storage available to you. So you need to just create your swap in EBS which depending on your use case may or maynot be a good idea. Otherwise follow @David 's answer, and create your swap on the ephemeral storage to avoid paying EBS costs.

More info: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html there is a table that shows how much ephemeral storage you get for each instance type.

于 2015-02-21T11:58:48.343 に答える
1

スワップスペース http://pqxx.org/development/swapspace/を試してください

ほとんどのディストリビューションにはパッケージ化されています。

EC2 では、「swappath」を /mnt または high-iops ディスクに変更することができます。

于 2014-02-07T12:49:53.147 に答える