मैं अपने लिनक्स डेस्कटॉप को अधिक उत्तरदायी कैसे बना सकता हूं?


30

मेरा अनुभव है कि जब तक भौतिक मेमोरी समाप्त नहीं हो जाती है तब तक लिनक्स ठीक काम करता है। जैसे ही स्वैप स्पेस का उपयोग किया जाता है, प्रदर्शन गंभीर रूप से खराब हो जाता है और जीयूआई अनुत्तरदायी हो जाता है।

यह समस्या एक विशिष्ट डिस्ट्रो या डेस्कटॉप तक सीमित नहीं है, क्योंकि मैंने कुछ कोशिश की है (और समस्या बनी हुई है)।

इस बारे में क्या किया जा सकता है?


यह लिनक्स कर्नेल के साथ एक ज्ञात मुद्दा है ... मेरा मानना ​​है कि मैंने पढ़ा है कि हाल ही में एक पैच इसे ठीक करने के लिए प्रतिबद्ध था। उस के लिए एक संदर्भ के लिए देख रहे हैं ...
xenoterracide

1
यह लेख और इस एक Phoronix पर मैं क्या करने की सोच रहा था ... मुझे लगता है।
xenoterracide

मूल रूप से उन लेख पैच के बारे में बात करते हैं जो 2.6.36 में जा रहे हैं ताकि जब वह निकल जाए (जब तक कि आप आरसी या मास्टर से चलाने की हिम्मत न करें)
xenoterracide

आपके पास कितना रैम है? आप कौन से कार्यक्रम चलाते हैं जो बहुत भूखे हैं? वी एम का? JVM?
tshepang

मेरे पास 8GB रैम है और अपराधी सामान्य ऐप हैं (फ़ायरफ़ॉक्स और क्रोम जैसे
वेबबस्टर

जवाबों:


15

मैं पढ़ने का सुझाव SwapFAQ , विशेष रूप से swapiness पैरामीटर।


3
+1, स्वैप एक बैंड-सहायता है जिसका हम उपयोग नहीं करने की उम्मीद करते हैं ...
Avery Payne

1
मैंने बिना किसी सफलता के साथ स्वैग के लिए अलग-अलग सेटिंग्स की कोशिश की है। मैंने यह भी देखा है, कि स्वैग के मूल्य के बारे में राय बिल्कुल भी एकीकृत नहीं है। डेस्कटॉप के लिए कुछ 10, अन्य 100 की सिफारिश करते हैं, जिसका अर्थ है कि वे सुझाव देते हैं कि वे कुल विपरीत प्रभाव का सुझाव दें।
txwikinger

1
आगे के परीक्षणों के बाद, मैं सलाह देता हूं कि या तो 100 स्वपन का उपयोग न करें और न ही 0. दोनों ने ऐसी परिस्थितियां पैदा की हैं, जिसमें डेस्कटॉप एक अदला-बदली की सनक में आ गया, जिसमें 20 मिनट से अधिक समय तक पैनल क्लॉक भी बंद था।
txwikinger 17

11

कुछ संकेत:

  1. एक साथ कई GUI कार्यक्रम न चलाएं।
  2. सुनिश्चित करें कि पृष्ठभूमि में चल रहे किसी भी प्रोग्राम को जिसकी आपको आवश्यकता नहीं है जैसे कि Apache को रोका गया है।
  3. कम-मेमोरी स्थितियों (जैसे नेटबुक के लिए) के लिए एक डिस्ट्रो का उपयोग करें
  4. अधिक मेमोरी खरीदें।
  5. अपने स्वैप विभाजन के लिए एक तेज़ HD (या SSD) खरीदें। :)


2
आधुनिक एसएसडी के साथ पूरी प्रणाली अप्रचलित होने की संभावना है और एसएसडी के मरने से पहले प्रतिस्थापन के लिए तैयार है। यह वास्तव में इन दिनों के बारे में चिंता करने लायक नहीं है। बेशक, अभी भी आवश्यक है क्योंकि एक डिस्क - एसएसडी या मैकेनिकल - किसी भी समय मर सकता है।
कैस

4

अधिक मेमोरी खरीदें? :)

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


