Saya memulai beberapa server di EC2 dan mereka tidak memiliki swap.
Apakah saya melakukan sesuatu yang salah atau apakah mesin itu tidak memilikinya?
linux
ubuntu
amazon-ec2
swap
rafamvc
sumber
sumber
Jawaban:
Anda benar, gambar EBS Ubuntu EC2 tidak datang dengan ruang swap yang dikonfigurasi ( setidaknya untuk 11,04 ). Gambar tipe "biasa" memang memiliki partisi swap, meskipun hanya 896 MB pada yang saya uji.
Jika beberapa proses meledak dan Anda tidak memiliki ruang swap, server Anda bisa berhenti merangkak untuk sementara waktu sebelum pembunuh OOM menendang, sedangkan dengan swap, itu hanya akan lambat. Untuk alasan itu, saya selalu suka memiliki ruang swap, bahkan dengan RAM yang cukup. Ini pilihanmu:
Buat volume EBS (2-4 kali ukuran RAM Anda), pasangkan ke instance Anda (saya suka memanggilnya / dev / xvdm untuk "memory")
sudo mkswap /dev/xvdm
,, tambahkan ke fstabsudo swapon -a
,, dan Anda siap untuk menggunakannya . Saya telah melakukan ini sebelumnya dan berfungsi dengan baik, tetapi mungkin sedikit lebih lambat daripada menyimpan contoh karena berjalan melalui jaringan.Atau Anda mungkin dapat mempartisi ulang disk Anda untuk menambahkan partisi swap, meskipun ini mungkin memerlukan pembuatan AMI baru. Saya belum dapat melakukan ini dalam menjalankan contoh, karena saya tidak dapat meng-unmount sistem file root, dan saya bahkan tidak memiliki akses ke perangkat disk (/ dev / xvda), hanya partisi (xvda1).
Atau Anda dapat membuat file swap. Ini adalah solusi pilihan saya saat ini.
Selesai. :) Saya tahu banyak orang merasa jijik menggunakan file, bukan partisi, tapi itu pasti berfungsi cukup baik sebagai ruang swap darurat.
sumber
Lokasi terbaik untuk swap IMHO adalah toko contoh. Mengapa? AWS tidak membebankan biaya untuk i / o di toko contoh. Selain itu, toko contoh lebih performan daripada EBS dalam banyak kasus. Pastikan Anda memiliki skrip yang membuat ulang file swap seandainya Anda menghentikan instance. Reboot baik-baik saja. Kenapa oh mengapa tidak ada di sana secara default?
Mari kita cari toko contoh.
Hore, 160.1GB gratis! Masukkan swap Anda di sana dan lupakan kelebihan $ 100 per server ketika swap berbasis EBS Anda dipenuhi oleh kesalahan. Pengalaman malang berbicara di sini.
Tampaknya dalam beberapa kasus Anda tidak melihat toko contoh.
sumber
Catatan : Amazon telah mengubah kebijakan penetapan harga mereka , dan tidak membebankan biaya untuk permintaan I / O pada pertengahan 2016. Jawabannya disimpan di sini karena alasan historis, tetapi tidak ada implikasi biaya untuk menggunakan (atau tidak menggunakan) swap pada instance EC2 yang didukung EBS.
Ini dengan desain. Swap dimatikan secara default pada instance EC2 yang didukung EBS, untuk menghindari biaya tak terduga.
Jika Anda memiliki aplikasi yang haus akan memori yang tidak berfungsi (misalnya, dalam jumlah kecil atau kecil), ia dapat menghasilkan permintaan I / O dalam jumlah yang cukup besar pada volume EBS Anda.
Amazon mengenakan biaya $ 0,10 per 1 juta permintaan I / O (lihat http://aws.amazon.com/pricing/ebs/ ).Dalam kondisi normal Anda tidak perlu khawatir; biasanya biaya permintaan I / O bahkan pada kasus yang lebih kecil beberapa dolar, jika demikian. Jadi, jika Anda tahu Anda memiliki instance berukuran tepat dan swap itu hanya akan jarang digunakan, silakan dan aktifkan. Tapi hati-hati dengan contoh kecil.
Jika Anda mengaktifkan swap, Anda mungkin ingin mengawasi Laporan Penggunaan. Secara opsional, Anda juga dapat mengatur Pemberitahuan Tagihan dengan membuka Panel Kontrol CloudWatch dan membuat Alarm baru untuk jumlah total tagihan. Dengan cara ini, Anda akan segera diberi tahu bahwa ada sesuatu yang aneh dengan kejadian Anda.
sumber
Periksa
/etc/fstab
file, mereka mungkin sudah diatur tanpa swap di gambar yang Anda gunakan. Saya pikir beberapa orang berjalan tanpa swap untuk server karena mereka berharap tidak pernah menggunakan lebih dari total memori - bertukar membuat semuanya super lambat.Namun, saya selalu paranoid tentang beberapa proses yang membesar dalam memori, jadi saya pikir akan lebih bijaksana jika Anda hanya mengatur swap drive dan membuat ulang gambar dari instance EC2 yang berjalan.
sumber
Sebuah solusi sederhana untuk berjalan
swap
diEC2
gambar adalah untuk menjalankanswap
dikompresi denganlz4
diram
denganzram-init
.systemd
&openrc
.Solusi ini tidak mengambil
ram
darihost
:sumber
zswap
yang menyediakan cache RAM terkompresi di atas file swap / disk normal : wiki.archlinux.org/index.php/zswap . Lihat cnx-software.com/2018/05/14/… untuk lebih lanjut tentang zram.