cuộc gọi hệ thống getrusage: kích thước tập hợp cư dân tối đa là gì


23

man getrusage 2 nói

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.

Vậy con số này có ý nghĩa chính xác là gì?


Chỉ cần một lưu ý ru_maxrsslà tính bằng byte trên máy mac / BSD.
Isaac Turner

1
Làm rõ nhỏ: tính ru_maxssbằng byte trên máy Mac OS X (Darwin), nhưng tính bằng kilobyte trên máy BSD và máy Linux. Xem stackoverflow.com/q / 40773924/781723stackoverflow.com/q/12050913/781723 .
DW

Câu trả lời:


27

Kích thước cài đặt thường trú của một tiến trình là dung lượng bộ nhớ thuộc về nó và hiện có (RAM) trong RAM (RAM thực, không bị tráo đổi hoặc không tồn tại).

Chẳng hạn, nếu một quá trình phân bổ một đoạn bộ nhớ (giả sử 100Mb) và sử dụng nó một cách chủ động (đọc / ghi vào nó), kích thước tập thường trú của nó sẽ vào khoảng 100Mb (cộng với chi phí chung, phân đoạn mã, v.v.). Nếu sau quá trình dừng sử dụng (nhưng không giải phóng) bộ nhớ đó trong một thời gian, HĐH có thể chọn hoán đổi các đoạn của bộ nhớ đó để trao đổi, để nhường chỗ cho các tiến trình khác (hoặc bộ đệm). Kích thước cài đặt thường trú sau đó sẽ giảm theo số lượng nhân được hoán đổi. Nếu quá trình thức dậy và bắt đầu sử dụng lại bộ nhớ đó, hạt nhân sẽ tải lại dữ liệu từ trao đổi và kích thước cài đặt thường trú sẽ tăng trở lại.

Các ru_maxrsslĩnh vực struct rusagelà "nhãn hiệu nước cao" cho kích thước bộ cư dân. Nó chỉ ra mức sử dụng RAM tối đa cho quá trình này (khi sử dụng RUSAGE_SELF).

Bạn có thể giới hạn kích thước cài đặt thường trú của quy trình để tránh việc một ứng dụng "ăn hết" RAM trên hệ thống của bạn và buộc các ứng dụng khác phải trao đổi (hoặc thất bại hoàn toàn với điều kiện hết bộ nhớ).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.