getrusage system call: apa itu "ukuran set penduduk maksimum"


23

man getrusage 2 kata

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.

Jadi apa sebenarnya arti angka ini?


Hanya sebuah catatan yang ru_maxrssada dalam byte pada mesin mac / BSD.
Isaac Turner

1
Klarifikasi kecil: ru_maxssdalam byte pada mesin Mac OS X (Darwin), tetapi dalam kilobyte pada mesin BSD dan mesin Linux. Lihat stackoverflow.com/q/40773924/781723 dan stackoverflow.com/q/12050913/781723 .
DW

Jawaban:


27

Ukuran set resident suatu proses adalah jumlah memori yang dimiliki dan saat ini ada (resident) dalam RAM (RAM nyata, tidak bertukar atau tidak-resident).

Misalnya, jika suatu proses mengalokasikan sepotong memori (katakanlah 100Mb) dan menggunakannya secara aktif (membaca / menulis padanya), ukuran set residennya akan sekitar 100Mb (plus overhead, segmen kode, dll.). Jika setelah proses kemudian berhenti menggunakan (tetapi tidak melepaskan) memori untuk sementara waktu, OS dapat memilih untuk menukar potongan memori itu untuk bertukar, untuk memberikan ruang bagi proses lain (atau cache). Ukuran penduduk yang ditentukan kemudian akan berkurang dengan jumlah yang ditukar kernel. Jika proses bangun dan mulai menggunakan kembali memori itu, kernel akan memuat ulang data dari swap, dan ukuran yang ditetapkan penduduk akan naik lagi.

The ru_maxrssbidang struct rusageadalah "tanda air yang tinggi" untuk ukuran set penduduk. Ini menunjukkan puncak penggunaan RAM untuk proses ini (saat menggunakan RUSAGE_SELF).

Anda dapat membatasi ukuran set resident suatu proses untuk menghindari aplikasi tunggal "menggerogoti" semua RAM pada sistem Anda dan memaksa aplikasi lain untuk bertukar (atau gagal seluruhnya dengan kondisi kehabisan memori).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.