Linux sistemi çok fazla boş takas alanıyla tamamen tepkisiz


2

AWS’de Windows’tan Linux örneklerine taşıdığım bir .NET (Core 2.0) hizmetim var. Örnekler 1GB RAM ile mikro.

Linux örneğine 1 Gb takas alanı ekledim ve ayrıca swappiness = 100 olarak ayarladım ancak fiziksel bellek dolduğunda sunucu donuyor. İşlem neredeyse durma noktasına kadar yavaşlar ve bash üzerinde ENTER tuşuna basmak bazen yeni satırın görünmesi için 10 saniye sürebilir.

Çalışan topboş belleği genellikle 10-20 MB olarak görüyorum. 800Mb + RAM kullanan ve takas eden işlem, 20mb maks. Oraya bir saat izin vermek bile daha fazlasını değiştirmedi.

AWS'deki Disk ve CPU kredilerinin neredeyse% 100 olduğunu görebiliyorum, bu nedenle kaynak kullanımını sınırlandırmıyor. Ayrıca, bu yüzlerce örnek var ve onları birkaç kez değiştirdim, davranış her zaman aynı, bu yüzden kötü bir örnek problemi gibi görünmüyor .

Beni rahatsız eden şey, bunun pencerelerde olmamasıydı ve linux örnekleri temel sistem için yaklaşık 200 MB daha az bellek kullanıyor.

Linux takas için daha fazla bellek taşımak yapmak için swappiness dışında çimdik gereken herhangi bir ayar var mı?

Düzenleme: Swap cloud-init ile doğru şekilde kuruluyor ve hayatta kalmaya devam ediyor:

Kurmak:

fallocate -l 1024M /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sysctl vm.swappiness=100

free -m açılıştan sonra:

             total       used       free     shared    buffers     cached
Mem:           993        232        760          0          7        152
-/+ buffers/cache:         72        921
Swap:         1023          0       1023

Takas alanınızı doğru bir şekilde yapılandırmamışsınız gibi görünüyor: yapılandırılan takas free -hmiktarını kontrol etmek için koşun ; ya da hem belleğinizin hem de takasın dolu olabileceği şeklinde olabilir (1GB, özellikle sınırlı belleğiniz varsa, takas dosyası için oldukça küçüktür). Bu bağlantı , Ubuntu için nasıl ayarlayacağınızı anlatıyor, ancak sanırım diğer Linux lezzetleri için benzer olacak kadar basit bir fonksiyon.
AFH

Bu bir takas dosyası. Sistem değiş tokuşu tanıyor. Neredeyse hiçbirini kullanmıyor. Soruya bu detayları ekleyeceğim.
Natan

Linux'un bu belleğe nasıl erişeceğine bağlı olarak, denemeye başladığında çok geç olabilir. Azure'a bakmak isteyebilirsiniz. .NET uygulamaları çalıştıracaksanız, sizin için daha uygun olabilir .
Daniel B,

Disk erişim LED'iniz var mı? Sistem donduğunda sürekli yanıyorsa, belki de swappinessdeğeriniz çok yüksektir, bu da sık erişilen programların değişip başka programların dışlanabileceği anlamına gelir. En uç noktayı deneyin ve etkiyi görmek için ayarlayın swappiness=10( sudo sysctl vm.swappiness=10geçici değişiklik için): bu sıkça adlandırılan işlemlerin değişmesini durdurmalıdır.
AFH

0'dan 100'e kadar birçok değerle denedim, en iyi sonuç veren 100 kişiydi. 60 yaşından küçükken, VM'ye zorlukla SSH yapabildim. Sadece 1 işlem var, başka bir şey yok. Bu bir AWS örneğidir, ancak hayır, izleme grafiğinde disk etkinliği yoktur.
Natan

Yanıtlar:


2

Asıl meseleyi buldum. Uygulama docker'ın içinde çalışıyor ve AWS bir nedenden ötürü ECS kapları içinde takas kullanımını kasten engelliyor . Bu blok pencereleri etkilemedi çünkü daha önce liman işçisi yönetmek için ECS kullanmıyorduk.

Destekleriyle konuştuktan sonra, konteynır içindeki değişimi desteklemiyorlar ve ne zaman yapacaklarını bilmiyorlar. Bu yüzden, ECS'den ayrılmam ve liman işini kendim yönetmem gerekecek.


Kendi cevabınızı kabul edebilirsiniz, çünkü bu belki de başkalarının ilgisini çekebilecek bir şey!
djsmiley2k

1

Peki, hatan gerçekten çok küçük olabilir. Bu yüksek takas değeri, bazı işletim sistemi yapılandırmalarında bir soruna neden olur. 15 gibi bir değer deneyin. (Sadece bir not: sisteminizi değiş tokuşa tercih etmeye zorlamak korkunç bir fikir. Sisteminizin normal çalışması için gerçek RAM kullanması gerekir. [Bunu bilmemeniz veya tersine çevirmeniz durumunda swappiness% swap kullanılmadan önce ramsız olduğundan, 15, SWAP bölümü kullanılmadan önce RAM'in% 85'inin kullanılması gerektiğidir.])

Ayrıca, takas alanını nasıl eklediniz? Yapılandırmaları yeni değiştirdiyseniz ve yeni bir bölüm oluşturmadıysanız veya / etc / fstab dosyanızda hatalar yaptıysanız, takas kullanamazsınız ve sistem orada olmayan bir şeye yazmaya çalıştığında tüm cehennem kullanımına son verir. o yazamaz (ya da daha ilginç bir şey olacak). Bu yöntemlerle birden fazla kurulumdan kurtuldum.


Hata yok. Takas uygun şekilde yapılandırılmıştır ve sistem bazılarını kullanır. Ayrıca daha önce 0'dan 100'e kadar pek çok swappiness değeriyle denedim. 100 ile 20mb arasında değişir ve ssh'yi çok fazla sorun olmadan kullanabiliyorum.
Natan

Bunun mümkün olduğunu tersine çevirdim, ama sanmıyorum ama disleksi var.
Eric
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.