8 GB RAM ve 16 GB geçişli bir Debian (Buster) dizüstü bilgisayarım var . Çok uzun süren bir görev yürütüyorum. Bu, dizüstü bilgisayarımın üzerinden geçerken geçen altı gün boyunca açık kaldığı anlamına gelir.
Bunu yaparken periyodik olarak dizüstü bilgisayarımı dizüstü bilgisayar olarak kullanmam gerekiyor. Bu bir problem olmamalı; uzun süredir devam eden görev G / Ç'ye bağlı, bir USB sabit diskindeki şeyler üzerinde çalışıyor ve fazla RAM (<200 MB) veya CPU (<4%) kullanmıyor.
Sorun şu ki birkaç saat sonra dizüstü bilgisayarıma geri döndüğümde çok halsiz olacak ve normale dönmesi 30 dakika sürebilir. Bu çok kötü bir durumdur; çarpışma monitörleri kendi uygulamalarını donmuş olarak işaretler (özellikle tarayıcı pencereleri) ve işler yanlış şekilde çökmeye başlar.
Sistem monitörüne baktığımızda, yaklaşık yarısı kullanılmış olan 2,5 GB'lik parça değiştirilebiliyor. Bunun, takas alanını ( swapoff /dev/sda8
) kaldırarak sorun olduğunu onayladım . Takas alanı olmadan bırakırsam, 24 saat sonra bile neredeyse anında canlanır. Takasla, pratikte ilk altı dakikalığına sadece altı saat kalan bir tuğla. Ben yokken bile bellek kullanımının 3 GB'ı geçmediğini onayladım .
Ben azaltarak denedi swappiness ( ayrıca bkz: Wikipedia ) değerlerine 10
ve 0
, ama yine de sorun devam. Hareketsizlikle geçen bir günün ardından, çekirdek bütün GUI'nin artık gerekli olmadığına inanıyor ve RAM'den siliyor (diske kaydırıyor). Uzun süren görev geniş bir dosya ağacından okumak ve her dosyayı okumaktır. Bu yüzden çekirdek, önbelleklemenin yardımcı olacağını düşünmekle karıştı. Ancak, ~ 1 milyar dosya adı olan 2 TB'lık bir USB HD'nin tek bir taramasında, ekstra bir GB RAM performansa pek yardımcı olmaz. Bu halsiz bir sabit disk ile ucuz bir dizüstü bilgisayar. Sadece verileri yeterince hızlı bir şekilde RAM'e geri yükleyemez.
Linux'a acil durumlarda yalnızca takas alanını kullanmalarını nasıl söyleyebilirim? Takas olmadan koşmak istemiyorum. Beklenmeyen bir şey olursa ve işletim sistemi birdenbire birkaç GB'ye ihtiyaç duyarsa, görevlerin ölmesini istemiyorum ve takas kullanmaya başlamayı tercih ediyorum. Ancak şu anda, takas özelliğini etkin bırakırsam, dizüstü bilgisayarım gerektiğinde kullanılamaz.
Bir "acil durum" un kesin tanımı tartışma için bir sorun olabilir. Ancak ne demek istediğimi açıklığa kavuşturmak için: Acil durum, sistemin değiş tokuş yapmak veya işlemleri öldürmekten başka bir seçeneği kalmadan bırakılması olabilir.
Acil durum nedir? - Gerçekten sormak zorunda mısın? ... Umarım kendini yanan bir binada asla bulamazsın!
Bu soruda acil durum oluşturabilecek her şeyi tanımlamam mümkün değil. Ancak, örneğin, çekirdek OOM Killer ile öldürme işlemlerine başlayacağı için belleğe o kadar itildiğinde acil olabilir . Acil durum, çekirdek, takas kullanarak performansı artırabileceğini düşündüğü zaman DEĞİLDİR.
Son Düzenleme: İşletim sistemi düzeyinde tam olarak ne istediğimi yapan bir cevabı kabul ettim. Gelecekteki okuyucular, uygulama düzeyinde çözümler sunan cevapları da dikkate almalıdır.