स्नो लेपर्ड में एक समर्पित विभाजन के लिए स्वैपफाइल्स को स्थानांतरित करना


31

मैं अब तक अपनी हार्ड ड्राइव पर एक समर्पित विभाजन के लिए Apple की वर्चुअल मेमोरी स्वेपफाइल्स को स्थानांतरित करने में सक्षम रहा हूं। मैं जिस तकनीक का उपयोग कर रहा हूं उसका वर्णन मंचों पर एक सूत्र में वर्णित है । pmosxhints.com।

हालांकि, स्नो लेपर्ड के डेवलपर पूर्वावलोकन के साथ, यह विधि अब काम नहीं करती है। क्या किसी को पता है कि यह नए ओएस के साथ कैसे किया जा सकता है?

अद्यतन: मैंने dblu के उत्तर को स्वीकार कर लिया है, भले ही वह काफी काम का नहीं है क्योंकि उसने उत्कृष्ट, विस्तृत निर्देश दिए हैं और क्योंकि उसके उपयोग के सुझाव plutilने अंततः मुझे सही दिशा में बताया। पूर्ण, कार्यशील समाधान यहां प्रश्न में पोस्ट किया गया है क्योंकि मेरे पास स्वीकृत उत्तर को संपादित करने के लिए पर्याप्त प्रतिष्ठा नहीं है।

अद्यतन # 2: ekl की तकनीक को चित्रित करने की प्रक्रिया को बदल दिया है , जो एक मध्यवर्ती शेल स्क्रिप्ट की आवश्यकता को समाप्त करके पूरी बात को सरल करता है:

पूर्ण समाधान:

1. टर्मिनल खोलें और Apple के डिफॉल्ट dynam_pager.plist की बैकअप प्रतिलिपि बनाएँ:

$ cd /System/Library/LaunchDaemons
$ sudo cp com.apple.dynamic_pager.plist{,_bak}

2. बाइनरी से प्लेन को प्लेन XML में बदलें:

$ sudo plutil -convert xml1 com.apple.dynamic_pager.plist

3. अपनी पसंद के टेक्स्ट एडिटर के साथ परिवर्तित प्लिस्ट खोलें। (मैं उपयोग करता हूं pico, उदाहरण के लिए dblu के उत्तर को देखें vim)

$ sudo pico -w com.apple.dynamic_pager.plist

यह इस प्रकार दिखना चाहिए:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>HopefullyExitsLast</key>
    <true/>
    <key>Label</key>
    <string>com.apple.dynamic_pager</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/sbin/dynamic_pager</string>
        <string>-F</string>
        <string>/private/var/vm/swapfile</string>
    </array>
</dict>
</plist>

4.डायनामिक_पेजर को लॉन्च करने से पहले Wait4path शेल कमांड ( ZILjr द्वारा सुझाए गए अनुसार ) का उपयोग करने के लिए ProgramArguments ऐरे (18 से लाइनें 13) को संशोधित करें । नोट # 1 देखें कि यह क्यों आवश्यक है। निम्नलिखित उदाहरण में, मेरे विभाजन को 'स्वैप' कहा जाता है, और मैंने उस विभाजन पर एक छिपी हुई निर्देशिका में स्वैपफाइल्स को रखने के लिए चुना, जिसे '.vm' कहा जाता है, सुनिश्चित करें कि आप जिस निर्देशिका को निर्दिष्ट करते हैं वह वास्तव में मौजूद है । XML को निम्नानुसार देखना चाहिए:

<key>ProgramArguments</key>
<array>
    <string>/bin/bash</string>
    <string>-c</string>
    <string>/bin/wait4path /Volumes/Swap/ &amp;&amp;
/sbin/dynamic_pager -F /Volumes/Swap/.vm/swapfile</string>
</array>

5. प्लिस्ट को सहेजें, और टर्मिनल प्रॉम्प्ट पर लौटें। का उपयोग कर pico, आदेश होगा:

<ctrl+o> to save the file
<enter>  to accept the same filename (com.apple.dynamic_pager.plist)
<ctrl+x> to exit

6. बाइनरी में संशोधित प्लिस्ट को वापस कन्वर्ट करें:

$ sudo plutil -convert binary1 com.apple.dynamic_pager.plist

