स्थिति: Out of Memory
उबंटू के मतलाब
लक्ष्य में त्रुटियों को ठीक करें: बाहरी HDD / SSD पर कुछ वर्चुअल मेमोरी और / या स्वैप आवंटित करें; 20 जीबीपीएस से 0.1 जीबीपीएस तक की रीड / राइट की कमी, जो ठीक है!
शब्दावली: यहां स्वैप और वर्चुअल मेमोरी है
नहीं, स्वैप और वर्चुअल मेमोरी पूरी तरह से अलग हैं। उदाहरण के लिए, 1GB फ़ाइल की मैपिंग करने पर अतिरिक्त 1GB वर्चुअल मेमोरी का उपयोग होता है लेकिन स्वैप के उपयोग में कोई बदलाव नहीं होता है। स्वैप बैकिंग स्टोर का एक रूप है। वर्चुअल मेमोरी के कई उपयोगों का बैकिंग स्टोर से कोई लेना-देना नहीं है। (और वर्चुअल मेमोरी और नो स्वैप के साथ-साथ स्वैप के साथ सिस्टम हैं लेकिन वर्चुअल मेमोरी नहीं है।)
उपभोक्ता हार्डवेयर सीमित है इसलिए मुझे अपने बाहरी एचडीडी के साथ अधिक वर्चुअल मेमोरी और / या स्वैप का उपयोग करने की आवश्यकता है। Matlab स्वैप मेमोरी के बारे में कहते हैं (TODO वर्चुअल मेमोरी को छोड़कर?)
लिनक्स सिस्टम -
mkswap
औरswapon
कमांड्स का उपयोग करके अपने स्वैप स्थान को बदलें ।
प्रणाली के लक्षण
आप देख सकते हैं कि आपके पास यह कितना है
swapon -s
Filename Type Size Used Priority /dev/sda3 partition 8326140 0 -1
मतलाब का विन्यास
% /programming//a/35971040/54964 com.mathworks.services.Prefs.setIntegerPref('JavaMemHeapMax', 2048); % MB % TODO cannot find ways how to put Matlab use /dev/sda3
इसलिए आप देखते हैं कि मेरा मतलाब इसका इस्तेमाल नहीं कर रहा है। मुझे
Out of Memory
मतलाब में बड़े मैट्रिस के साथ त्रुटियां मिलती हैं। मैंreshape
वैक्टर के लिए आईएनजी मेट्रिसेस में असफल रहा हूं और समानांतर कोड लिख रहा हूं । इसलिए मैं आभासी मेमोरी का उपयोग करना चाहता हूं क्योंकि मुझे काम करने की आवश्यकता है; दर कोई फर्क नहीं पड़ता।
स्यूडोकोड
- शेल स्क्रिप्ट जो स्वैप बनाता है, MATLAB शुरू करें, और MATLAB बाहर निकलने पर स्वैप हटा दें। ( माइकल हाउमैन )
- बाहरी एचडीडी पर स्वैप सक्षम करें।
sudo swapon -a
यहाँ कैसे उपयोग करें? - मतलाब शुरू करो।
- मतलाब को स्वैप का उपयोग करें।
- मतलब के बाहर निकलने पर स्वैप हटाएं।
टेंपरेरी स्वैप, रनिंग क्लायंट और क्लोजिंग / रिमूवल स्वैग इन मिकेल की स्क्रिप्ट
स्थिति : पर्यावरण को स्थापित करने में त्रुटियों को नियंत्रित नहीं कर सकता (1), मतलाब (2) को चलाने और पर्यावरण को बंद करने (3)
स्क्रिप्ट
#!/usr/bin/env bash
# /programming//a/69808/54964
set -e
# TODO How to do swapoff if any error?
SWAP_FILE="/media/masi/SamiSwapVirtual/.swap_file_20.7.2016"
SIZE_MB=16000
TO_RUN="matlab"
dd if="/dev/zero" of=${SWAP_FILE} bs="1M" count=${SIZE_MB} status="progress"
mkswap ${SWAP_FILE}
chmod 0600 ${SWAP_FILE}
sudo chown 0.0 ${SWAP_FILE} # /unix//a/297153/16920
sudo swapon -v ${SWAP_FILE}
echo "Swap enabled. Press enter to continue"; read
${TO_RUN}
echo "I will remove the swap. Press enter to continue"; read
sudo swapoff -v ${SWAP_FILE}
rm -vf ${SWAP_FILE}
Iteration 1 को Transcend 25M3 1 TB के साथ थोड़े से उपयोग के लिए जहाँ फाइल सिस्टम है ext4
स्क्रिप्ट शुरू करने के बाद लॉग करता है
sh start_matlab_with_swap.sh 16000+0 records in 16000+0 records out 16777216000 bytes (17 GB, 16 GiB) copied, 134.489 s, 125 MB/s Setting up swapspace version 1, size = 15.6 GiB (16777211904 bytes) no label, UUID=48c2835b-4499-4534-aa49-0648e15bd5d9 [sudo] password for masi: swapon /media/masi/SamiWeek/tmp/swap_file_18.7.2016 swapon: /media/masi/SamiWeek/tmp/swap_file_18.7.2016: insecure file owner 1000, 0 (root) suggested. swapon: /media/masi/SamiWeek/tmp/swap_file_18.7.2016: found swap signature: version 1d, page-size 4, same byte order swapon: /media/masi/SamiWeek/tmp/swap_file_18.7.2016: pagesize=4096, swapsize=16777216000, devsize=16777216000 Swap enabled. Press enter to continue start_matlab_with_swap.sh: 11: read: arg count
ग्राहक चला रहा है
कमांड हिस्ट्री मैटलैब की पहली शुरुआत में स्वैप मेमोरी (टिकट # 02075943) में चली गई, त्रुटि के साथ आपके कमांड हिस्ट्री को पढ़ने में समस्या थी - - । बस अपने Matlab को पुनरारंभ करें और यदि आपके पास डिफ़ॉल्ट सेटिंग्स हैं तो समस्या हल हो गई है। कमांड
prefdir
देता है/home/masi/.matlab/R2016a
जो डिफ़ॉल्ट स्थान है (/home/{username}/.matlab/R2016a
। फ़ाइल/home/masi/.matlab/R2016a/matlab.prf
पुनरारंभ होने के बाद यहां मौजूद है ।... [अन्य त्रुटियाँ] ...
Matlab को बंद करना और टर्मिनल में फिर से पासवर्ड टाइप करना
[sudo] password for masi: swapoff /media/masi/SamiWeek/tmp/swap_file_18.7.2016 [ bugs here! ]
ओपन: यहां फंसे त्रुटि के बेहतर त्रुटि-हैंडलिंग को कैसे लागू करें? स्रोत में उदाहरण के लिए मेरी स्क्रिप्ट देखें। थ्रेड कैसे करें त्रुटि-फँसाने और यदि त्रुटि / चेतावनी स्वैप?
स्थायी स्वैप = रनिंग क्लाइंट से अलग स्वैप सेटअप
स्वैप की स्थापना
# /unix//q/297767/16920
masi@masi:~$ sudo fallocate -l 20G /mnt/.swapfile
masi@masi:~$ sudo mkswap /mnt/.swapfile
Setting up swapspace version 1, size = 20 GiB (21474832384 bytes)
no label, UUID=45df9e48-1760-47e8-84d7-7a14f56bbd72
masi@masi:~$ sudo swapon /mnt/.swapfile
swapon: /mnt/.swapfile: insecure permissions 0644, 0600 suggested.
masi@masi:~$ sudo chmod 600 /mnt/.swapfile
masi@masi:~$ free -m
total used free shared buff/cache available
Mem: 7925 1494 175 196 6255 5892
Swap: 28610 0 28610
/etc/fstab
स्थायी परिवर्तन के लिए अंत में निम्नलिखित रखें
# /unix//a/298212/16920
# /unix//a/298543/16920
# If swap is on SSD, trim blocks each time at startup.
#/mnt/.swapfile none swap defaults,discard 0 0
# If swap on External HDD, just use sw.
/media/masi/SamiWeek/.swapfile none swap sw 0 0
सिस्टम: लिनक्स उबंटू 16.04 64 बिट
लिनक्स कर्नेल: 4.6
लिनक्स कर्नेल विकल्प: wl
Matlab: 2016a
आधिकारिक मैटलैब डॉक्स: "आउट ऑफ मेमोरी" त्रुटि
बाहरी एचडीडी: 1 टीबी स्टोरजेट 25M3 की समीक्षा करें: 2 टीबी स्टोरजेट 25 एम 3
बाहरी एचडीडी फाइल सिस्टम को पार करें : ext4
बाहरी HDD बफर: 8 एमबी
संबंधित सूत्र: ubuntu में MATLAB मेमोरी सीमा कैसे बढ़ाएं? (MATLAB के लिए mkswap, swapon का उपयोग कैसे करें?) , Matlab में भौतिक स्मृति में वृद्धि कैसे कम करें? , मैटलैब में मेमोरी एरर को कैसे हल करें? , 10800x10800 मैट्रिक्स के लिए मतलाब में मेमोरी त्रुटि कैसे ठीक करें? ,मैं Matlab r2012b में मेमोरी लिमिट (कुल मिलाकर और साथ ही) कैसे बढ़ाता हूं? , कैसे Matlab 2009b में Array Block बढ़ाएँ और मेमोरी एरर से बाहर हल करें? , मतलाब में एक छोटे चर के लिए इस आउट ऑफ मेमोरी इश्यू को कैसे हल करें? , मतलब में 'मेमोरी से बाहर'। एक धीमी लेकिन एक स्थायी समाधान?