উবুন্টু দ্রুত র‍্যামের বাইরে চলেছে, এবং আমার কম্পিউটারটি জমাট বাঁধতে শুরু করেছে। কোন আদেশ এটি সমাধান করবে?


73

যখন আমি ব্যাকগ্রাউন্ডে সফ্টওয়্যারটি সংকলন করি তখন এটি আমার কাছে প্রায়শই ঘটে এবং হঠাৎ করে সমস্ত কিছু ধীরে ধীরে শুরু হয়ে যায় এবং অবশেষে হিমায়িত হয়ে যায় [যদি আমি কিছু না করি], কারণ আমার র্যাম এবং অদলবদল উভয়ই শেষ হয়ে গেছে।

এই প্রশ্নটি ধরে নিয়েছে যে জিনোম টার্মিনাল খুলতে, আমার ইতিহাস অনুসন্ধান করতে এবং একটি sudoকমান্ড কার্যকর করতে আমার কাছে পর্যাপ্ত সময় এবং সংস্থান রয়েছে ।

কোন আদেশটি আমাকে পুনরায় বুট করা বা কোনও পুনরায় বুট করা থেকে বাঁচাতে পারে?


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
থমাস ওয়ার্ড

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

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

3
আপনার সমান্তরাল বিল্ডগুলির সংখ্যা হ্রাস করার চেষ্টা করুন যদি আপনার কাছে সমর্থন করার মতো পর্যাপ্ত র্যাম না থাকে। যদি আপনার বিল্ডটি অদলবদল শুরু করে তবে আপনি ধীর হয়ে যাবেন। সাথে make, -j4উদাহরণস্বরূপ একবারে 4 টি সমান্তরাল বিল্ডের জন্য চেষ্টা করুন ।
শাহবাজ

1
"আলেক্সা আমাকে 8

উত্তর:


84

আমার অভিজ্ঞতায় ফায়ারফক্স এবং ক্রোম মিলিত আমার প্রথম 7 টি কম্পিউটারের চেয়ে বেশি র‌্যাম ব্যবহার করে। সম্ভবত এর চেয়ে বেশি তবে আমি আমার বক্তব্য থেকে দূরে চলেছি। আপনার ব্রাউজারটি বন্ধ করা আপনার প্রথম কাজটি করা উচিত । একটি আদেশ?

killall -9 firefox google-chrome google-chrome-stable chromium-browser

আমি সর্বাধিক জনপ্রিয় ব্রাউজারগুলিকে একটি কমান্ডের সাথে একত্রে বেঁধেছি তবে স্পষ্টতই যদি আপনি অন্য কিছু চালাচ্ছেন (বা আপনি জানেন যে আপনি এর মধ্যে একটিও ব্যবহার করছেন না) কেবল কমান্ডটি পরিবর্তন করুন। killall -9 ...গুরুত্বপূর্ণ বিট। লোকেরা SIGKILL(সিগন্যাল নম্বর 9) সম্পর্কে ইফফি পায় তবে ব্রাউজারগুলি অত্যন্ত স্থিতিস্থাপক। এর চেয়ে ধীরে ধীরে ধীরে ধীরে বন্ধ হওয়ার SIGTERMঅর্থ ব্রাউজারটি ক্লিনআপের আবর্জনা বোঝায় - যার জন্য অতিরিক্ত রাম ফাটানো দরকার এবং এটি এমন পরিস্থিতিতে আপনি বহন করতে পারবেন না।

যদি আপনি এটি ইতিমধ্যে চলমান টার্মিনাল বা একটি Alt+ F2কথোপকথনে না পেতে পারেন তবে টিটিওয়াইতে স্যুইচ করার বিষয়টি বিবেচনা করুন। Control+ Alt+ F2আপনাকে টিটিওয়াই 2 এ পৌঁছে দেবে যা আপনাকে লগইন করার অনুমতি দেয় (যদিও এটি ধীর হতে পারে) এবং আপনাকে htopসমস্যাটি ডিবাগ করার মতো কিছু ব্যবহার করতে দেওয়া উচিত । আমি মনে করি না যে আমি কখনই র‍্যামের বাইরে চলে যেতে পারিনি htop