7.अपने मैक को पुनरारंभ करें। यदि आप मुसीबत में हैं, तो स्टार्टअप चाइम के तुरंत बाद कमांड-वी को दबाकर क्रिया मोड चालू करें। यह आपको स्टार्टअप के उन सभी संदेशों को देखने देगा जो स्टार्टअप के दौरान दिखाई देते हैं। यदि आप और भी अधिक परेशानी में हैं (यानी आप लॉगिन स्क्रीन कभी नहीं देखते हैं), इसके बजाय कमांड-एस दबाए रखें। यह कंप्यूटर को एकल-उपयोगकर्ता मोड (कोई ग्राफ़िकल यूआई, बस एक कमांड प्रॉम्प्ट) में बूट करेगा और आपको चरण 1 में किए गए com.apple.dynamic_pager.plist की बैकअप प्रतिलिपि को पुनर्स्थापित करने की अनुमति देगा।

8. एक बार कंप्यूटर बूट करने के बाद, टर्मिनल को फायर करें और सत्यापित करें कि स्वैप फाइलें वास्तव में स्थानांतरित हो गई हैं:

$ cd /Volumes/Swap/.vm
$ ls -l

आपको कुछ इस तरह से देखना चाहिए:

-rw-------  1 someUser  staff  67108864 18 Sep 12:02 swapfile0

9. पुराने स्वेपाइल्स को हटाएं:

$ cd /private/var/vm
$ sudo rm swapfile*

10. फायदा!

नोट 1

बिना उपयोग किए प्लास्ट में डायनेमिक_पेजर के तर्कों को संशोधित करना wait4pathहमेशा काम नहीं करता है, और जब यह विफल हो जाता है, तो यह एक शानदार चुप तरीके से ऐसा करता है। समस्या इस तथ्य से उपजी है कि डायनामिक_पेजर को स्टार्टअप प्रक्रिया में बहुत पहले लॉन्च किया जाता है। यदि डायनामिक_पेजर पहले लोड किया गया है, तो आपके स्वैप विभाजन को अभी तक माउंट नहीं किया गया है (मेरे अनुभव में, यह समय का 99% होता है), तो सिस्टम इसके माध्यम से नकली होगा। यह आपके / वॉल्यूम निर्देशिका में एक प्रतीकात्मक लिंक बनाएगा, जिसका नाम आपके स्वैप विभाजन के समान है, लेकिन डिफ़ॉल्ट स्वैप स्थान (/ निजी / var / vm) पर वापस इंगित करता है। फिर, जब आपका वास्तविक स्वैप विभाजन आरोहित होता है, तो उसे नाम Swap 1(या YourDriveName 1) दिया जाएगा । आप टर्मिनल खोलकर और अपने / वॉल्यूम निर्देशिका की सामग्री को सूचीबद्ध करके समस्या देख सकते हैं:

$ cd /Volumes
$ ls -l

आप कुछ इस तरह देखेंगे:

drwxrwxrwx  11 yourUser  staff   442 16 Sep 12:13 Swap -> private/var/vm
drwxrwxrwx  14 yourUser  staff     5 16 Sep 12:13 Swap 1 
lrwxr-xr-x   1 root      admin     1 17 Sep 12:01 System -> /

ध्यान दें कि यह विफलता स्पॉट करने के लिए बहुत कठिन हो सकती है । यदि आप स्टेप 12 में दिखाए गए अनुसार स्वैपफाइल्स की जांच कर रहे थे, तब भी आप उन्हें देखेंगे ! प्रतीकात्मक लिंक ऐसा लगता है जैसे कि आपके स्वैपफिल को स्थानांतरित कर दिया गया था, भले ही वे वास्तव में डिफ़ॉल्ट स्थान पर संग्रहीत किए जा रहे थे।

नोट 2

मैं मूल रूप से स्नो लेपर्ड में काम करने में असमर्थ था क्योंकि com.apple.dynamic_pager.plist को बाइनरी प्रारूप में संग्रहीत किया गया था। मैंने मूल फ़ाइल की एक प्रतिलिपि बनाई और इसे बदलने के लिए Apple के प्रॉपर्टी लिस्ट एडिटर (Xcode के साथ उपलब्ध) के साथ खोला, लेकिन इस प्रक्रिया ने plist फ़ाइल में कुछ विस्तारित विशेषताओं को जोड़ा जिससे सिस्टम इसे अनदेखा कर देता है और बस चूक का उपयोग करता है । जैसा कि dblu ने बताया, plutilफ़ाइल को सादे XML में बदलने के लिए उपयोग करना एक आकर्षण की तरह काम करता है।

