Làm thế nào là vm.memory_pressure
giá trị của giáp / tính trên OS X 10.10.2 - Yosemite?
Tôi đã nghiên cứu một số câu trả lời cho câu hỏi này và đang thử một vài điều trên dòng lệnh để có được các giá trị chính xác thay vì nhìn vào các biểu đồ trong Activity Monitor.
Với hệ thống chịu tải nhẹ:
~ ❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 0
vm.page_free_count: 2683717
vm.memory_pressure: 0
kern.memorystatus_vm_pressure_level: 1
Kern.memorystatus_vm_pressure_level trông có vẻ đúng và dường như là những gì nó sử dụng để tô màu cho biểu đồ (màu xanh lá cây cho 1-BÌNH THƯỜNG, màu vàng cho 2-WARN, màu đỏ cho 4-CRITICS). Tuy nhiên, vm.memory_pressure là 0 và biểu đồ có một số lượng màu xanh lá cây và nó bị lởm chởm, có nghĩa là giá trị thay đổi rõ ràng theo thời gian, không chỉ ngồi ở 0.
Dưới tải nặng, nó trông như thế này:
❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 0
vm.page_free_count: 32572
vm.memory_pressure: 1693
kern.memorystatus_vm_pressure_level: 4
Hay đây ...
~ ❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 0
vm.page_free_count: 5431
vm.memory_pressure: 277
kern.memorystatus_vm_pressure_level: 4
Hay đây ...
~ ❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 3220
vm.page_free_count: 805
vm.memory_pressure: 1
kern.memorystatus_vm_pressure_level: 4
Đây là nơi tôi bối rối. Không có giá trị nào trong số này có thể là giá trị Y của biểu đồ vì một vài lý do.
Đầu tiên, vm.memory_pressure chỉ ngồi ở mức 0 gần như mọi lúc dưới tải bình thường và đồ thị không ngồi ở 0.
Thứ hai, chúng không phù hợp với nhau. Nhìn vào giá trị memory_pressure, nó thấp hơn khi nó thực sự có các trang muốn (3220 muốn và áp lực chỉ 1) so với khi nó có 5431 miễn phí và không muốn (áp lực là 277). Và bằng cách nào đó, áp suất đó thậm chí còn thấp hơn so với khi nó có 32572 miễn phí (và có áp lực 1693).
Vì vậy, khi nó vẽ đồ thị đó, tính toán cho giá trị Y là gì và làm cách nào tôi có thể lấy dữ liệu tôi cần để tính toán từ dòng lệnh? Tôi đang tìm cách tạo ra một công cụ dòng lệnh sẽ tiết ra tỷ lệ phần trăm của dòng hiện tại trên biểu đồ đó, vì vậy tôi cần biết cách tính giá trị tại bất kỳ thời điểm nào, cũng như phạm vi của giá trị có thể là.