দীর্ঘমেয়াদী সমাধানটি হয় আরও বেশি র‌্যাম কেনা, দূরবর্তী কম্পিউটারের মাধ্যমে ভাড়া নেওয়া, বা আপনি বর্তমানে যা করছেন তা না করা জড়িত। আমি আপনার কাছে জটিল অর্থনৈতিক যুক্তি ছেড়ে দেব তবে সাধারণভাবে বলতে গেলে, র‍্যাম কেনা সস্তা, তবে আপনার যদি কেবল একটি বার্স্টের পরিমাণ প্রয়োজন হয় তবে প্রতি মিনিটে একটি ভিপিএস সার্ভার বিল করা হয় বা ঘন্টা ভাল পছন্দ is


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
টমাস ওয়ার্ড

আমি নিজের lazygitকমান্ডের সাথে বেশ কয়েকটি কমান্ড যুক্ত করেছি যা আমি সময়ে সময়ে ব্যবহার করি, সম্ভবত এর মতো কিছু এখানে প্রয়োগ করা যেতে পারে? পুরো killall ...স্ক্রিপ্টটি কোনও সাধারণ emptyramবা এর মতো কিছুতে হ্রাস করা যেতে পারে
ফ্রান্সিসকো প্রেজেনসিয়া

কোন ব্রাউজারটি চলছে তা যদি আপনার জানা থাকে এবং আপনাকে বেশিরভাগ লোকেরা ধরে নিবেন যারা র‌্যামের ঘাটতি চিহ্নিত করতে পারে তবে আপনাকে পূর্ণ কমান্ডটি চালানোর দরকার নেই। এক্সটেনশনের মাধ্যমে, আমি মনে রাখা আরও কঠিন মনে করি যে আমি emptyramকেবল ঘুষি দেওয়ার চেয়ে স্ক্রিপ্ট লিখেছি killall -9 firefox
অলি

2
র‌্যাম কিনছেন ... কেন শুধু আরও র‌্যাম ডাউনলোড করবেন না?
স্টিফান বিজজিটার

1
আচ্ছা আপনি রসিকতা পারে কিন্তু আপনি যদি একটি স্বল্প সময়ের জন্য কিছু করতে প্রয়োজন প্রয়োজন অনেক বেশী RAM ও CPU- র আছে আপনি, মিনিট একটি VPS ভাড়া নেওয়ার এক শট জন্য বেশ লাভজনক হয়।
অলি

66

ম্যাজিক সিস্টেম রিকোয়েস্ট কী সক্ষম হওয়া একটি সিস্টেমে, Alt + System Request+ টিপুন f(আপনার কীবোর্ডে চিহ্নিত না থাকলে, System Requestপ্রায়শই Print Screenকীটিতে থাকে) ম্যানুয়ালি ম্যানুয়াল কিলার (ওমকিলার) থেকে কার্নেলের সাহায্য প্রার্থনা করবে, যা সবচেয়ে খারাপ আপত্তিজনক প্রক্রিয়া বেছে নেওয়ার চেষ্টা করে মেমরি ব্যবহার এবং এটি হত্যা। আপনার বর্ণনার চেয়ে কম সময় থাকতে পারে এবং সিস্টেমটি থ্র্যাশিং শুরু হতে পারে (বা সম্ভবত ইতিমধ্যে ইতিমধ্যে শুরু হয়ে গেছে) - এই ক্ষেত্রে আপনি সম্ভবত কী হত্যা করবেন তার ঠিক যত্ন নেই, কেবল যে আপনি শেষ করছেন একটি ব্যবহারযোগ্য সিস্টেমের সাথে আপ। কখনও কখনও এটি এক্সকে হত্যা করতে পারে, তবে এই সময়ের বেশিরভাগ সময় এটি আগের চেয়ে খারাপ প্রক্রিয়া বাছাই করা অনেক ভাল a