नोट 3

आप किसी भी संदेश को देखने के लिए कंसोल एप्लिकेशन की जांच कर सकते हैं जो कि स्क्रीन पर डायनामिक_पेजर_इन इकोस है। यदि आपको बार-बार निम्न पंक्तियाँ दिखाई देती हैं, तो सेटअप के साथ समस्या है। मैं इन संदेशों में भाग गया क्योंकि मैं '.vm' निर्देशिका बनाना भूल गया था जिसे मैंने डायनामिक_पेजर_इनिट में निर्दिष्ट किया था।

com.apple.launchd[1]  (com.apple.dynamic_pager[176]) Exited with exit code: 1
com.apple.launchd[1]  (com.apple.dynamic_pager) Throttling respawn: Will start in 10 seconds

जब सब कुछ ठीक से काम कर रहा हो, तो आप उपरोक्त संदेश को एक-दो बार ही देख सकते हैं, और फिर "थ्रॉटलिंग रेस्पॉन्स" इन संदेशों से अधिक नहीं। इसका मतलब है कि सिस्टम को लोड होने के लिए इंतजार करना पड़ा, लेकिन अंत में यह सफल रहा।


मैं वास्तव में उत्सुक हूं कि आप ऐसा क्यों करना चाहेंगे?
बाइनरीम्यूसिट

छोटे प्रदर्शन के लिए। मुझे उपयोग के अनुसार अपनी हार्ड ड्राइव को विभाजित रखना पसंद है। मेरे पास ओएस और अनुप्रयोगों के लिए एक विभाजन है, एक उपयोगकर्ता फ़ोल्डर के लिए है, एक दस्तावेज़ों के लिए है, एक मीडिया (संगीत, फिल्मों, आदि) के लिए और एक स्वैपफाइल्स के लिए है। मेरे अनुभव में, स्वैप फाइल को बाकी सिस्टम से अलग रखने से डिस्क का विखंडन कम होता है। मेरी प्राथमिकता समर्पित ड्राइव पर स्वैप करना होगी, लेकिन एक और विभाजन आमतौर पर पर्याप्त होगा।
e.James

4
पर्याप्त रूप से - हालांकि एक ही ड्राइव पर विभाजन वास्तव में ड्राइव के लिए अधिक काम का कारण बनता है, हालांकि विभिन्न ड्राइव पर विभाजन एक प्रदर्शन लाभ प्रदान करते हैं। हार्ड ड्राइव को एक ही ड्राइव पर विभाजन में कूदते समय अधिक काम करना पड़ता है। मैं केवल इसलिए पूछता हूं क्योंकि बॉक्स से बाहर निकलने के लगभग 2 वर्षों के बाद मेरे मैक पर अभी तक विखंडन और प्रदर्शन के मुद्दे हैं, और जब मैं इन पोस्टों को देखता हूं तो वे मुझे रुचि देते हैं।
बाइनरी मिस्सिट

1
मुझे यकीन नहीं है कि मैं उत्तर क्यों नहीं दे सकता ( 101 प्रतिनिधि, जो - अगर मैं अपने गणित को याद कर सकता हूं - 10 से अधिक है जिसे संरक्षित राज्य की आवश्यकता है) , लेकिन मुझे एक गैर- wait4pathसमाधान मिला , जो कि आवेदन करने वाले के लिए धन्यवाद मेरे लिए संशोधित Xupport। एक बार जब मैं पता लगाऊंगा तो मैं एक पूर्ण उत्तर पोस्ट करूंगा, लेकिन इसकी कमी अंतिम प्रोग्राम तर्क को सिर्फ नए पथ (जैसे <string>/Volumes/swap/.vm/swapfile</string>) में बदलने के OnDemandलिए है <true/>, कुंजी को बदलें , और StartOnMountमूल्य के साथ अंत में एक कुंजी जोड़ें का है <true/>PS यह समाधान लायन (मेरे लिए, कम से कम) में ठीक काम करता है।
स्लिप डी। थॉम्पसन

