ফ্রি র‌্যাম থাকলে কীভাবে অদলবদল খালি করা যায়?


314

আমি যখন র‌্যাম-ইনটেনসিভ অ্যাপ্লিকেশনটি খুলি (ভার্চুয়ালবক্স 2 গিগাবাইট র‌্যামে সেট করি) তখন কিছু অদলবদল সাধারণত ব্যবহার করা হয়, যা আমার সময়ে আর কী খোলা ছিল তার উপর নির্ভর করে।

যাইহোক, আমি যখন শেষ অ্যাপ্লিকেশনটি ছেড়ে দিই, 2 গিগাবাইট র‌্যাম মুক্ত হয় তবে একই অদলবদলের স্পেস ব্যবহার বাকি।

উদাহরণস্বরূপ, এখনই, ভার্চুয়ালবক্স বন্ধ করার প্রায় দুই ঘন্টা পরে, আমার কাছে 1.6 জিবি ফ্রি র‌্যাম রয়েছে এবং এখনও ap70০ এমবি অদলবদলে রয়েছে।

উবুন্টুকে আমি কীভাবে বলতে পারি যে সেই অদলবদল বন্ধ করা এবং র‌্যাম ব্যবহার করাতে ফিরে যেতে?


সবচেয়ে সহজ জিনিসটি আপনার ডিভাইসটিকে রিবুট করুন এবং ল্যাপটপ এবং সিপিইউ তাপমাত্রার শক্তি সাশ্রয় করে র্যাম এবং ফ্রি র্যামের সাথে লড়াইয়ের সময় সাশ্রয় করুন
মোহাম্মদ স্লামা

5
বড় অনুমান যে আপনার কম্পিউটারে সমস্ত জিনিস পুনরায় তৈরি করতে এর চেয়ে কম সময় লাগে।
jQwierdy

উবুন্টু ১.0.০৪, কমপক্ষে, অদলবদলের দীর্ঘায়িত হওয়ার পরেও এটি ব্যবহার করা চালিয়ে যেতে পারে এভাবে প্রয়োজনের পরে আর কোনও প্রয়োজন না সত্ত্বেও অদলবদলের উপর নির্ভর করে আপনার সিস্টেমের ক্রমকে ধীর করে দেয়। ম্যানুয়াল হস্তক্ষেপ তাই দরকারী দ্বারা। রিবুট করা সর্বদা একটি বিকল্প নয়।
ম্যাট

উত্তর:


167

সোয়াপ বরাদ্দ হওয়ার কারণে, এর অর্থ এটি ব্যবহৃত হচ্ছে না। সিস্টেম মনিটর এবং শীর্ষের মতো প্রোগ্রামগুলিতে আপনার কিছু অদলবদল বরাদ্দ হবে (আপনার উদাহরণস্বরূপ 770MB) এর অর্থ এই নয় যে সিস্টেমটি সক্রিয়ভাবে আউট / আউট চলছে।

কিছু আউট / আউট হয়ে চলেছে কিনা তা জানতে আপনি vmstatকমান্ডটি ব্যবহার করতে পারেন । এটি স্থির করতে কয়েক সেকেন্ড দৌড়াতে ছেড়ে দিন এবং si(সোয়াপিন) এবং so(স্যুইপআউট) কলামগুলি দেখুন। যদি কিছু না ঘটে থাকে তবে উদ্বিগ্ন হওয়ার কোনও কারণ নেই।

এখানে চলমান আউটপুট vmstat 1, আপনি দেখতে পারেন আমার মেশিনটি অদলবদল হয় না।

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0  78588 230788   9596  72196    0    0     0     0  543  652 12  6 78  0
 0  0  78588 230780   9596  72196    0    0     0     0  531  410  1  0 99  0
 0  0  78588 230796   9596  72196    0    0     0     0  300  335  1  1 97  0
 1  0  78588 230788   9608  72224    0    0    40     0  737  762  4  4 84  8
 5  0  78588 230788   9608  72224    0    0     0     0  415  385  9  3 84  0
 0  0  78588 230540   9616  72224    0    0     0    44  611  556 55  5 31  0
 0  0  78588 230532   9616  72224    0    0     0     0  574  662  1  6 89  0