5
@ টি.সর আপনি যদি সরাসরি মারতে চলেছেন তবে ইতিমধ্যে আপনি হেরে গেছেন বা স্মৃতি-ভক্ষণকারীকে হত্যা করার সুযোগ পাবেন। আপনি যদি কেবল অভিনয় থেকে বিরত থাকেন তবে আপনি কিছু অর্জন করতে পারবেন না।
রুসলান

4
@ মুজার এটি তখনই কাজ করবে যখন আপনি kernel.sysrqনিজের 1বা সঠিক বিট সহ একটি নম্বর সেট করেছেন /etc/sysctl.d/10-magic-sysrq.conf
রুসলান

9
@ টি.সার আপনি যদি বুদ্ধিমান বিল্ড সিস্টেম ব্যবহার করেন তবে আপনি আপনার অগ্রগতি হারাবেন না। আপনি সমস্ত অবজেক্ট ফাইলগুলি বজায় রাখতে পারবেন তবে যেটি আপনি আসলে সংকলন করেছিলেন, তারপরে আপনি যেখানে চলে গিয়েছিলেন সেখানে ফিরে যেতে পারবেন।
মুজার

3
@ টি.সর শুধু যে কারণে আপনি যে বিষয়টি সংকলন করছেন সেটি বোঝার অর্থ এই নয় যে বিল্ড সিস্টেমটি বুদ্ধিমান নয়। প্রাচীনকাল থেকেই সিস্টেমগুলি তৈরি করুন পরবর্তী সংকলনগুলিতে পুনরায় ব্যবহারের জন্য অবজেক্ট ফাইলগুলি সংরক্ষণ করে। অন্যদিকে, আমি অবশ্যই লিনাক্সের তুলনায় স্বল্প পরিমাণে সফটওয়্যার প্রকল্পের নাম রাখতে পারি (যা সাধারণত বেশ ভালভাবে ডিজাইন করা হয়)। উদাহরণস্বরূপ, 8 সমান্তরাল বিল্ড থ্রেড সহ ফায়ারফক্স বা ওপেনঅফিসের মতো কিছু সংকলন করা, আমি সহজেই এটিকে র‍্যামের গিগা বাইটের ক্রম হিসাবে গ্রহণ করতে দেখতে পাই। এছাড়াও রয়েছে প্রচুর একচেটিয়া কর্পোরেট সিস্টেম যা শত শত গ্রন্থাগারের উপর নির্ভর করে।
মুজার

7
@ টি.সর লিনাক্স সংকলকের পিওভ থেকে সত্যই জটিল নয়। আসলে কোন সি প্রোগ্রামার খুব কমই আছে। সি ++ এর কী হবে? আপনি কি কখনও ইগেন বা বুস্ট ব্যবহার করে কোনও প্রোগ্রাম তৈরির চেষ্টা করেছেন? আপনি অবাক হবেন যে সংকলক কখনও কখনও এই জাতীয় প্রোগ্রামগুলির সাথে কত স্মৃতি খায় - এবং সেগুলি নিজে জটিল হতে হবে না।
রুসলান

20

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

আমি এই কাজটি করার সময় পুরোপুরি অদলবদল অক্ষম করার সুপারিশ করব, যাতে মেমরির বাইরে থাকা মেমরিটি যত তাড়াতাড়ি র‍্যাম পূর্ণ হবে ততক্ষণ কাজ করবে।