1
@ स्लिप डगलस: मुझे कानूनी लगता है। StartOnMount: झंडा के अनुसार 10.5 में जोड़ा गया mactech.com/articles/mactech/Vol.25/25.10/...
e.James

जवाबों:


10

नोट : प्रश्न में एक सही / सुधरा हुआ उत्तर देखें (भी)।


निम्नलिखित समाधान ने मेरे लिए काम किया:

एक टर्मिनल और बैकअप खोलें com.apple.dynamic_pager.plist जिसे आप एक सेकंड में बदलने जा रहे हैं:

$ cd / प्रणाली / पुस्तकालय / LaunchDaemons
$ sudo cp com.apple.dynamic_pager.plist {, _ bak}

बाइनरी प्लिस्ट को xml में बदलें:

$ sudo plutil -convert xml1 com.apple.dynamic_pager.plist

और इसे अपने पसंदीदा टेक्स्ट एडिटर के साथ खोलें

$ सूदो वीम कॉम .apple.dynamic_pager.plist

यह कुछ इस तरह दिखेगा:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3 <plist version="1.0">
 4 <dict>
 5     <key>EnableTransactions</key>
 6     <true/>
 7     <key>HopefullyExitsLast</key>
 8     <true/>
 9     <key>Label</key>
10     <string>com.apple.dynamic_pager</string>
11     <key>OnDemand</key>
12     <false/>
13     <key>ProgramArguments</key>
14     <array>
15         <string>/sbin/dynamic_pager</string>
16         <string>-F</string>
17         <string>/private/var/vm/swapfile</string>
18     </array>
19 </dict>
20 </plist>

लाइन 17 में / निजी / var / vm / swapfile (जैसे / वॉल्यूम / पार्टीशन 2 / swapfile) को संशोधित करें, अपने संपादक को सहेजें और बंद करें (": x" दोनों को vim में कर देगा)।

बाइनरी फाइल को वापस बाइनरी में बदलें:

$ सुडो प्लूटिल -कॉन्टवर्न बाइनरी 1 कॉम.प्पल.डायनामिक_पेजर.प्लिस्ट

अपने मैक को रिबूट करने के बाद आपको अपने द्वारा निर्दिष्ट निर्देशिका में स्वैपफाइल्स का पता लगाना चाहिए।

यदि आप किसी भी समस्या में भाग लेते हैं, तो आप पहले चरण में आपके द्वारा बनाए गए बैकअप को पुनर्स्थापित कर सकते हैं:

$ cd / प्रणाली / पुस्तकालय / LaunchDaemons
$ sudo cp com.apple.dynamic_pager.plist {_bak,}

क्या आप निश्चित हैं कि स्वैपफाइल वास्तव में इस सेटअप के साथ विभाजन में ले जाया जा रहा है? जब मैंने मूल रूप से इस दृष्टिकोण की कोशिश की, तो डायनेमिक_पेयर माध्यमिक विभाजन के माउंट होने से पहले लोड हो जाएगा। यह सिस्टम / वॉल्यूम निर्देशिका में पार्टीशन 2 के लिए एक प्रतीकात्मक लिंक बनाकर अपना रास्ता नकली करेगा, जो कि केवल / निजी / var / vm पर वापस इंगित करता है। आप असफलता की पहचान / वॉल्यूम निर्देशिका में ls -al कर कर सकते हैं, जहाँ आपको "विभाजन 2" (प्रतीकात्मक लिंक) और "पार्टीशन 2 1" (आपका वास्तविक विभाजन) दिखाई देगा।
ई.जेम्स

किसी भी तरह, तकनीक को बाइनरी प्रारूप से & से प्लिस्ट फ़ाइलों को परिवर्तित करने के लिए +1। com.apple.dynamic_pager.plist 10.5.x में सादे पाठ प्रारूप में था, लेकिन 10.6 के रूप में द्विआधारी प्रारूप में। जो मेरी समस्या का हिस्सा है। मैं संपत्ति की सूची संपादक ऐप का उपयोग करके प्लिस्ट फ़ाइलों को संशोधित कर रहा हूं जो कि Xcode के साथ आता है, और शायद इसीलिए चीजें काम नहीं करती थीं। मैं प्लूटिल एक कोशिश करूँगा और देखूंगा कि क्या यह मुझे और मिलता है।
ई.जेम्स