তবুও এখানে topআপনি দেখতে পাচ্ছেন যে আমার কাছে অদলবদল বরাদ্দ রয়েছে: -

Mem:    475236k total,   245076k used,   230160k free,     9720k buffers
Swap:   491512k total,    78588k used,   412924k free,    72476k cached

32
"উদ্বিগ্ন হওয়ার কোনও কারণ নেই", যতক্ষণ না আমি অদলবদল হয়ে যাওয়া কিছু অ্যাপ্লিকেশন ব্যবহার করা চালিয়ে যাচ্ছি। তারপরে সমস্ত জাহান্নাম শিথিল হয়ে যায়।
törzsmókus

207
এই পোস্টে প্রশ্নের উত্তর দেয় না।
Emchristiansen

18
প্রশ্নের ভিত্তি ভুল ধারণা ভিত্তিক। এই পোস্টে ভুল ধারণাটি সম্বোধন করে।
পোপি

30
আমি কোনও ভুল ধারণা দেখছি না, "ব্যবহৃত" অর্থ কী তা সম্পর্কে আমি একমত নই। সক্রিয়ভাবে আউট / আউট অদলবদল করার জন্য আপনি "ব্যবহৃত" অর্থ, যখন মূল প্রশ্নটি "ব্যবহৃত" এর সাথে উত্থাপিত হয় যার অর্থ এমন যে এমন ডেটা রয়েছে যা অদলবদল হয়ে গেছে, যা পরে আবার অদলবদলের প্রয়োজন হতে পারে are এমন একটি ইভেন্টের পরে অদলবদলটি ফ্ল্যাশ করতে চাওয়ার বৈধ কারণগুলি, যা ব্যবহারকারীরা জানেন যে সক্রিয় অদলবদলটি আগে থেকেই ঘটবে (বিশেষত যদি পরে 'ডি-অদলবদল' হওয়ার সম্ভাবনা থাকে তবে) অন্যান্য কারণে ডিস্ক লোডাধীন)।
ড্রফ্রোগস্প্ল্যাট

39
মেমরি ইনটেনসিভ অ্যাপ্লিকেশন চালানোর পরে, আমার অন্যান্য অ্যাপ্লিকেশনগুলি যখন আমি সেগুলিতে স্যুইচ করি তখন অনুগ্রহজনক হয়, সম্ভবত অদলবদলের কারণে। যতটা সম্ভব ডেটা আন-অদলবদল করার জন্য সিস্টেমকে বলার কিছু উপায় (একটি কফি ব্রেক) এর পরে আইটি + টি + টি-তে প্রতিবার 20 সেকেন্ড অপেক্ষা করার চেয়ে ভাল।
কে কে কোয়ান

423

লিনাক্স কার্নেল অন্তর্নিহিত উবুন্টু ডিস্ক থেকে র্যামের জন্য প্রয়োজনীয় পৃষ্ঠাগুলি স্বয়ংক্রিয়ভাবে "অদলবদল" করবে, তাই সাধারণভাবে আমি বলতে চাই যে এটি প্রাকৃতিকভাবে ঘটতে দিন।

তবে, যদি আপনি সত্যিই মনে করেন যে আপনাকে এটি জোর করা দরকার, (আমি এমন একটি দৃশ্য দেখতে পারি যেখানে আপনি জানতে চান যে সিস্টেমটি পরে প্রতিক্রিয়াশীল হবে) আপনি মুহূর্তের জন্য অদলবদল অক্ষম করতে এবং পুনরায় সক্ষম করতে পারবেন

sudo swapoff -a
sudo swapon -a

বা বিকল্পভাবে একক লাইন হিসাবে

swapoff -a; swapon -a

এটি করার ক্ষেত্রে সতর্কতা অবলম্বন করুন, আপনি যেমন আপনার সিস্টেমটিকে অস্থির করতে পারেন, বিশেষত যদি এটি ইতিমধ্যে র‍্যামে কম থাকে।