3
मेरे पास पहले से ही अधिकतम रैम है। मैं कुछ ट्वीक जानना चाहूंगा जो स्वैपिंग को अधिक कुशल बनाता है।
txwikinger

1
मैंने पाया है कि स्वैप पूरी तरह से अक्षम हो जाता है जिससे सिस्टम तेजी से प्रतिक्रिया करता है। एप्लिकेशन को कर्नेल द्वारा सूचित किया जाता है कि उनके पास स्मृति नहीं है और तदनुसार प्रतिक्रिया करें।
14

3
@cjac: यह आमतौर पर मामला नहीं है। आप ऐसा करने के लिए कर्नेल को कॉन्फ़िगर कर सकते हैं, लेकिन डिफ़ॉल्ट रूप से यह ओवरकॉमिट होगा (अपनी ऐप मेमोरी दें जो आपके सिस्टम में नहीं है)। जैसे ही कोई ऐप मेमोरी को छूता है और कर्नेल को और अधिक नहीं मिल पाता है, मेमोरी किलर एक या अधिक प्रक्रियाओं को समाप्त कर देगा।
क्रिस्टोफ़ प्रोवोस्ट

@txwikinger कारण है कि स्वैपिंग धीमा है क्योंकि रैम की गति इतनी तेज है कि हार्ड डिस्क। रैम की खोज का समय नैनोसेकंड (10 ^ -9) में मापा जाता है। एचडीडी के समय को मिलीसेकंड (10 ^ -3) में मापा जाता है। यह परिमाण के छह आदेश हैं, दूसरे शब्दों में रैम स्वैप की तुलना में दस लाख गुना तेज है। आपका प्रश्न यह पूछने जैसा है कि एक कॉनकॉर्ड जेट के रूप में साइकिल को कैसे तेज किया जाए। आप नहीं कर सकते।
बहमट 9:11

1
@bahamat। आप स्पष्ट बता रहे हैं, लेकिन यह समस्या नहीं है। समस्या यह है कि स्वैपिंग बहुत अप्रभावी रूप से की जाती है, और इसलिए दार्शनिक की समस्या की दिशा में कुछ बनाता है।
txwikinger 17

2

कर्नेल चर 'vm.swappiness' और 'vm.page-क्लस्टर' के मानों को और अधिक उपयुक्त मानों में बदलने का प्रयास करें।

  1. एक टर्मिनल एमुलेटर शुरू करें।
  2. cd /etc/sysctl.d/
  3. sudo echo "vm.swappiness = 0" > 60-memory-management.conf
  4. sudo echo "vm.page-cluster = 1" >> 60-memory-management.conf
  5. sudo chmod 644 60-memory-management.conf
  6. रीबूट।

जांचें कि क्या नए मूल्य उपयोग में हैं:

  1. cat /proc/sys/vm/swappiness
  2. cat /proc/sys/vm/page-cluster

1

स्वैपिंग से प्रदर्शन में कोई कमी नहीं आएगी, इसलिए यह पूरी तरह से बचना सबसे अच्छा है। यह बेवकूफ लग सकता है, लेकिन एक विकल्प स्वैप विभाजन को कॉन्फ़िगर नहीं करना है। मैं पिछले कुछ समय से अपने सभी सिस्टम पर स्वैप-फ्री चल रहा हूं:

  • नेटबुक पर 1 जीबी वेब ब्राउज़ करने, संगीत सुनने और अन्य हल्के सामान के लिए पर्याप्त है।
  • मेरे डेस्कटॉप पर 4 जीबी उपरोक्त सभी चीजों के साथ-साथ विकास (यहां तक ​​कि ग्रहण में) और बुनियादी छवि संपादन के लिए पर्याप्त है।

यदि आप कुछ ऐसा करते हैं जो वास्तव में मेमोरी सघन है (बड़े चित्रों के साथ जिम्प, 3 डी मॉडलिंग, सीएडी) की तुलना में आपको शायद कुछ रैम खरीदना चाहिए।


हाँ। मैं धीरे-धीरे उसी निष्कर्ष पर आता हूं। मुझे लगता है कि जिस तरह से लिनक्स कर्नेल स्वैप डेस्कटॉप के लिए बहुत कुशल नहीं है (सर्वर पर यह सब ठीक काम करता है)। इसलिए, शायद सिफारिशें डेस्कटॉप पर सभी स्वैप स्थान को अक्षम करने के लिए होनी चाहिए। Btw। मैं
21GB पर