मैं इस समय एक और विभाजन के साथ इसका परीक्षण नहीं कर सकता, हालांकि मेरे परीक्षणों के दौरान मैंने उपरोक्त तकनीक का उपयोग करके एक थंबड्राइव पर स्वैगिल बनाने के लिए डायनेमिक_पेजर बनाया।
dblu

मैं plutilरूपांतरण के लिए उपयोग करने के आपके सुझाव के लिए मूल तकनीक काम करने में सक्षम था । मैंने प्रश्न में पूरा समाधान पोस्ट किया (क्योंकि आपके पास इसे आपके उत्तर में जोड़ने के लिए पर्याप्त प्रतिनिधि नहीं है)। मेरे पास समस्याओं का एक विस्तृत विवरण के लिए मेरा नोट # 1 देखें, जिसमें मैं सिर्फ सरोवर को संशोधित कर रहा था।
ई.जेम्स

वैसे भी, उत्तर के लिए धन्यवाद। आपने निर्देशों का एक उत्कृष्ट सेट एक साथ रखा है, और आपने मुझे सही दिशा में इंगित किया है इसलिए मैंने इसे स्वीकार किया है। चीयर्स! :)
e.James

3

मैंने इस विचार को अपनाया है और विकास और पुनर्विचार रणनीतियों को संबोधित करके इसे थोड़ा और आगे ले गया है।

Http://www.crypticide.com/dropsafe/article/3848 पर विवरण ; मैं "डायनामिक पेजरवॉपर" GoogleCode प्रोजेक्ट पेज के लिए एक लिंक पोस्ट करूंगा, लेकिन ब्लॉग मुझे बताता है कि मेरे पास कोई विशेष पहचान बिंदु नहीं है ...


1
+1 महान सामान! मैं अभी इसकी कोशिश कर रहा हूं। यहां GoogleCode प्रोजेक्ट का लिंक दिया गया है: code.google.com/p/dynamicpagerwrapper
e.James

सुनिश्चित करें कि आप स्क्रिप्ट के कम से कम 8 संशोधन का उपयोग कर रहे हैं: code.google.com/p/dynamicpagerwrapper/source/browse/trunk/…

3

सिर्फ एक सवाल: wait4pathइंटरमीडिएट का उपयोग करने के बजाय सिर्फ .plist फाइल एडिटिंग ही क्यों dynamic_pager_init?

कुछ इस तरह:

EDIT: जैसा कि e.James और मेरी निम्नलिखित टिप्पणी द्वारा समझाया गया है, XML ब्लॉक के तुरंत बाद का अनुसरण करना अच्छा नहीं है, क्योंकि दोनों में कोई त्रुटि है (अनुपलब्ध &&) और क्योंकि केवल सरणी का पहला तर्क है ProgramArguments जिसे प्रोग्राम चलाने के लिए पार्स किया गया है !

लेकिन .. (नीचे स्क्रॉल करें)

 ...
13     <key>ProgramArguments</key>
14     <array>
15         <string>/bin/wait4path</string>
16         <string>/Volumes/Swap/</string>
17         <string>/sbin/dynamic_pager</string>
18         <string>-F</string>
19         <string>/Volumes/Swap/.vm/swapfile</string>
20     </array>
 ...

गलत xml ब्लॉक का अंत


इस XML ब्लॉक के बजाय काम करना चाहिए :

   ...
    13     <key>ProgramArguments</key>
    14     <array>
    15         <string>/bin/bash</string>
    16         <string>-c</string>
    17         <string>/bin/wait4path /Volumes/Swap/ &amp;&amp; /sbin/dynamic_pager -F /Volumes/Swap/.vm/swapfile</string>
    18     </array>
     ...

कृपया ध्यान रखें कि मेरे पास अभी भी इस सेटिंग को सुरक्षित रूप से आज़माने के लिए पर्याप्त समय नहीं था, लेकिन मैंने उसी तरह से लॉन्च किए गए विभिन्न अन्य शेल कमांड चलाने की कोशिश की, और सब कुछ उम्मीद के मुताबिक काम करना चाहिए

यह काम किस प्रकार करता है:

आधार: निष्पादन का wait4path /path && commandमतलब है कि commandकेवल तभी चलाया जाता है जब wait4pathत्रुटियों के बिना समाप्त होता है और बाहर निकलता है, और यह केवल तब होता है जब /pathएक उपलब्ध पथ होता है, इसलिए हम सुरक्षित रूप से dynamic_pagerस्वैप के लिए उस मात्रा का उपयोग करने के लिए कह सकते हैं

1) जैसा कि launchd.plistमैनपेज में लिखा गया है , चाबियाँ Programऔर कॉल ProgramArgumentsकरने के लिए मैप की जाती execvpहैं, इसका मतलब है कि सब कुछ लेकिन सरणी में पहली स्ट्रिंग को सरणी में पहले स्ट्रिंग के लिए एक तर्क के रूप में माना जाता है, चलाने का कार्यक्रम;

2) जैसा कि bashमैनपेज में लिखा गया है , bash -c <string>स्ट्रिंग को कमांड के रूप में चलाने का विकल्प है

1 + 2 = 3) लॉन्च कमांड में इस कमांड लाइन का उपयोग करने से क्या होता है ??

/bin/bash -c "wait4path /Volumes/Swap/ && /sbin/dynamic_pager -F /Volumes/Swap/.vm/swapfile"

/bin/bashचलाने का कार्यक्रम -cहै, पहला तर्क है और डबल उद्धृत स्ट्रिंग दूसरा तर्क है

मुझे लगता है कि यह आपके समाधान के रूप में बिल्कुल काम करना चाहिए, मध्यवर्ती स्क्रिप्ट के बिना: launchdसेवा शुरू करेगा, जो कि दिए गए मार्ग की प्रतीक्षा करेगा और फिर कोड dynamic_pager..

कृपया ध्यान दें:
* यदि आप bash -cटर्मिनल में चलाना चाहते हैं, तो जो स्ट्रिंग निष्पादित करना चाहते हैं, उसे डबल उद्धृत किया जाना चाहिए , लेकिन यह plist फ़ाइल में डबल उद्धृत नहीं है ! (मुझे लगता है क्योंकि यह पहले से ही उचित टैग के साथ एक स्ट्रिंग के रूप में घोषित किया गया है)
* &स्ट्रिंग में दो &amp;को plist फ़ाइल में बदलना होगा

पुनश्च: हमेशा की तरह, अपने जोखिम पर आगे बढ़ें, मैं उन समस्याओं के लिए कोई ज़िम्मेदारी नहीं लेता जो आप इस सेटिंग का उपयोग कर सकते हैं!

हमारे साथ अपने काम को साझा करने के लिए धन्यवाद


यह एक दिलचस्प विचार है। मुझे यकीन नहीं है कि यह ProgramArgumentsसरणी में एक से अधिक कार्यक्रम डालने के लिए "कानूनी" है , लेकिन यह निश्चित रूप से एक शॉट के लायक है। क्या आपने इसे आज़माया है?
ई। जम्स

क्षमा करें, मेरी पिछली पोस्ट में एक त्रुटि है, मेरा विचार निम्न कमांड लाइन को चलाने के लिए था (नोट && जो गायब था) ध्यान दें: Wait4path / Volumes / Swap / && / sbin / dynam_pager -F /Volumes-Swap/.vm/swapfile अगर किसी को उस लाइन को "प्रारूपित" करने का कोई तरीका मिल जाता है जिससे कि लॉन्च को यह पसंद आएगा, तो मुझे लगता है कि इसे काम करना चाहिए (मैं इसके बारे में सोच रहा हूं, शायद कॉलिंग / बिन / बैश को एक तर्क के रूप में पारित कर सकता हूं?) कार्यक्रम और ProgramArguments फ़ील्ड के बारे में और स्पष्टीकरण लॉन्चड.प्लेस्ट मैनपेज में उपलब्ध हैं, और इससे निष्पादन (3) मैनपेज प्राप्त होगा। मैं पढ़ रहा हूं और सोच रहा हूं, अगर कोई तेज है तो कृपया पोस्ट करें :)
ekl

मैंने पिछली पोस्ट को एक समाधान के साथ संपादित किया जो काम करना चाहिए, कृपया टिप्पणी करें यदि आपको किसी प्रकार की त्रुटि दिखाई देती है या जो भी ठीक से काम नहीं कर सकता है, धन्यवाद!
ekl