8
এটি কৌশলটি করেছে, অদলবদলটি রামে অনুলিপি করা হয়েছে। আমি অনুমান করি যে সোয়াপঅফ চালানোর আগে আপনার কমপক্ষে কতটা অদলবদল নিখরচায় র‌্যাম হিসাবে ব্যবহৃত হয়েছে তা নিশ্চিত হওয়া দরকার?
jfoucher

12
সোয়াপটি র‍্যামে অনুলিপি করা হয়নি। এটি নিছক অক্ষম ছিল। আপনার অবশ্যই নিশ্চিত করা উচিত যে এটি করার আগে বাক্সটি অদলবদল হচ্ছে না। যদি আপনি এটি করেন, তবে কার্নেলটি মেমরিটি অদৃশ্য হয়ে যাবে এবং OOM-Killer সম্ভবত নির্বিচারে অ্যাপ্লিকেশনগুলি হত্যা করা শুরু করবে। আপনার এ জাতীয় অদলবদলকে 'পরিষ্কার' করার দরকার নেই এমন কোনও কারণ নেই। (আমার অন্যান্য মন্তব্য দেখুন) :)
পোপী

51
আসলে সোয়াপটি মূলত র‌্যামে অনুলিপি করা হয় বা আরও সঠিকভাবে, সোয়াপ অক্ষম করার আগে পৃষ্ঠাগুলি ডিস্ক থেকে র‌্যামে ফিরে যায়।
স্প্যাম্যাপস

14
পৃষ্ঠাগুলি র‌্যামে অনুলিপি করা হয় কেবল সেগুলি যদি কোনও প্রক্রিয়া দ্বারা প্রয়োজন হয়। কখনও কখনও অদলবদল করা পৃষ্ঠা এমন একটি প্রক্রিয়ার সাথে সম্পর্কিত যা ইতিমধ্যে শেষ হয়ে গেছে, এবং কার্নেল তাত্ক্ষণিকভাবে অদলবদল থেকে এই পৃষ্ঠাগুলি সরিয়ে ফেলবে না।
ব্রুনোজেসিএম

6
এটি সঠিক উত্তর হওয়া উচিত, কারণ অদলবদল করা পৃষ্ঠাগুলি র‍্যামে ফিরে আসার উপায় এবং তারপরে অদলবদল মেমরিটি খালি করুন
আলফোনসো জিমনেজ

144

আপনি 60 এর ডিফল্ট থেকে আপনার "অদলবদল" মানটিও সেট করতে পারেন, এভাবে অদলব শুরু করতে এত বড় হবে না। প্রস্তাবিত মান 10 টি আমাকে বিভ্রান্ত করলে কেন শিপিং ডিফল্ট 60 এ সেট করা থাকে। উবুন্টু অদলবদল প্রশ্ন থেকে :

উবুন্টুতে ডিফল্ট সেটিংস হ'ল অদলবদল = 60। অদলবদলের ডিফল্ট মান হ্রাস সম্ভবত একটি সাধারণ উবুন্টু ডেস্কটপ ইনস্টলেশন জন্য সামগ্রিক কর্মক্ষমতা উন্নত করবে। অদলবদল = 10 এর একটি মান সুপারিশ করা হয় তবে পরীক্ষায় নির্দ্বিধায়।

এই মানটি 10 ​​বা এমনকি 0 তে পরিবর্তন করে আপনি ধীর ড্রাইভের সাহায্যে কোনও পুরানো সিস্টেমে একটি উল্লেখযোগ্য এবং অনুধাবনযোগ্য গতি বৃদ্ধি করতে পারবেন। এই মানটি 0-এ সেট করা লিনাক্স কার্নেল ৩.৪ এবং তার চেয়ে নীচে অদলবদল করে না তবে 3.5+ এর সাহায্যে এটি আপনার সর্বনিম্ন সেটিংসে রাখতে চাইলে 1 এর মান ব্যবহার করতে চাইবে।