1
@txwikinger: क्या मैं पूछ सकता हूं कि सर्वर पर यह ठीक क्यों है?
फुनेहे

1

आप कंपकंपी की कोशिश कर सकते हैं , अगर आप यह पता लगा सकते हैं कि इसे अपने डिस्ट्रो में कैसे सेट किया जाए। उदाहरण के लिए, उबंटू पर, आप इसे /etc/initramfs-tools/initramfs.conf और "COMPCACHE_SIZE" पंक्ति को संपादित करके सक्षम कर सकते हैं ।

मुझे नहीं लगता कि मेरे ऑन-डिस्क स्वैप को एक बार छुआ गया है क्योंकि मैंने कॉम्पैस को सक्षम किया है। यहाँ मेरे वर्तमान स्वैप आँकड़े हैं:

% swapon -s
Filename                                Type            Size    Used    Priority
/dev/ramzswap0                          partition       1028084 69504   100
/dev/sda5                               partition       3148668 0       -1

ध्यान दें कि कॉम्पैक डिवाइस (ramzswap0) का उपयोग किया जाता है, और ऑन-डिस्क डिवाइस (sda5) नहीं है।


0

तेजी से रैम खरीदें और सुनिश्चित करें कि आपका सिस्टम इसका उपयोग कर रहा है। आप किस CPU और आर्किटेक्चर का उपयोग कर रहे हैं?


कैसे करता है कि लिनक्स प्रणाली tweak? हार्डवेयर परिवर्तन या सुधार यहाँ मुद्दा नहीं है।
txwikinger

यह संभव है कि आपका लिनक्स इंस्टाल इसमें उपलब्ध सभी हार्डवेयर का उपयोग नहीं कर रहा है। यह एक प्रदर्शन समस्या है और आपने पिछली टिप्पणी में कहा है कि आप अपनी अधिकतम रैम सीमा पर हैं। अपने कॉन्फ़िगरेशन के बारे में अधिक जानकारी के बिना बेहतर हार्डवेयर लेने के लिए एक आसान मार्ग है।
माइक एच

1
"लिनक्स सिस्टम" हार्डवेयर और सॉफ्टवेयर से बना है। मेमोरी जोड़ना सिस्टम को "ट्विक करना" है।
cjac

लिनक्स सॉफ्टवेयर है जो हार्डवेयर पर चलता है। लिनक्स के अंदर हार्डवेयर शामिल नहीं है: p
txwikinger

1
मुझे लगता है कि अधिक राम तेजी से अधिक उपयुक्त है ... रैम की गति मोबो द्वारा आमतौर पर सीमित होती है ...
xenoterracide

0

मैं अपनी स्क्रीन के दाईं ओर एक डॉक में सिस्टम मॉनिटर एप्लेट चलाता हूं। किसी भी समय जब सिस्टम सुस्त महसूस करता है, तो मैं मीटरों पर एक नज़र डालता हूं। यदि कुछ भी 10% से अधिक क्षमता पर चल रहा है, तो यह एक संकेत है कि एक प्रक्रिया हाथ से निकल रही है।

यदि आप सिस्टम मॉनिटर पर क्लिक करते हैं, तो आप उन प्रक्रियाओं को खोद सकते हैं जो आपके सिस्टम पर संसाधनों का उपभोग कर रही हैं।

http://www.colliertech.org/~cjac/tmp/screenies/system_monitor.png


1
अधिकांश सिस्टम मॉनिटर सिर्फ एक धीमी प्रणाली को नीचे खींचते हैं और यह श्रोडिंगर की बिल्ली है। बढ़ती स्मृति के बिना उसे स्मृति लीक को ठीक करना होगा या अनावश्यक कार्यक्रमों को ट्रिम करना होगा जो चल रहे हैं।
jjclarkson

0

कुछ साल पहले यह स्वैप के लिए एक समर्पित ड्राइव का उपयोग करने के लिए सामान्य था, जबकि यह स्वयं आईडीई / एटीए बस से जुड़ा हुआ है - उसी ड्राइव पर चारों ओर डेटा स्वैपिंग बस प्रदर्शन के संदर्भ में कोई मतलब नहीं था।