मैंने इसे अपने लैपटॉप पर आज़माया, और यह काम करने लगता है। मैं निश्चित रूप से कुछ दिनों के लिए इस पर नज़र रखूंगा, लेकिन ऐसा लगता है कि आपने पूरी प्रक्रिया को बेहद सरल बना दिया है! अच्छा काम:)
e.James

आपकी सरल विधि मेरे लैपटॉप पर एक आकर्षण की तरह काम कर रही है। धन्यवाद! मैं आपके समाधान को शामिल करने के लिए मुख्य प्रश्न को अपडेट करूंगा।
e.James

2

मुझे पता है कि इस लेख को लिखे जाने में कुछ समय हो गया है, लेकिन मुझे लगा कि मैं अपनी छोटी सी चीज को यहां उन लोगों के लिए जोड़ दूंगा जो इस तरह से करना चाहते हैं ...

मैंने अपनी स्वैप फ़ाइलों को किसी अन्य आंतरिक ड्राइव पर स्थानांतरित करने के लिए उपरोक्त चाल का उपयोग किया है (मेरी बूट ड्राइव एमएलडी चिप्स के साथ एसएसडी है, इसलिए चलती vm बंद जीवन प्रत्याशा को बचा सकती है)। वैसे भी, नए वॉल्यूम को बनाने के बाद मैंने फाइंडर में एक स्वैप वॉल्यूम दिया था जिसे मैं कभी भी फाइंडर में उपयोग नहीं करने जा रहा हूं, इसलिए मैंने फाइंडर को वॉल्यूम को अदृश्य बनाने का फैसला किया। आपको Apple के डेवलपर टूलकिट की आवश्यकता है। फिर टाइप करें:

/Developer/Tools/SetFile -a V /Volumes/Swap/

… और अपने वॉल्यूम का नाम / वॉल्यूम / स्वैप जो भी आपने नाम दिया है उसे बदलें। फाइंडर और प्रेस्टो को फिर से शुरू करें, फाइंडर में अधिक स्वैप वॉल्यूम नहीं!


1

आप माउंट करने के लिए प्रतीक्षा करने के लिए Wait4path का उपयोग कर सकते हैं; अन्यथा, लॉन्चड आपके डायनेमिक_पेजर_इनिट स्क्रिप्ट को तब तक और फिर से चालू करेगा जब तक कि वह ऐसा नहीं करता ...


प्रतिभाशाली! मैंने / संयोजन के wait4pathबजाय उपयोग किया , और यह काफी अच्छी तरह से चीजों को साफ करता है। टिप के लिए धन्यवाद। ifgrep
ई.जम्स

1

शायद हम उन लोगों के लिए गंदे काम करने के लिए Xupport का उपयोग कर सकते हैं :) http://www.applicorn.com/

वर्चुअल मेमोरी ऑप्टिमाइज़र:

स्वैप फ़ाइलों का स्थान बदलें मैक ओएस एक्स में वर्चुअल मेमोरी जानकारी तथाकथित "स्वैफिल्स" में संग्रहीत की जाती है। क्योंकि स्वैपफाइल्स सबसे इंटरैक्टिव सिस्टम फाइलें हैं, इसलिए उन्हें अलग विभाजन पर रखना समझ में आता है। अपने सबसे तेज़ आंतरिक हार्ड डिस्क के पहले विभाजन पर स्वैप फ़ाइलों को संग्रहीत करने की अनुशंसा की जाती है। अनुशंसित न्यूनतम विभाजन आकार भौतिक अंतर्निहित मेमोरी आकार (जैसे 1 जीबी भौतिक मेमोरी = 4 जीबी स्वैप विभाजन) की तुलना में लगभग 3 या 4 गुना कम होना चाहिए। एक इष्टतम प्रणाली के प्रदर्शन के लिए सिफारिशें और निर्देश:

1. एफआईएसटी विभाजन (मैक ओएस एक्स स्थापित डीवीडी का उपयोग करके) के रूप में एक स्वैप वॉल्यूम के साथ अपनी हार्ड डिस्क को फिर से विभाजित करें। चेतावनी: एक हार्ड डिस्क की पुन: पार्टिशनिंग सभी मौजूदा डेटा को पूरा करेगी!

