Saat ini saya sedang menjalankan instance mikro ec2 dan saya telah menemukan bahwa instance terkadang kehabisan memori.
Selain menggunakan ukuran instance yang lebih besar, apa lagi yang bisa dilakukan?
Saat ini saya sedang menjalankan instance mikro ec2 dan saya telah menemukan bahwa instance terkadang kehabisan memori.
Selain menggunakan ukuran instance yang lebih besar, apa lagi yang bisa dilakukan?
Jawaban:
Perbaikan untuk masalah ini adalah menambahkan swap
(yaitu paging
) ruang ke instance.
Paging bekerja dengan membuat area pada hard drive Anda dan menggunakannya untuk memori tambahan, memori ini jauh lebih lambat dari memori normal namun lebih banyak tersedia.
Untuk menambahkan ruang ekstra ini ke instance Anda, Anda mengetik:
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
Jika Anda membutuhkan lebih dari 1024 maka ubah itu menjadi sesuatu yang lebih tinggi.
Untuk mengaktifkannya secara default setelah reboot, tambahkan baris ini ke / etc / fstab:
/var/swap.1 swap swap defaults 0 0
if
berarti 'file input', of
berarti 'file output', bs
berarti 'ukuran blok' dan count
jumlah blok yang ingin Anda alokasikan ... Anda dapat membaca man
halaman perintah untuk info lebih lanjut: linux.die.net/man/1/ dd
$> free -m
Swap harus dilakukan pada disk Instance Storage (ephemeral) dan bukan perangkat EBS. Swapping akan menyebabkan banyak IO dan akan meningkatkan biaya pada EBS. EBS juga lebih lambat daripada Instance Store dan Instance Store gratis dengan jenis Instance EC2 tertentu .
Biasanya akan di-mount ke / mnt tetapi jika tidak dijalankan
sudo mount /dev/xvda2 /mnt
Untuk kemudian membuat file swap pada perangkat ini lakukan hal berikut untuk swapfile 4GB
sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=4096
Pastikan tidak ada pengguna lain yang dapat melihat file swap
sudo chown root:root /mnt/swapfile
sudo chmod 600 /mnt/swapfile
Jadikan dan Tandai sebagai swap
sudo mkswap /mnt/swapfile
sudo swapon /mnt/swapfile
Tambahkan / Pastikan yang berikut ini ada di / etc / fstab Anda
/dev/xvda2 /mnt auto defaults,nobootwait,comment=cloudconfig 0 2
/mnt/swapfile swap swap defaults 0 0
Terakhir aktifkan swap
sudo swapon -a
Setelah menerapkan langkah-langkah yang disebutkan oleh ajtrichards, Anda dapat memeriksa apakah instance amazon free tier Anda menggunakan swap menggunakan perintah ini
cat /proc/meminfo
hasil:
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
SwapFree: 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
Anda dapat menambahkan 1 GB swap ke instance Anda dengan perintah-perintah ini:
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile
Untuk mengaktifkannya secara default setelah reboot, tambahkan baris ini ke /etc/fstab
:
/swapfile swap swap defaults 0 0
/swapfile
. Tetapi Anda juga bisa memasang sistem file lain dan membuat file swap di sana, misalnya /mnt/blah/swapfile
.
Jika Anda berada di t2
contoh ( t2.micro
, t2.medium
, t2.small
), tidak ada fana atau contoh penyimpanan yang tersedia untuk Anda. Jadi, Anda hanya perlu membuat swap di EBS
mana tergantung pada kasus penggunaan Anda mungkin atau mungkin bukan ide yang baik. Kalau tidak ikuti jawaban @vid, dan buat swap Anda di penyimpanan sementara untuk menghindari membayar biaya EBS.
Info lebih lanjut: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html ada tabel yang menunjukkan berapa banyak penyimpanan fana yang Anda dapatkan untuk setiap jenis instance.
For example, if you provision a volume with 1000 IOPS, and keep this volume for 15 days in a 30 day month, then in a Region that charges $0.10 per provisioned IOPS-month, you would be charged $50 for the IOPS that you provision ($0.10 per provisioned IOPS-month * 1000 IOPS provisioned * 15 days/30). You will be charged for the IOPS provisioned on a volume even when the volume is detached from an instance.
. Yang tampaknya AWS akan membebankan biaya untuk operasi baca dan tulis.
Anda dapat membuat ruang swap menggunakan langkah-langkah berikut Di sini kami membuat swap di /home/
dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
Di sini hitungan adalah hitungan kilobyte ruang swap
mkswap /home/swapfile1
vi /etc/fstab
buat entri:
/home/swapfile1 swap swap defaults 0 0
Lari:
swapon -a
Kami dapat menambahkan ruang swap di server mana pun
buat file menggunakan perintah dd
#dd if=/dev/zero of=/swapfile bs=1M count=2048
or
#dd if=/dev/zero of=/swapfile bs=1024M count=2
bs adalah blocksize dan hitungan mengacu pada ukuran dalam MB atau GB
kita bisa menggunakan sebaliknya
Setelah pembuatan, ubah izin file:
#chmod 600 /swapfile
Kemudian buatwap file:
#mkswap /swapfile
Kemudian aktifkan file swap dengan perintah swapon:
#swapon /swapfile
Periksa dengan perintah gratis apakah swap diaktifkan atau tidak:
#free -h
#swapon -s
Menggunakan jawaban David's Instance Storage awalnya bekerja untuk saya (pada m5d.2xlarge) namun, setelah menghentikan instance EC2 dan menyalakannya kembali, saya tidak dapat ssh ke instance lagi.
Log instance melaporkan: "Anda dalam mode darurat. Setelah masuk, ketik" journalctl -xb "untuk melihat log sistem," systemctl reboot "untuk reboot," systemctl default "atau" exit "untuk boot ke mode default. Tekan Enter untuk pemeliharaan "
Saya malah mengikuti instruksi AWS di tautan ini dan semuanya bekerja dengan baik, termasuk setelah mematikan instance dan lagi.
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
sudo vi /etc/fstab
/swapfile swap swap defaults 0 0
Coba swapspace http://pqxx.org/development/swapspace/
Sebagian besar distro telah dikemas.
Pada EC2 Anda mungkin ingin mengubah "swappath" ke / mnt atau disk iop tinggi.
Anda dapat menggunakan skrip berikut untuk menambahkan swap di Amazon Linux.
https://github.com/chetankapoor/swap
Unduh skrip menggunakan wget:
wget https://raw.githubusercontent.com/chetankapoor/swap/master/swap.sh -O swap.sh
Kemudian jalankan skrip dengan format berikut:
sh swap.sh 2G
Untuk tutorial lengkap, Anda dapat mengunjungi: