Các giá trị vm_compressor_mode (vm.compressor_mode) cho bộ nhớ nén được kích hoạt trong OS X


16

Lý lịch

Trong Super user, với câu trả lời được chấp nhận :

Ngoài ra trong Siêu người dùng:

- và từ câu trả lời đầu tiên, chúng tôi hiểu rằng giá trị của đối số khởi động vm_compressor không tương ứng với giá trị của biến sysctl vm.compressor_mode .

Trong mã nguồn mở của Apple cho OS X 10.9, Mavericks; trong xnu-2422.1.72:

Trong vm_compressor.c:

/*
 * vm_compressor_mode has a heirarchy of control to set its value.
 * boot-args are checked first, then device-tree, and finally
 * the default value that is defined below. See vm_fault_init() for
 * the boot-arg & device-tree code.
 */

Trên MacBookPro5,2 với bộ nhớ 8 GB tôi tìm thấy:

sh-3.2$ sysctl -a vm.compressor_mode
vm.compressor_mode: 4

Gần chân vm_pageout.h:

extern int vm_compressor_mode;
extern int vm_compressor_thread_count;

#define VM_PAGER_DEFAULT                0x1 /* Use default pager. */
#define VM_PAGER_COMPRESSOR_NO_SWAP         0x2 /* In-core compressor only. */
#define VM_PAGER_COMPRESSOR_WITH_SWAP           0x4 /* In-core compressor + swap backend. */
#define VM_PAGER_FREEZER_DEFAULT            0x8 /* Freezer backed by default pager.*/
#define VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP     0x10    /* Freezer backed by in-core compressor only i.e. frozen data remain in-core compressed.*/
#define VM_PAGER_FREEZER_COMPRESSOR_WITH_SWAP       0x20    /* Freezer backed by in-core compressor with swap support too.*/

#define VM_PAGER_MAX_MODES              6   /* Total number of vm compressor modes supported */

#define DEFAULT_PAGER_IS_ACTIVE     ((vm_compressor_mode & VM_PAGER_DEFAULT) == VM_PAGER_DEFAULT)

#define COMPRESSED_PAGER_IS_ACTIVE  (vm_compressor_mode & (VM_PAGER_COMPRESSOR_NO_SWAP | VM_PAGER_COMPRESSOR_WITH_SWAP))

#define DEFAULT_FREEZER_IS_ACTIVE   ((vm_compressor_mode & VM_PAGER_FREEZER_DEFAULT) == VM_PAGER_FREEZER_DEFAULT)

#define DEFAULT_FREEZER_COMPRESSED_PAGER_IS_ACTIVE      (vm_compressor_mode & (VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP | VM_PAGER_FREEZER_COMPRESSOR_WITH_SWAP))

Câu hỏi

Có thể có chế độ kích hoạt khác 4 cho bộ nhớ nén không?

Nếu vậy, chúng ta có thể tìm thấy một lời giải thích tiếng Anh đơn giản về các chế độ?


Tệp tiêu đề bạn trích dẫn dường như nói rằng cả hai chế độ 2 và 4 có nghĩa là máy nhắn tin nén đã được bật. Do đó, tôi hơi bối rối trước câu hỏi của bạn - bạn có nghĩa là bạn đã thực sự thử chế độ 2 và nó không kích hoạt bộ nhớ nén?
jksoegaard

Câu trả lời:


4

Tôi không hoàn toàn chắc chắn về các tùy chọn FREEZER, ngoài một tùy chọn FREEZER_COMPRESSOR sử dụng trao đổi (sử dụng không gian trống trên đĩa) khi RAM thấp hoặc hết hạn, trong khi tùy chọn khác thì không.

Những gì tôi nghĩ là các tùy chọn FREEZER là để quản lý bộ nhớ cho các quy trình bị đóng băng. Có lẽ đây là một cái gì đó thử nghiệm, được sử dụng kết hợp với App Nap? Tôi nghĩ rằng đây là thứ họ đã thử nghiệm với iOS vài năm trước.

Những gì tôi biết là tùy chọn 1 không sử dụng nén và là cách quản lý bộ nhớ OS X cũ mà chúng ta đều quen thuộc hơn. Nếu bạn gặp sự cố mà bạn nghi ngờ có liên quan đến nén bộ nhớ, bạn có thể thử cài đặt này.

Tùy chọn 2 sử dụng bộ nhớ nén không có trao đổi (không ghi vào đĩa khi RAM thấp hoặc hết hạn).

Tùy chọn 4 sử dụng cả nén và trao đổi.

Tùy chọn 8 sử dụng bất cứ thứ gì MIỄN PHÍ, được hỗ trợ bởi việc thực hiện tùy chọn 1.


2
Có tài liệu thực tế về những gì FREEZER làm?
vy32

Thật thú vị khi chỉnh sửa thành apple.stackexchange.com/questions/175572 nói rằng Apple đã phản hồi với radar hoặc phản hồi hoặc trường hợp hỗ trợ và tùy chọn truyền thống 1 được biết là thất bại trong một số trường hợp và không còn là chế độ được hỗ trợ.
bmike

0

Không thể thêm nhận xét, vì vậy tôi sẽ viết dưới dạng câu trả lời: Có vẻ như tủ đông là công nghệ được cấp bằng sáng chế của Apple và nếu bạn sử dụng VM_PAGER_FREEZER_COMPRESSOR_NO_SWAPthì cũng không nên sử dụng máy nén ? (xem, máy nén có mặt, nhưng không được kích hoạt)

Trả lời câu hỏi, bạn có thể có:

  1. VM_PAGER_COMPRESSOR_WITH_SWAP - bộ nhớ nén + trao đổi
  2. VM_PAGER_COMPRESSOR_NO_SWAP - trao đổi bộ nhớ đã được trao đổi
  3. VM_PAGER_COMPRESSOR_NO_SWAP_PLUS_FREEZER_COMPRESSOR_WITH_SWAP - bộ nhớ nén + trao đổi của tủ đông
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.