उस चाल ने दस साल पहले काम किया था, लेकिन अब ड्राइव गति के साथ आपको वास्तव में ऐसे व्यस्त प्रदर्शन में गिरावट नहीं देखनी चाहिए, जब तक कि आप कांग्रेस के पुस्तकालय को स्वैप नहीं कर रहे हैं, अन्यथा मैं आपके ड्राइव के स्वास्थ्य के बारे में चिंतित हूं - क्या आपने हाल ही में जाँच की है?

आप हमेशा यह कोशिश कर सकते हैं, अगर आपके रैम पहले से अधिकतम हो तो आपके पास ज्यादा विकल्प नहीं हैं। अगर कुछ भी मुझे आशा है कि यह आपके जीयूआई को अधिक उत्तरदायी बनाता है।


डेस्कटॉप के लिए बहुत सारे उपयोग इस विकल्प को नहीं देते हैं क्योंकि वे लैपबुक, या नेटबुक हैं जो दूसरी ड्राइव की अनुमति नहीं देते हैं।
txwikinger

@txwikinger स्पष्ट रूप से सच है, लेकिन मैंने प्रश्न के शीर्षक पर विचार किया, जो "डेस्कटॉप" पढ़ता है, अन्यथा मैंने यह सुझाव नहीं दिया होता अगर एक लैपटॉप का विशेष रूप से उल्लेख किया गया होता :-)
पलटना

खैर .. मेरा मतलब है कि सर्वर से अलग करने के लिए डेस्कटॉप, जहां मेरा मानना ​​है कि स्वैपिंग काफी अच्छी तरह से काम करती है। :)
txwikinger

0

राम की एक अच्छी मात्रा के साथ अपने नेटवर्क पर एक दूसरे लिनक्स सिस्टम को स्थापित करें, एनएफएस इसे अपने मुख्य सिस्टम पर माउंट करें, और उस पर स्वैप फ़ाइल डालें।


1
गीगाबिट ईथरनेट के साथ, यह एक midrange SSD की तुलना में बहुत धीमा होने वाला है, और मुझे यकीन नहीं है कि अगर आप 7200rpm हार्ड डिस्क की गति तक भी पहुंच सकते हैं। हो सकता है कि फायरवायर के साथ आप स्थानीय स्वैप की गति तक पहुंच सकें। लेकिन यह केवल रैम को जोड़ने के लिए अधिक प्रभावी होगा।
गाइल्स का SO- बुराई पर रोक '21

0

एक तरीका एक अनुकूलित कर्नेल का उपयोग करके है ।


कृपया केवल लिंक पोस्ट न करें; कुछ संदर्भ शामिल करें ताकि, जिस साइट को आप नीचे जाने के लिए लिंक कर रहे हैं, उत्तर को सार्थक बनाने के लिए यहां पर्याप्त जानकारी हो।
जसोनव्रीयन

0

कई वर्षों के अनुभव के लिए, मैं आपको बता सकता हूं कि ट्वीक करने के लिए बहुत कुछ नहीं है

लेकिन, मैंने हाल ही में जो कुछ किया, उससे बहुत मदद मिली।

1

मैं उबंटू से आर्क लिनक्स, यूनिटी / गनोम से लेकर एक्सफ़स डेस्कटॉप तक ले गया।

उबंटू हर जगह से घातक धीमा है। बूट / ग्राफिक्स .. धीमा।

2

मैंने एक इंटेल एसएसडी (80 ग्राम) खरीदा, और उस पर अपना रूट सिस्टम लगाया।

माई आर्क लिनक्स + एक्सएफसीई 4 + डॉकई + शंकु, 10 सेकंड में जूते (एलएक्सडीएम के साथ ऑटो लॉगिन), एसएसडी पर स्थापित सभी एप्लिकेशन, जैसे माटलैब, बहुत तेजी से शुरू होता है।

इसके लायक पैसा।

3

कहीं और अपना / tmp बनाओ, मैं इसके लिए सीमित आकार के रैमडिस्क का उपयोग करता हूं, जिससे कि रूट फाइलसिस्टम को खुजलाया जा सके

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.