আমি ডিসকে 0 তে সেট না করার কোনও কারণ দেখতে পাচ্ছি না কারণ ডিস্কে যে কোনও কিছুই হিট করে যা র্যামের চেয়ে ধীর। আমার কাছে 8 ভার্চুয়াল কোর, একটি দ্রুত এসএসডি এবং 8 গিগাবাইট মেমরি রয়েছে এবং আমার অদলবদল 0 তে সেট করা আছে এই মুহুর্তে আমার কাছে 3 ভার্চুয়াল মেশিন চলছে, আমার মেমরির ব্যবহার 7.7 গিগাবাইটের 7.1, আমার ব্যবহৃত অদলবদলটি কেবল 576KB এর মধ্যে রয়েছে 952MB এবং সমস্ত সিস্টেম সুচারুভাবে চলছে!

উবুন্টু অদলবদল প্রশ্ন থেকে :

অদলবদল পরামিতি শারীরিক মেমরি থেকে বের হয়ে স্ব্যাপ ডিস্কে প্রসেসগুলি সরিয়ে নিতে কার্নেলের প্রবণতা নিয়ন্ত্রণ করে। ডিস্কগুলি র‍্যামের চেয়ে অনেক ধীর গতিতে, প্রক্রিয়াগুলি খুব আক্রমনাত্মকভাবে স্মৃতি থেকে সরিয়ে না থাকলে সিস্টেম এবং অ্যাপ্লিকেশনগুলির জন্য ধীর প্রতিক্রিয়ার সময় হতে পারে।

  1. অদলবদলের মান 0 এবং 100 এর মধ্যে থাকতে পারে
  2. অদলবদল = 0 যতক্ষণ সম্ভব শারীরিক মেমরি থেকে অদলবদল প্রক্রিয়াগুলি এড়িয়ে চলতে কার্নেলকে বলে tells
  3. অদলবদল = 100 কর্নেলকে আক্রমণাত্মকভাবে শারীরিক স্মৃতি থেকে প্রসেসগুলি অদলবদল করতে এবং ক্যাশে অদলবদল করার জন্য বলে tells

নীচে অদলবদল যাচাই করার জন্য আপনার অদলবদল খালি করা এবং অদলবদলকে 0 এ পরিবর্তনের জন্য প্রাথমিক নির্দেশাবলী দেওয়া হয়েছে:

অদলবদলের মানটি পরীক্ষা করতে:

cat /proc/sys/vm/swappiness

অস্থায়ীভাবে 0 এ অদলবদল সেট করতে ( স্পাম্যাপস দ্বারা প্রস্তাবিত হিসাবে ):

এটি আপনার অদলবদল খালি করে সমস্ত অদলবদলকে মেমরিতে স্থানান্তর করবে। প্রথমে জিনোম-সিস্টেম-মনিটরের রিসোর্স ট্যাব দেখে আপনার পর্যাপ্ত মেমরি উপলব্ধ রয়েছে তা নিশ্চিত করুন, আপনার নিখরচায় মেমরিটি আপনার ব্যবহৃত অদলবদলের চেয়ে বেশি হওয়া উচিত। এই প্রক্রিয়াটি কিছুটা সময় নিতে পারে, অগ্রগতি পর্যবেক্ষণ ও যাচাই করতে জিনোম-সিস্টেম-মনিটর ব্যবহার করে।

sudo swapoff --all

নতুন মান 0 তে সেট করতে:

sudo sysctl vm.swappiness=0 

অদলবদলটি আবার চালু করতে:

sudo swapon --all

স্থায়ীভাবে 0 এ অদলবদল সেট করতে:

  1. sudoedit /etc/sysctl.conf
  2. এই লাইন যুক্ত করুন vm.swappiness = 0
  3. sudo shutdown -r now # সিস্টেম পুনরায় চালু করুন

* কার্নেল সংস্করণ 3.5+ এর সাথে 0 এর অদলবদল সেট করে এটি পুরোপুরি বন্ধ করে দেয় এবং আপনি যদি সর্বনিম্ন স্বচ্ছতা অ্যালগরিদম চান তবে 1 এর সেটিংয়ের প্রস্তাব দেওয়া হয়। উত্স: https://www.percona.com/blog/2014/04/28/oom-relation-vm-swappiness0-new-kernel/


