EC2'de birkaç sunucu başlattım ve takasları yok.
Yanlış bir şey mi yapıyorum yoksa makinelerde hiç yok mu?
EC2'de birkaç sunucu başlattım ve takasları yok.
Yanlış bir şey mi yapıyorum yoksa makinelerde hiç yok mu?
Yanıtlar:
Haklısın, Ubuntu EC2 EBS görüntüleri değiştirilebilir alanlarla birlikte gelmiyor ( en azından 11.04 için). "Normal" örnek tipi görüntüler, test ettiğimde yalnızca 896 MB olsa da bir takas bölmesine sahiptir.
Bazı işlemler patlarsa ve takas alanınız yoksa, sunucunuz OOM katili devreye girmeden önce bir süre daha sürünen bir durma noktasına gelebilir, oysa takas ile sadece yavaşlar. Bu sebeple, her zaman yeterli RAM ile bile olsa, takas alanım olmasını seviyorum. İşte seçenekleriniz:
Bir EBS birimi oluşturun (RAM'inizin 2-4 katı), örneğinize ekleyin ("bellek" için / dev / xvdm'yi çağırmayı seviyorum), sudo mkswap /dev/xvdm
fstab'a ekleyin sudo swapon -a
ve gitmeniz iyi olur . Bunu daha önce yaptım ve iyi çalışıyor, ancak örnek mağazadan biraz daha yavaştır çünkü ağ üzerinden geçmektedir.
Veya takas bölümü eklemek için diskinizi yeniden bölümlendirebilirsiniz, ancak bu yeni bir AMI oluşturmayı gerektirebilir. Bunu çalışan bir örnekte yapamadım, çünkü kök dosya sistemini çıkaramıyorum ve disk aygıtına (/ dev / xvda), sadece bölüme (xvda1) bile erişemiyorum.
Veya bir takas dosyası oluşturabilirsiniz. Bu şu anda tercih ettiğim çözüm.
sudo dd if=/dev/zero of=/var/swapfile bs=1M count=2048 &&
sudo chmod 600 /var/swapfile &&
sudo mkswap /var/swapfile &&
echo /var/swapfile none swap defaults 0 0 | sudo tee -a /etc/fstab &&
sudo swapon -a
Bitti. :) Bir çok kişinin bölümleri yerine dosyaları kullanmak konusunda çok üzüldüğünü biliyorum, ancak bu kesinlikle acil durum takas alanı olarak yeterince iyi çalışıyor.
IMHO takas için en iyi konum örnek deposudur. Neden? AWS, örnek mağazasındaki g / ç için sizden ücret almaz. Ayrıca, örnek mağazası çoğu durumda EBS'den daha başarılı. Örneği durdurmanız durumunda takas dosyasını yeniden oluşturan bir komut dosyanız olduğundan emin olun. Yeniden başlatmalar iyi. Neden ah varsayılan olarak orada değil?
Örnek mağazasını bulalım.
root@domU-**-**-**-**-**-**:/var/log# fdisk -l
[...]
Disk /dev/xvda2: 160.1 GB, 160104972288 bytes
255 heads, 63 sectors/track, 19464 cylinders, total 312705024 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/xvda2 doesn't contain a valid partition table
Yaşasın, 160.1GB bedava! Takas alanınızı oraya koyun ve EBS tabanlı takas uygulamanız yanlışlıkla yutulduğunda, sunucu başına 100 dolar kazanmayı unutmayın. Talihsiz deneyim burada konuşuyor.
Anlaşılan bazı durumlarda örnek mağazasını görmüyorsunuz.
Örnek türüne bağlı olarak, önce blok-cihaz eşleme seçeneklerini kullanarak örnek mağaza birimlerini örneğe eklemeniz gerekir. Bunu yapmazsanız, / dev altındaki aygıtları bile göremeyebilirsiniz ( Amazon EC2'de "Örnek Depolama Birimleri" kullanımı nasıldır? )
Not : Amazon fiyat politikasını değiştirmiştir ve 2016 ortasından itibaren G / Ç talepleri için ücret talep etmemektedir. Bu sorunun cevabı tarihsel nedenlerle burada tutulur, ancak EC2 EBS destekli örneklerde takas kullanımının (kullanmanın ya da kullanmamanın) hiçbir maliyeti yoktur.
Bu, tasarım gereğidir. Öngörülemeyen maliyetlerden kaçınmak için EC2 EBS destekli durumlarda varsayılan olarak değiştirme işlemi kapatılır.
Kötü niyetli bir hafıza aç uygulamanız varsa (örneğin küçük veya küçük bir durumda), EBS biriminizde oldukça fazla miktarda G / Ç isteği oluşturabilir. Amazon, 1 milyon G / Ç isteğinde 0,10 ABD doları tutarında ücret alıyor (bkz. Http://aws.amazon.com/pricing/ebs/ ) .
Normal şartlar altında endişelenmemelisiniz; genellikle G / Ç'nin maliyeti, küçük durumlarda bile, birkaç dolar ister. Bu nedenle, uygun boyutta bir örneğiniz olduğunu ve takas işleminin yalnızca nadiren kullanılacağını biliyorsanız , devam edin ve etkinleştirin. Ancak küçük örneklere dikkat edin.
Takas özelliğini etkinleştirirseniz, Kullanım Raporlarına göz kulak olmak isteyebilirsiniz. İsteğe bağlı olarak, CloudWatch Denetim Masasına giderek ve toplam fatura tutarı için yeni bir Alarm oluşturarak bir Fatura Uyarısı ayarlayabilirsiniz . Bu şekilde derhal haberdar edileceksiniz, örneklerinizle ilgili garip bir şeyler oluyor.
/etc/fstab
Dosyayı kontrol edin, muhtemelen kullanmakta olduğunuz görüntüyü takas etmeden kuruldu. Sanırım bazı insanlar hiçbir zaman toplam bellekten daha fazlasını kullanmamalarını bekledikleri için sunucuları takas etmeden çalıştırıyor - takas işlemi her şeyi çok yavaşlatıyor.
Ancak, her zaman hafızada yapılan bazı işlemlerden ötürü paranoyaklık duyuyorum, bu yüzden bir takas sürücüsü kurmanın ve çalışan ec2 örneğinden bir görüntüyü yeniden yaratmanın sizin için mantıklı olacağını düşünüyorum.
Çalışan için basit bir çözüm swap
de EC2
görüntülere çalıştırmaktır swap
ile sıkıştırılmış lz4
içinde ram
birlikte zram-init
.
Bu çözüm yok değil almak ram
uzakta host
:
zswap
normal bir takas dosyası / diskin üzerine sıkıştırılmış RAM önbellek sağlayan kullanabilirsiniz : wiki.archlinux.org/index.php/zswap . Zram hakkında daha fazla bilgi için cnx-software.com/2018/05/14/… adresine bakın.