getrusage system call: “maksimum yerleşik set büyüklüğü” nedir?


23

man getrusage 2 diyor

ru_maxrss (since Linux 2.6.32)
              This is the maximum resident set size used (in kilobytes). For RUSAGE_CHILDREN, this is the resident set size of the largest
              child, not the maximum resident set size of the process tree.

Peki bu sayı tam olarak ne anlama geliyor?


Sadece ru_maxrssmac / BSD makinelerinde bayt cinsinden bir not .
Isaac Turner

1
Küçük açıklama: ru_maxssMac OS X (Darwin) makinelerinde bayt, ancak BSD makinelerinde ve Linux makinelerinde kilobayt cinsindendir. Stackoverflow.com/q/40773924/781723 ve stackoverflow.com/q/12050913/781723 adresine bakın .
DW

Yanıtlar:


27

Bir işlemin yerleşik olarak ayarlanan boyutu, kendisine ait olan ve şu anda RAM'de (yerleşik) bulunan (gerçek RAM, değiştirilmemiş veya başka türlü yerleşik olmayan) bellek miktarıdır.

Örneğin, bir işlem bir yığın bellek ayırırsa (100Mb diyelim) ve aktif olarak kullanırsa (okur / yazar), yerleşik set büyüklüğü yaklaşık 100Mb (ek yük, kod bölümü vb.) Olur. İşlemden sonra bir süre bu belleği kullanmayı bırakırsa (ancak serbest bırakmazsa), işletim sistemi başka işlemlere (veya önbellek) yer açmak için bu belleğin parçalarını değiştirmeyi tercih edebilir. Yerleşik ayarlanan boyut daha sonra çekirdeğin değiştirdiği miktarda azalır. İşlem uyanır ve bu belleği tekrar kullanmaya başlarsa, çekirdek verileri takastan yeniden yükler ve yerleşik ayar boyutu tekrar artar.

ru_maxrssAlanı struct rusageikamet seti boyutu için "yüksek su işareti" dir. Bu işlem için en yüksek RAM kullanımını gösterir (kullanırken RUSAGE_SELF).

Tek bir uygulamanın sisteminizdeki tüm RAM'leri "yutmasını" önlemek ve diğer uygulamaları takas etmeye zorlamak (veya tamamen bellek dışı koşullarda başarısız olmak) için bir işlemin yerleşik ayar boyutunu sınırlayabilirsiniz.

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.