বিকল্প সমাধান:

  • আপনার অদলবদলটি পার্টিশনটি RAID1 এ রেখে অদলবদলের পঠনের গতি বাড়ান
    • অথবা আপনি যদি ঝুঁকিপূর্ণ বোধ করেন তবে RAID0 তবে এটি যদি আপনার কোনও ডিস্কে ত্রুটি দেখা দেয় তবে প্রচুর চলমান প্রোগ্রামগুলি নামিয়ে আনবে।
  • একযোগে বিল্ড জবসের সংখ্যা হ্রাস করুন ("আরও বেশি কোর = আরও গতি", আমরা সকলেই ভুলে যাচ্ছি যে এটি র‌্যামের উপর রৈখিক টোল নেয়)
  • এটি উভয় পথে যেতে পারে তবে zswapকার্নেলটি সক্ষম করার চেষ্টা করুন । এটি পৃষ্ঠাগুলি অদলবদলে প্রেরণের আগে সংকুচিত করে, এটি আপনার মেশিনকে গতি বাড়ানোর জন্য পর্যাপ্ত উইগল রুম সরবরাহ করতে পারে। অন্যদিকে, এটি কেবল অতিরিক্ত সংকোচনের সাথে বাধা হয়ে দাঁড়ানোর সাথে বাধা হয়ে দাঁড়াতে পারে।
  • অপ্টিমাইজেশন ডাউন করুন বা একটি আলাদা সংকলক ব্যবহার করুন। অপ্টিমাইজিং কোডটি মাঝে মধ্যে বেশ কয়েকটি গিগাবাইট মেমরি নিতে পারে। যদি আপনার এলটিও চালু থাকে, আপনি লিঙ্ক পর্যায়েও প্রচুর র‌্যাম ব্যবহার করতে যাচ্ছেন। অন্য সব কিছু যদি ব্যর্থ tccহয় তবে আপনি কমপ্লায়ারড প্রোডাক্টটিতে সামান্য রানটাইম পারফরম্যান্স ব্যয় করে হালকা ওজন সংকলক (উদাহরণস্বরূপ ) দিয়ে আপনার প্রকল্পটি সংকলনের চেষ্টা করতে পারেন । (আপনি যদি উন্নয়ন / ডিবাগিংয়ের উদ্দেশ্যে এটি করেন তবে এটি সাধারণত গ্রহণযোগ্য)

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

10
@ আকিভা আপনি কি কখনও অদল বদলানোর চেষ্টা করেছেন? এই উত্তর স্পট-অন। আমি যুক্ত করতে চাই যে sudo swapoff -aআপনি ইতিমধ্যে বাঁধাইয়ের সময় দৌড়ানোর সময় আপনাকে বাঁচাতে পারে: এটি তাত্ক্ষণিকভাবে অদলবদলের কোনও অতিরিক্ত ব্যবহার বন্ধ করে দেবে, অর্থাত্ ওওম ঘাতকটিকে পরবর্তী তাত্ক্ষণিকভাবে অনুরোধ করা উচিত এবং মেশিনটিকে কার্যক্রমে আনতে হবে। sudo swapoff -aমেমরি ফাঁস বা সংকলন করার সময়, ফায়ারফক্সটি যখন একটি ডিবাগ করার সময় এটি একটি দুর্দান্ত সতর্কতা ব্যবস্থাও হয়। সাধারণত, অদলবদল কিছুটা কার্যকর (যেমন হাইবারনেশনের জন্য বা সত্যিই অনাবাদী স্টাফগুলি অদলবদলের জন্য) তবে আপনি যখন মেমরিটি ব্যবহার করছেন তখন ফ্রিজ আরও খারাপ হয়।
জোনাস শ্যাফার

2
@ স্কোর_উন্ডার: এমডি রেড0 ডিভাইসে অদলবদরের তুলনায় প্রতিটি ডিস্কে পৃথক অদলবদলগুলি উল্লেখযোগ্যভাবে বেশি দক্ষ বলে মনে করা হচ্ছে। আমি কোথায় পড়েছি তা ভুলে গেছি। লিনাক্স RAID উইকিটি raid0 এর চেয়ে পৃথক পার্টিশনের প্রস্তাব দিচ্ছে, তবে কেন এটি আরও ভাল সে সম্পর্কে খুব দৃ strong় কিছু বলবেন না । যাইহোক, RAID1 বা RAID10n2 অদলবদলের জন্য অর্থবোধ করে, বিশেষত যদি আপনি বেশিরভাগ পৃষ্ঠার ক্যাপের জন্য আরও র‌্যাম রেখে কিছু নোংরা তবে খুব ঠান্ডা পৃষ্ঠাগুলি সরিয়ে নিতে চান। অর্থাত্ অদলবদল সম্পাদন কোনও বড় বিষয় নয়।
পিটার কর্ডেস

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