2. अपने सिस्टम डेटा को पुनर्स्थापित करें या सिस्टम विभाजन पर नई प्रणाली स्थापित करें।

3. सिस्टम विभाजन से बूट करें।

4. यदि आप चाहते हैं कि आपके स्वैप की मात्रा खोजक के लिए अदृश्य हो: • Xupport लॉन्च करें और "सेटिंग" चुनें • "छिपी हुई फ़ाइलें और फ़ोल्डर्स दिखाएं" सक्षम करें और खोजक को पुनरारंभ करें • स्वैप की मात्रा को "स्वैप" से ".swap" में बदलें। (डॉट इसे खोजक के लिए अदृश्य बनाता है) • "छुपी हुई फ़ाइलें और फ़ोल्डर्स दिखाएँ" अक्षम करें और फ़ाइंडर को फिर से शुरू करें

5. "स्वैप स्टोरेज वॉल्यूम" के तहत नए स्वैप विभाजन का चयन करें। फिर, नई स्वैप फ़ाइल स्थान सेटिंग (आवश्यक पुनरारंभ करें) को लागू करने के लिए "सेट" बटन दबाएं।

BTW, यह मेरे लिए काम करता है। स्नो लेपर्ड 10.6.2 @ मैकबुक प्रो 2.4GHz, 4 जीबी रैम, 500 जीबी एचडी


उम्मीद तो दिखती है। लिंक और विस्तृत निर्देशों के लिए धन्यवाद!
ई.जेम्स


1

यह सबसे अधिक संभावना है कि एक अवांछित उत्तर है (क्योंकि मैं डायगो के बाद टिप्पणी नहीं कर सकता), लेकिन आप वास्तव में यह क्यों कहते हैं कि यह छोटे प्रदर्शन लाभ देगा? मैं ऐप्पल फ़ोरम पर एक चर्चा से गुज़रा हूं और निष्कर्ष यह निकला कि यह बिल्कुल अच्छा विचार नहीं है। और मैं इसे छोड़ने पर बहुत प्रतिरोधी था। क्या आप यह साबित कर सकते हैं कि डेटा कम से कम अपने लिए है या यह सिर्फ एक "एहसास" है?

हर बार जब मैंने 10 साल पहले भी लिनक्स पर स्वैप का इस्तेमाल किया था, और आजकल ubuntu पर, मैं कभी भी प्रदर्शन में सुधार नहीं देख सकता था। यह चाहने का मेरा कारण ओएसएक्स पर मुक्त स्थान के साथ मुद्दों को रोकना था, और लिनक्स पर, हाइबरनेट करने में सक्षम होने के लिए। यह सब मेरे लिए अदला-बदली है।

लेकिन मैंने वास्तव में कभी भी अपने दम पर या इंटरव्यू में गहन शोध नहीं किया है।


यह एक वैध आलोचना है। मेरे पास मेरे दावों का समर्थन करने के लिए कोई डेटा नहीं है :)
e.James

ठंडा। तो, आखिरकार, आप इस सारी परेशानी से भी गुजर सकते हैं! : पी
क्रैगॉक्स

1

यह एक उत्तर नहीं है, लेकिन शायद एक बहुत उपयोगी अनुवर्ती पूरक है। Apple यहाँ एक मुफ्त plist संपादक प्रदान करता है PlistEdit Pro । यह आपको इन फ़ाइलों को सुरक्षित रूप से संपादित करने की अनुमति देता है। ऐसा लगता है जैसे आप मान को तर्क के साथ बदल सकते हैं / निजी / var / vm / swapfile को कुछ इस तरह से / Volumes / OtherDrive / vm / myswapfilename स्वैप फ़ाइलों को कहीं और स्थानांतरित करने के लिए ...

दोबारा मैंने इसका परीक्षण नहीं किया है ...


यह एक अच्छा विचार है, और पहली बात जब मैंने इस मार्ग से नीचे जाना शुरू किया था। समस्या यह है कि डायनामिक पेजर लॉन्च होने के समय स्वैप बिंदु हमेशा उस बिंदु पर नहीं लगाया जाता है। नोट # 1 में देखें कि मैं क्या मतलब है, इस बारे में जानकारी के लिए।
e.James
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.