1
অদলবদলের স্থায়ী উপায় অন্তর্ভুক্ত করার জন্য আমি উত্তরটি সবেমাত্র আপডেট করেছি updated কীভাবে এটি এতটা উপবিষ্ট হয়েছিল তা নিশ্চিত নয়, আমি অনুমান করছি যে এটি কেউ পরীক্ষিত হয়নি।
এলিজাহ লিন


3
আমি নিশ্চিত নই যে লেখক যখন উত্তরটি পোস্ট করেছিলেন তখন এটি উপলব্ধ ছিল তবে উবুন্টু সার্ভার ইনস্টলের জন্য "60" এর একটি অদলবদল মান রয়েছে যেহেতু পরিবেশের জন্য পারফরম্যান্সের জন্য আলাদা আলাদা আলাদা আলাদা সেট রয়েছে। help.ubuntu.com/commune/…
ফ্রিটো

1
এই সেটিংটি অদলবদলের আকার নিয়ন্ত্রণ করতে খুব কার্যকর। আমার সিস্টেমে 16 জি র‌্যাম এবং 16 জি অদলবদল রয়েছে। কখনও কখনও আমি ভিএমগুলিতে ছুটে চলেছি এবং আমার কিছু অ্যাপ্লিকেশনগুলি সরে যায়। আমি যখন ভিএম বন্ধ করি তখন র‌্যামের ব্যবহার হ্রাস হয়, তবে অ্যাপ্লিকেশনগুলি পরিবর্তন করার সময় অদলবদলের ব্যবহার একই থাকে এবং আমার সিস্টেমের পিছনে থাকে। অদলবদল পরিবর্তন আমার জন্য কর্মক্ষমতা উন্নত করেছে।
কাপাদ

1
এটি সত্যই গ্রহণযোগ্য উত্তর হওয়া উচিত। সমস্যার পুরো ব্যাখ্যা, এবং এর সমাধান, পাশাপাশি লিংক এবং অদলবদল মেমরি ধরে রাখতে একটি সমাধান, তবে এটি প্রথমে নিয়ন্ত্রণে রাখতে সহায়তা করে। চমৎকার উপাদান. ধন্যবাদ। :)
জ্যাক_হু

53

আমি খুঁজে পেয়েছি যে শূন্য ডিস্ক এবং সীমাবদ্ধ র‌্যামযুক্ত সিস্টেমে খালি করার অদলবদল অনেক সাহায্য করতে পারে। অবশ্যই, ইতিমধ্যে উল্লিখিত হিসাবে, এটি করার উপায়টি চালানো sudo swapoff -a; sudo swapon -a। এখানে সমস্যাটি হ'ল যদি অপর্যাপ্ত র‌্যাম থাকে তবে তা করলে সমস্ত ধরণের সমস্যা দেখা দেয়।

আমি একটি স্ক্রিপ্ট লিখেছি যা আমি কল toggle_swapকরি যা গত বেশ কয়েক বছর ধরে আমার জন্য কাজ করে। এটি অদলবদলকে অক্ষম করার আগে পর্যাপ্ত ফ্রি র‍্যামের জন্য পরীক্ষা করে। এটা এখানে:

#!/bin/bash

free_data="$(free)"
mem_data="$(echo "$free_data" | grep 'Mem:')"
free_mem="$(echo "$mem_data" | awk '{print $4}')"
buffers="$(echo "$mem_data" | awk '{print $6}')"
cache="$(echo "$mem_data" | awk '{print $7}')"
total_free=$((free_mem + buffers + cache))
used_swap="$(echo "$free_data" | grep 'Swap:' | awk '{print $3}')"

echo -e "Free memory:\t$total_free kB ($((total_free / 1024)) MB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MB)"
if [[ $used_swap -eq 0 ]]; then
    echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $total_free ]]; then
    echo "Freeing swap..."
    sudo swapoff -a
    sudo swapon -a
else
    echo "Not enough free memory. Exiting."
    exit 1
fi

দুর্দান্ত আমি এই জাতীয় কিছু খুঁজছিলাম for সম্ভবত কিছুটা নিরাপদ হওয়ার জন্য আপনি সংখ্যা এবং শতাংশ উপস্থাপন করতে পারেন এবং তারপরে জিজ্ঞাসা করতে পারেন, একেবারে নিশ্চিত হতে।
অ্যাথেরিয়ান