2
অদলবদল ছাড়াই, অনেকগুলি মেশিনে কোডের বৃহত অংশগুলি সংকলন করা অসম্ভব। আপনি কেন ধরে নিবেন যে এটি যে সংকলন তিনি উত্সর্গ করতে চান?
ডেভিড শোয়ার্টজ

14

আপনার সিস্টেমে সর্বাধিক র‌্যাম ব্যবহার করে প্রক্রিয়াটি হ্রাস করতে আপনি নিম্নলিখিত কমান্ডটি (প্রয়োজনে বারবার) ব্যবহার করতে পারেন:

ps -eo pid --no-headers --sort=-%mem | head -1 | xargs kill -9

সঙ্গে:

  • ps -eo pid --no-headers --sort=-%mem: মেমরির ব্যবহার অনুসারে বাছাই করা সমস্ত চলমান প্রক্রিয়াগুলির প্রসেস আইডির প্রদর্শন করুন
  • head -1: কেবল প্রথম লাইন রাখুন (সর্বাধিক স্মৃতি ব্যবহার করার প্রক্রিয়া)
  • xargs kill -9: প্রক্রিয়া হত্যা

দিমিত্রি এর সঠিক মন্তব্যের পরে সম্পাদনা করুন:

এটি একটি দ্রুত এবং নোংরা সমাধান যা যখন কোনও সংবেদনশীল কাজ চলছে না তখন কার্যকর করা উচিত (যে কাজগুলি আপনি চান না kill -9)।


5
এটি ওওএম হত্যাকারীকে পরিস্থিতি পরিচালনা করতে দেওয়ার চেয়ে আরও খারাপ। ওওএম হত্যাকারী এর চেয়ে স্মার্ট। আপনি কি চলমান সংকলন সহ কম্পিউটারে সত্যই এই জাতীয় আদেশগুলি চালাচ্ছেন?
দিমিত্রি গ্রিগরিয়েভ

@ দিমিত্রিগ্রিরিভ কখনও কখনও আমার ডেস্কটপে Xorg কে হত্যা করতে এত স্মার্ট। আধুনিক কার্নেলগুলিতে ওমকে কিছুটা বিচক্ষণতা অর্জন করেছে বলে মনে হচ্ছে, তবে এত কিছুর পরে আমি আসলে এটি বিশ্বাস করব না।
রুসলান

11

আপনার সংস্থান গ্রাসকারী কমান্ডগুলি প্রয়োগ করার পূর্বে, এছাড়াও আপনি ব্যবহার করতে পারে setrlimit (2) , সিস্টেম কল সম্ভবত সঙ্গে ulimitআপনার ব্যাশ শেলের builtin (অথবা limitzsh মধ্যে builtin) সঙ্গে উল্লেখযোগ্য হল -vজন্য RLIMIT_AS। তারপর অত্যন্ত বড় ভার্চুয়াল অ্যাড্রেস স্পেস খরচ (যেমন সঙ্গে mmap (2) বা sbrk (2) দ্বারা ব্যবহৃত যদি malloc (3) ) ব্যর্থ হবে (সঙ্গে errno (3) হচ্ছে ENOMEM)।

তারপরে সেগুলি (আপনার টাইপের পরে আপনার শেলের ক্ষুধার্ত প্রক্রিয়াগুলি ulimit) আপনার সিস্টেমকে হিমায়িত করার আগে সমাপ্ত করা হবে।

লিনাক্স এট মাই র‌্যামও পড়ুন এবং মেমরির অতিরিক্ত কমিটিকে অক্ষম করার বিষয়ে বিবেচনা করুন (কমান্ডটি echo 0 > /proc/sys/vm/overcommit_memory রুট হিসাবে চালিয়ে , প্রোক (5) দেখুন ...)।


11

আমি যখন পটভূমিতে সফ্টওয়্যারটি সংকলন করি তখন প্রায়শই এটি ঘটে

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


