Kullanarak Linux’ta fazla abartıyordum. /proc/sys/vm/overcommit_memory
ve aynı şeyi söylemeyen birkaç makale okudum.
Bu doktor "Yanlış yöne gitmek" başlığı altında, "değerler 1: fazla mesai yap, ve 0 (varsayılan): yapma" demeye devam ediyor, ama sonraki birkaç satırda, benzer şeyler arasında Bunun aslında doğru olmadığını ve 0'ın "ne kadar fazla taahhüdün makul olduğunu tahmin et" anlamına geldiğini. Bu, hafızanın fazla çalıştığını gösterir. değil 0 değeri kullanılarak devre dışı bırakıldı, değil mi?
Ayrıca, 1'in "hiçbir zaman malloc () 'u reddetmediğini", 2 ifadesinin "fazladan ödeme konusunda kesin olacağı anlamına gelmediğini - hiçbir zaman takas alanından daha büyük bir sanal adres alanı artı fiziksel belleğin fazladan bir bölümü değil" anlamına geldiğini de belirtiyor.
Red Hat dergisi diğer taraftan, "eğer değer 0 ise, çekirdek bir uygulamadan bir malloc aramasına bir hafıza isteği vermek için boş hafıza olup olmadığını belirlemek için kontrol eder. Yeterli hafıza varsa, istek kabul edilir. Aksi takdirde, reddedilir ve bir hata kodu uygulamaya döndürülür. " Bu tam olarak aşırı devredışı bırakmak gibi görünüyor.
"Değer 1 olarak ayarlanırsa, çekirdek fiziksel RAM miktarının üstünde tahsisler verir ve overcommit_ratio değeri ile tanımlanan sistemde takas eder ... Bu dosyadaki ayar 2 ise, çekirdek tüm bellek tahsislerine izin verir Geçerli bellek ayırma durumuna bakılmaksızın, " 1 ve 2 değerleri açısından, önceki doktorun söylediklerinin tam tersi, değil mi?
Neyin doğru olduğunu ve fazla mesaiyi 'devre dışı bırakmanın' mümkün olup olmadığını bilen var mı?