OS X में सक्षम कंप्रेस्ड मेमोरी के लिए vm_compressor_mode (vm.compressor_mode) मान


16

पृष्ठभूमि

सुपर उपयोगकर्ता में, स्वीकृत उत्तर के साथ :

सुपर यूजर में भी:

- और पहले उत्तर से हम समझते हैं कि बूट तर्क vm_compressor का मूल्य sysctl चर के मूल्य के साथ मेल नहीं खाता है vm.compressor_mode

ओएस एक्स 10.9, मावेरिक्स के लिए ऐप्पल ओपन सोर्स में; xnu-2422.1.72 में:

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.
 */

8 जीबी मेमोरी के साथ एक मैकबुकप्रो 5,2 पर मैं पाता हूं:

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

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))

सवाल

क्या संपीड़ित मेमोरी के लिए 4 से इतर सक्षम मोड होना संभव है ?

यदि हां, तो क्या हम मोडों का एक सादा अंग्रेजी स्पष्टीकरण पा सकते हैं?


आपके द्वारा उद्धृत हेडर फ़ाइल यह बताती है कि दोनों मोड 2 और 4 का अर्थ है कि कंप्रेस्ड पेजर सक्षम है। इसलिए मैं आपके प्रश्न से थोड़ा हैरान हूँ - क्या आपका मतलब यह है कि आपने वास्तव में मोड 2 की कोशिश की है, और यह संकुचित मेमोरी को सक्षम नहीं करता है?
jksoegaard

जवाबों:


4

मैं पूरी तरह से फ़्रीज़र विकल्प के बारे में निश्चित नहीं हूं, एक से अधिक अन्य फ़्रीज़ेर_कामप्रेशर विकल्प स्वैप का उपयोग करता है (डिस्क पर मुक्त स्थान का उपयोग करता है) जब रैम कम या विस्तारित होता है, जबकि दूसरा नहीं करता है।

मुझे क्या लगता है कि फ्रीज़र विकल्प जमे हुए प्रक्रियाओं के लिए मेमोरी के प्रबंधन के लिए हैं। हो सकता है कि यह ऐप प्रायोगिक के साथ संयोजन में प्रयोग किया जाने वाला कुछ प्रयोग है? मुझे लगता है कि यह कुछ ऐसा था जो कुछ साल पहले आईओएस के साथ परीक्षण कर रहे थे।

मुझे पता है कि विकल्प 1 कोई संपीड़न का उपयोग नहीं करता है, और पुराने ज़माने का OS X मेमोरी मैनेजमेंट है जिससे हम सभी अधिक परिचित हैं। यदि आपको समस्या हो रही है तो आप मेमोरी कंप्रेशन से संबंधित हैं, तो आप यह सेटिंग आज़मा सकते हैं।

विकल्प 2 बिना स्वैप (बिना रैम के या कम खर्च किए डिस्क पर कोई लेखन) के साथ संपीड़ित मेमोरी का उपयोग करता है।

विकल्प 4 संपीड़न और स्वैप दोनों का उपयोग करता है।

विकल्प 8 का उपयोग करता है जो भी फ्रीजर है, विकल्प 1 कार्यान्वयन द्वारा समर्थित है।


2
क्या फ़्रीजेर क्या करता है इस पर वास्तविक प्रलेखन है?
vy32

यह दिलचस्प है कि Apple.stackexchange.com/questions/175572 पर संपादित करें कहते हैं कि Apple ने एक रडार या प्रतिक्रिया या समर्थन मामले पर प्रतिक्रिया दी और पारंपरिक विकल्प 1 कुछ मामलों में विफल होने के लिए जाना जाता है और अब समर्थित मोड नहीं है।
bmike

0

टिप्पणी नहीं जोड़ सकता, इसलिए मैं उत्तर के रूप में लिखूंगा: ऐसा लगता है कि फ्रीज़र एप्पल की पेटेंट तकनीक है और यदि आप VM_PAGER_FREEZER_COMPRESSOR_NO_SWAPइसका उपयोग करेंगे तो कंप्रेसर का भी उपयोग नहीं करना चाहिए ? (देखें, कंप्रेसर मौजूद है, लेकिन सक्रिय नहीं है)

प्रश्न का उत्तर देते हुए, आप कर सकते हैं:

  1. VM_PAGER_COMPRESSOR_WITH_SWAP - संकुचित मेमोरी + स्वैप
  2. VM_PAGER_COMPRESSOR_NO_SWAP - संकुचित मेमोरी w / o स्वैप
  3. VM_PAGER_COMPRESSOR_NO_SWAP_PLUS_FREEZER_COMPRESSOR_WITH_SWAP - संकुचित मेमोरी + फ्रीज़र का स्वैप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.