2
'এটি একটি লজ্জাজনক বিষয় যে এই উত্তরটি খুঁজতে আমাকে এতদূর নিচে নামতে হয়েছিল। আমি আশা করছিলাম যে কেউ এমন কোনও উপায় প্রস্তাব করবেন যা এই র‌্যাম ইটারের অগ্রগতি স্থগিত করবে।
তোগাম

এটি ওপি প্রত্যাশিত উত্তরের নিকটে কিছুই নয়, তবে এটি সাহিত্যের প্রশ্নের উত্তর দেয়: যখন আমি এটি তৈরি করি তখন আমার ক্রেপ মেশিনটি অকেজো হয়ে যায় - ক্রেপ মেশিনে বিল্ডিং বন্ধ করুন।
ইএসডিএক্স 9 আরভিজে 0

9

নিজের জন্য আরও কিছু অদলবদল তৈরি করুন।

নিম্নলিখিত 8G অদলবদল যোগ করবে:

dd if=/dev/zero of=/root/moreswap bs=1M count=8192
mkswap /root/moreswap
swapon /root/moreswap

এটি এখনও ধীর হয়ে যাবে (আপনি অদলবদল করছেন) তবে আপনার আসলে শেষ হয়ে যাওয়া উচিত নয়। লিনাক্সের আধুনিক সংস্করণগুলি ফাইলগুলিতে অদলবদল করতে পারে। আপনার ল্যাপটপ হাইবারনেট করার জন্য এই দিনগুলিতে কেবলমাত্র অদলবদলের জন্য একমাত্র ব্যবহার।


1
আমি এই পদ্ধতিটি এখানে স্ক্রিপ্ট হিসাবে বাস্তবায়িত করেছি । উড়তে অদলবদল করার জন্য বেশ কার্যকর।
সের্গেই কোলোডিয়াজনি

7
কিছু অদলবদুই সাধারণত বুদ্ধিমান হয়, তবে ওওএম কিলার কোনও স্বেচ্ছাসেবীর পদক্ষেপ নেওয়ার আগে এবং প্রচুর পরিমাণে বরাদ্দ দেওয়ার ফলে মেশিনটিকে আরও বেশি আঘাত করতে দেয়। "স্বামের দ্বিগুণ হয়ে আপনার র্যাম" সম্পর্কে থাম্বের পুরাতন ভূমিকা দীর্ঘ মৃত। ব্যক্তিগতভাবে আমি মোট 1 গিগাবাইট ডলারের স্বাপের চেয়ে বেশি বরাদ্দ করার কোনও মূল্য দেখছি না।
ক্রিগগি

5
Ext4 এর সাহায্যে আপনি সিস্টেমটি আঘাতের সময় 8GB আই / ও করার প্রয়োজনটি এড়াতে পারবেন fallocate -l 8G /root/moreswapনা dd। যদিও এটি অন্য কোনও ফাইল সিস্টেমের সাথে কাজ করে না। অবশ্যই এক্সএফএস নয়, যেখানে স্বপন অলিখিত লিখিত অংশগুলি গর্ত হিসাবে দেখবে। (আমি অনুমান করি যে এই এক্সএফএস মেলিং তালিকার আলোচনার ফলাফলটি বের হয়ে যায়নি)। এটিও দেখুন swapd, একটি ডেমন যা ফ্লাইতে ডিস্কের স্থান বাঁচাতে স্ব্যাপ ফাইলগুলি তৈরি করে / সরিয়ে দেয়। এছাড়াও জিজ্ঞাসাবাবু
পিটার

1
@ ক্রিগি "ব্যক্তিগতভাবে আমি ১ জিবি ডলারের বেশি সোয়াপ বরাদ্দ করার কোনও মূল্য দেখতে পাই না" - আপনি কি ফায়ারফক্স তৈরির চেষ্টা করেছেন?
দিমিত্রি গ্রিগরিয়েভ

1
@ আকিভা সর্বশেষবার আমি যাচাই করেছি, প্রস্তাবিত বিল্ড কনফিগারেশনটি ছিল 16 গিগাবাইট র‌্যাম। মূল এক্সিকিউটেবল ফাইল ( xul.dll) প্রায় 50 এমবি, সুতরাং এটি লিনাক্স কার্নেলের চেয়ে 10 গুণ বেশি ভারী।
দিমিত্রি গ্রিগরিয়েভ

5

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

ধরে নিই যে আপনার কাছে জ্রাম ইনস্টল এবং কনফিগার হয়েছে, আপনাকে যা করতে হবে তা চালানো যেতে পারে

sudo service zramswap start

এটি কি বিটিআরএফএসের মতো সমস্ত ফাইল সিস্টেমে কাজ করে?
আকিভা

1
@ আকিভা জ্রাম কখনই ডিস্কটি স্পর্শ করে না, তাই আমি হ্যাঁ বলব;)
দিমিত্রি গ্রিগরিয়েভ

3

sudo swapoff -aসিস্টেমের স্মৃতিশক্তি শেষ না হয়ে গেলে কার্নেলটি স্বয়ংক্রিয়ভাবে সর্বোচ্চ স্কোর দিয়ে প্রক্রিয়াটি মেরে ফেলবে, অদলবদলকে অক্ষম করবে । আমি যদি এটি জানতাম যে আমি র‌্যাম-ভারী এমন কিছু চালাচ্ছি যা এটি নিয়ন্ত্রণের বাইরে চলে যায় তবে এটি অদলবদলে যেতে দেয় এবং চিরকালের জন্য আটকে যায় I'd sudo swapon -aপরে এটি পুনরায় সক্ষম করতে ব্যবহার করুন ।

পরে, আপনি নিজের অদলবদলের সেটিংস একবার দেখে নিতে পারেন। রুট পার্টিশনের মতো একই ডিস্কে আপনার অদলবদলের মতো শব্দ রয়েছে যা আপনি অদলবদলে আঘাত করলে আপনার সিস্টেমকে ধীর করে দেবে, তাই আপনি যদি পারেন তবে তা এড়িয়ে চলুন। এছাড়াও, আমার মতে, আধুনিক সিস্টেমগুলি প্রায়শই অত্যধিক অদল বদল করে কনফিগার করা হয়। 32GiB র‍্যাম সাধারণত 32GiB অদলবদল ডিফল্টরূপে বরাদ্দ করা হয়, আপনি যদি সত্যই নিজের স্বাপের জায়গায় 32GiB রাখতে চান।


ওহ, আমি কেবল দেখেছি যে কেউ কেউ উপরে এটির মন্তব্য করেছে।
sudo

3

আর একটি জিনিস যা করতে পারে তা হ'ল এই কমান্ডের মাধ্যমে মেমরি পৃষ্ঠা ক্যাশে মুক্ত করা:

echo 3 | sudo tee /proc/sys/vm/drop_caches

কার্নেল.অর্গ ডকুমেন্টেশন থেকে (জোর দেওয়া হয়েছে):

drop_caches

এটি লেখার ফলে কার্নেলটি পরিষ্কার ক্যাশে ফেলে দেওয়ার পাশাপাশি ডেন্ট্রি এবং আইনোডের মতো পুনরুদ্ধারযোগ্য স্ল্যাব অবজেক্টকে ফেলে দেবে। একবার বাদ পড়লে তাদের স্মৃতি মুক্ত হয়ে যায়

পৃষ্ঠাগুলি মুক্ত করতে: প্রতিধ্বনি 1> / proc / sys / vm / ড্রপ_ক্যাচগুলি পুনরুদ্ধারযোগ্য স্ল্যাব অবজেক্টগুলিতে বিনামূল্যে (ডেন্টরি এবং ইনোডগুলি অন্তর্ভুক্ত): প্রতিধ্বনি 2> / proc / sys / vm / ড্রপ_ক্যাচগুলি স্ল্যাব অবজেক্ট এবং পৃষ্ঠাচিহ্ন মুক্ত করতে: প্রতিধ্বনি 3> / প্রকো / sys / vm / drop_caches

এটি একটি ধ্বংসাত্মক অপারেশন এবং কোনও নোংরা বস্তু মুক্ত করবে না। এই ক্রিয়াকলাপের দ্বারা মুক্ত হওয়া অবজেক্টের সংখ্যা বাড়ানোর জন্য, ব্যবহারকারী / proc / sys / vm / ড্রপ_ক্যাচে লেখার আগে 'সিঙ্ক' চালাতে পারেন। এটি সিস্টেমে নোংরা বস্তুর সংখ্যা হ্রাস করবে এবং বাদ দেওয়া আরও প্রার্থী তৈরি করবে।


আকর্ষণীয় ... কমান্ড যুক্তি ব্যাখ্যা করতে যত্ন?
আকিভা

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

7
আপনি যখন মেমরি পূর্ণ করেন তখন ক্যাশেটি প্রথম জিনিস হয় তাই আমি মনে করি না এটি খুব বেশি সাহায্য করবে। আসলে, আমি মনে করি না এই কমান্ডটির ডিবাগিং কার্নেল আচরণ বা টাইমিং ডিস্ক অ্যাক্সেস অপটিমাইজেশনের বাইরে ব্যবহারিক ব্যবহার রয়েছে। আমি আরও কার্য সম্পাদনের প্রয়োজনে যে কোনও সিস্টেমে এই কমান্ডটি চালানোর বিরুদ্ধে বিনীতভাবে সুপারিশ করব।
স্কোর_উন্ডারে

2
@ স্কোর_উন্ডার - "যখন আপনি স্মৃতি পূরণ করবেন তখন ক্যাশে প্রথম জিনিস" - ভাল, এটি আপনার সেটিংসের উপর নির্ভর করে /proc/sys/vm/swappiness। অদলবদল 0 তে সেট করে, আপনি ঠিক বলেছেন। 60 এর ডিফল্ট সেটিংসের সাথে, আপনি কাছে। এটি 200 এ সেট করা থাকলেও এটি চলমান প্রক্রিয়াগুলির মধ্যে সর্বনিম্ন ব্যবহৃত পৃষ্ঠাগুলি হবে যা প্রথমে বাদ পড়ে যায় ... সেই বিশেষ ক্ষেত্রে, এই আদেশটি কার্যকর হতে পারে। তবে 0 (বা কিছু কম মান, সম্ভবত 20 বা 30) এ অদলবদল সেট করা আরও ভাল সাধারণ পদ্ধতি হবে।
জুলে

3
@ স্কোর_উন্ডার এই কমান্ডটি kswapdবাগ সহ পুরানো কার্নেলগুলিতে কার্যকর ছিল (কিছু লোক এমনকি এটি দিয়ে ক্রোনজবও তৈরি করেছিল)। তবে আপনি ঠিক বলেছেন, আমি সন্দেহ করি এটি এই প্রশ্নের সাথে সহায়তা করবে।
দিমিত্রি গ্রিগরিয়েভ

1

আপনি "ব্যাকগ্রাউন্ডে সংকলন" বলেছেন। অগ্রভাগে আপনি কী করছেন? আপনি যদি Eclipse বা অন্যান্য রিসোর্স ভারী IDE দিয়ে বিকাশ করছেন তবে কনসোলে সবকিছু ঠিকঠাকভাবে শেষ হয়েছে কিনা তা পরীক্ষা করে দেখুন।

বিকাশের পরিবেশগুলি প্রায়শই বিকাশের অধীনে একাধিক প্রক্রিয়া শুরু করার অনুমতি দেয়, আপনি সেগুলিতে আর আগ্রহী না হওয়ার পরে এগুলি ঝুলতে পারে (ডিবাগারে, বা ঠিকমতো সমাপ্ত হয় নি)। যদি বিকাশকারী মনোযোগ না দেয় তবে একাধিক গিগাবাইট একসাথে ব্যবহার করে দিনের বেলা দশেক ভুলে যাওয়া প্রক্রিয়া জমে উঠতে পারে।

আইডিইতে শেষ হওয়া উচিত এমন সমস্ত কিছুর অবসান হয় কিনা তা পরীক্ষা করে দেখুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.