2
আমি কোডটি আপডেট করেছি এবং গিস্ট
জেকিস

সমস্ত টিপস পড়ার পরে আমি এই সিদ্ধান্তে পৌঁছলাম, যেমন কোনওরকম নিশ্চিত হওয়া উচিত যে অদলবদ হত্যার আগে যথেষ্ট পরিমাণে র্যাম রয়েছে। ধন্যবাদ স্যার, দুর্দান্ত স্ক্রিপ্ট ডিফল্টরূপে উবুন্টুতে অন্তর্ভুক্ত করা উচিত (মজা করা নয়, এটি সত্যই একটি গোঁফ))
শিকি

অদলবদল বন্ধ করার সময় আপনি যদি কোনও নতুন জিনিস চালিত করেন এবং এটি আবার চালু করার আগে - এর পর্যাপ্ত স্মৃতি থাকবে না।
বারটেকস

এটি আপনার কতটা মুক্ত মেমরির উপর নির্ভর করে। যদি অদলবদল এবং নতুন প্রক্রিয়াতে সবকিছু ধরে রাখার জন্য পর্যাপ্ত ফ্রি মেমরি থাকে তবে কোনও সমস্যা নেই। তা না হলে আপনি ঠিক বলেছেন।
স্কট সিভেরেন্স

25

নিয়ে mucking পর swappiness কয়েকদিন জন্য, আমি উপসংহার কার্নেল নিজস্ব ডিভাইস রাখতে হবে এসেছ। এটি কী করছে তা এটি জানে এবং আপনাকে সেরা অভিজ্ঞতা দেওয়ার জন্য এটি অনুকূলিত।

যদি না আপনার কাছে সেই ডিস্কটি ফিরে চাওয়ার সত্যিই ভাল কারণ থাকে, তবে আমি এটি ছেড়ে দেব।


2
আমার অদলবদলে কিছু জিনিস ছিল, ভিএমস্ট্যাট আমাকে দেখিয়েছিল যে সোয়াপিন এবং অদলবদল হচ্ছে, এবং ক্রোম পিছিয়ে ছিল, যখন আমার সিপিইউ সবে ব্যবহার হয়েছিল। যথেষ্ট কারণ, না?
জেরুস

ডেস্কটপে কিছু নির্দিষ্ট অদলবদল এটি দীর্ঘায়িত করে তোলে এমন ঘটনা অবশ্যই আছে। (এটি অদলবদল করার সময় নয়, পরেও, যখন যথেষ্ট পরিমাণ র‍্যাম থাকে, দীর্ঘদিন পরে)) সুতরাং সর্বোপরি এই উত্তরটি কেবলমাত্র বিষয়গত অভিজ্ঞতা যা কিছু ক্ষেত্রে ঘটে।
ক্রাই

-1

আপনার অদলবদল স্থান দখল করা থাকলে এটি কার্য সম্পাদনকে প্রভাবিত করে না। একমাত্র পারফরম্যান্স পেনাল্টি হ'ল স্ট্যাপ অদলবদল / আউট চলছে। যদি কোনও কিছু অদলবদল / অদলবদল হয় না, তবে আপনাকে কোনও কিছুর জন্য চিন্তা করতে হবে না।


10
হ্যাঁ কিন্তু যদি কিছু হয় আনা হচ্ছে এটা নেই অত: পর এই প্রশ্ন কর্মক্ষমতা প্রভাবিত।
কোয়ান্ট

এটি কিছু বাস্তব বাজে কথা, সাধারণত বড় ফ্যালব্যাকের অদলবদল এইচডিডি বা সাধারণত র‍্যামের চেয়ে ধীর ডিভাইসে থাকে - যদি স্থান ফুরিয়ে যায় - বিদ্যমান জিনিসগুলি অদলবদল করা হয় - যেমন ইন্টারনেট ব্রাউজার - এবং তারপরে আপনি ব্যবহারিকভাবে ধীর ডিভাইস থেকে এটি ব্যবহার করছেন। ..
jave.web
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.