Áp suất bộ nhớ không phải là thước đo đơn giản về tỷ lệ phần trăm của bộ nhớ và dường như là đồ thị từ 0 đến 100%. Các sysctl
giá trị vm.memory_pressure
được tính toán liên quan đến mục tiêu tính toán theo dõi tỷ lệ giữa các trang bộ nhớ miễn phí và hoạt động đến các trang có dây và hoạt động. Các bộ đếm tuyệt đối được xem bằng vm_stat
công cụ dòng lệnh để kiểm tra phân bổ chi tiết bộ nhớ ảo. Jonathan Levin có tài liệu tuyệt vời tại http://newosxbook.com/articles/MemoryPressure.html bao trùm cả bộ nhớ ảo macOS và iOS và cách họ tính toán áp lực bộ nhớ cũng như các hành động được thực hiện khi chỉ số áp suất cao.
Bộ nhớ ảo có liên quan (vm) cung cấp cho tính toán vm.memory_pressure
là:
vm.page_free_count
- số lượng trang miễn phí tuyệt đối
vm.vm_page_free_target
- mục tiêu hoặc mục tiêu được tính toán cho tình huống "không áp lực"
vm.page_free_wanted
- những gì hệ thống vm muốn miễn phí để giảm bớt chỉ số áp suất tính toán hiện tại
Vì vậy - nếu bạn đang theo dõi áp suất bộ nhớ của mình bằng Trình giám sát hoạt động (hoặc tôi kiểm tra các giá trị sysctl theo chương trình hoặc tại vỏ dòng lệnh), bạn sẽ làm tốt việc xem xét bốn giá trị này:
sysctl -a vm | egrep "page_free|pressure"
Có một lệnh mới được memory_pressure
giới thiệu với Mavericks và khi tôi chạy nó để điều khiển hệ thống con bộ nhớ vào trạng thái cảnh báo - bạn có thể thấy áp suất bộ nhớ tăng lên trong phạm vi màu vàng.
Công cụ phân bổ khoảng 4 GB bộ nhớ cho công cụ khi biểu đồ áp suất tăng dần đến trạng thái này trong đó rõ ràng mức độ "cảnh báo" được biểu thị : sudo memory_pressure -l warn
. Như bạn có thể thấy, hệ thống trước áp lực đã sử dụng 5,9 GB và sau đó lên tới 7,99 GB được sử dụng mà thậm chí không cần phải bổ sung do hoán đổi và nén.
Sau khi xem cách vm_stat 15
hiển thị kết quả cảnh báo không có phân trang có thể đo lường được, tôi thoát khỏi công cụ (Control-C) và sau đó chạy lại công cụ để làm cho áp lực bộ nhớ trở nên quan trọng:sudo memory_pressure -l critical
Tôi đã không để điều này chạy trong hơn một vài phút khi phân trang bắt đầu và một khi công cụ nói rằng tôi có 5 GB RAM được phân trang vào đĩa, tôi không muốn lấp đầy ổ đĩa của mình và thoát khỏi công cụ.
Bạn có thể quan sát hệ thống giải phóng RAM nhanh như thế nào sau khi cảnh báo kết thúc và cũng như cách nó tràn vào lãnh thổ "đỏ" để cho thấy rằng hệ thống bộ nhớ ảo không thể nén đủ các trang để tránh trao đổi vào đĩa. Dự đoán có giáo dục của tôi là màu đỏ đối với áp lực cho thấy việc hoán đổi và phân bổ quá mức đáng kể và / hoặc thời gian mà các trang miễn phí ở dưới mức mà hệ thống thích và nó chủ động thanh trừng các trang không hoạt động và / hoặc các trang hoán đổi dự kiến sẽ được sử dụng để hoán đổi. Tương tự, hệ thống phục hồi nhanh chóng sau khi phân bổ được giải phóng và áp lực được đưa ra khỏi hệ thống bộ nhớ ảo.