কীভাবে লিনাক্স প্রতিক্রিয়াশীলতা, মেমরি এবং পেজিংকে দমন করতে পারে


27

ওভারফ্লোতে প্রথম প্রশ্ন =) ... +100 অনুগ্রহ। আমি সত্যিই যত্ন নেওয়া এমন কিছু সম্পর্কে ভাবতে পারি নি:

আমি লিনাক্স ডেস্কটপের প্রতিক্রিয়াশীলতার রাজ্যে সত্যই ক্লান্ত হয়ে পড়েছি, যেমন: http://brainstorm.ubuntu.com/item/85/ - নিম্ন ফ্রি-র‌্যামযুক্ত পরিস্থিতিতে বা হাই ডিস্ক থ্রুপুট সহ পরিস্থিতিতে সিস্টেমটি গতি কমিয়ে দেয় একটি হামাগুড়ি ; এটি উপযুক্ত অ্যাপ্লিকেশনগুলির জন্য একেবারে ভয়ানক। অতিরিক্তভাবে, ইউআই সম্পূর্ণ প্রতিক্রিয়াহীন। উদাহরণস্বরূপ এটি ওএস এক্সের সাথে তুলনা করুন, যেখানে কোনও অ্যাপ্লিকেশন রিসোর্সগুলি হগিং করে থাকলে, সর্বদা এটি প্রস্থান করতে প্রস্থান করতে অপশন-ক্লিক করতে পারেন, যদিও লিনাক্সে আমি এমনকি আল-ট্যাব বা ডেস্কটপ স্যুইচ করতে পারি না, এমনকি সিটিআরএল-ওএল-এফ 1 পেতে একটিও না টার্মিনাল - ভাল আমি পারি, এটি অপারেশন প্রতি প্রায় 1-2 মিনিট সময় নেয়।

আমি gkrellm ব্যবহার করি যাতে পরিস্থিতিটি উদ্ভূত হওয়ার সাথে সাথে দেখতে পাচ্ছি। সাধারণত মেমরির ব্যবহারটি বেশ উচ্চ হয়ে যায় বা ডিস্কের মাধ্যমে থ্রুটপুট নাটকীয়ভাবে লাফায়।

এটি কোনও খারাপ হার্ডওয়্যার নয়, ২.-গিগাহার্টজ কোয়াড কোর এবং ৮০০ মেগাহার্টজ ডিডিআর 2 র‌্যামের 4 জিবি (6 জিবি থাকতে পারে, তবে একটি হার্ডওয়্যার বেমানান হওয়ার কারণে পুরানো সেটটির সাথে মেশানো এবং মিলতে পারে না)। যখন আমি অনিবার্যভাবে আরও বেশি র‍্যাম পাই তখন এই সমস্যাটি চলে যেতে পারে তবে আমি মনে করি না যে এটাই সমস্যার কেন্দ্রস্থল। এমনকি বিভিন্ন ডিস্কে আমার দুটি স্বাপ পার্টিশন রয়েছে।

আমি মনে করি সমস্যাটি তিনগুণ:

  • প্রচুর পরিমাণে স্মৃতি জড়িয়ে থাকা পলাতক প্রোগ্রামগুলি - এই কর্মসূচির জন্য সীমাবদ্ধতা সহ আইনটি তৈরি করতে হবে
    • (উদাহরণস্বরূপ Chrome এ থাকা ট্যাবগুলি যার প্রতিটি 20-50MB, যার মধ্যে কয়েকশ এমবি ব্যবহার করতে পারে)
    • (উদাহরণস্বরূপ অন্যান্য প্রোগ্রাম যেমন আপডেট-ডিবি এবং ইনডেক্সারগুলি যা আমাকে ক্রোন থেকে অক্ষম করতে এবং অপসারণ করতে হয়েছিল কারণ তারা যখনই দৌড়াচ্ছিল, ইত্যাদি সিস্টেমকে ক্রল করে দিচ্ছিল ইত্যাদি)
  • কার্নেল বা কোনও ধরণের বাস কনটেন্টে যাওয়ার মতো ভয়ঙ্কর কিছু, যেমন হাই-ডিস্ক-থ্রুপুট পরিস্থিতি পুরো সিস্টেমকে একটি ক্রলের দিকে ধীর করে দেয় (সম্ভবত গুরুত্বপূর্ণ প্রোগ্রামগুলি প্রেরণ করে)
  • কার্নেল ইউআই বা গুরুত্বপূর্ণ প্রোগ্রামগুলিকে সম্পদের ক্ষেত্রে যেমন মেমরি, পেজিং, এমনকি প্রসেসরের ব্যবহারের ক্ষেত্রে অগ্রাধিকার দিচ্ছে না

উপবোটেরা এখানে যান:

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

বিশেষত আমি /etc/security/limits.conf( man limits.conf) দ্বারা উত্সাহিত , তবে এই উদ্বিগ্ন যে এটি কেবল প্রতি ব্যবহারকারী নিয়ন্ত্রণ দেয় এবং ফাইলটিতে মন্তব্য করা উদাহরণগুলি বর্ণনার ক্ষেত্রে বা কোথা থেকে শুরু হবে তা অস্বচ্ছ বলে মনে হয়। আমি আশা করছি যে একটি limits.confকাজ, তবে এটি যদি কাজ না করে তবে অবাক হবেন না বা এটি যদি আমার সমস্যার উপযুক্ত সমাধান না হয় বা আমি অর্জন করার চেষ্টা করছি ততটা দানাদার। প্রতি-প্রক্রিয়া-নামটি limits.confআদর্শ হবে, আবার ধরেই নেওয়া যে সীমাবদ্ধতাগুলি কাজ করে। লোকেরা যে সীমাবদ্ধতা সরবরাহ করে তা পরীক্ষা করে দেখতে পেরে আমি খুশি হব, যদিও এটি কার্যকর হয় কিনা তা পরীক্ষা করতে, যদিও আমি এই মুহুর্তে সমস্ত সমাধানের জন্য উন্মুক্ত।

ওএস এক্স কীভাবে এই জাতীয় UI সাড়া জাগাতে পারে তার কোনও অন্তর্দৃষ্টি থাকাও কার্যকর হতে পারে useful

আমি ইতিমধ্যে আমার /tmpএবং ক্যাশে ফোল্ডারগুলিকে চালু করতে টুইট করেছি এবং tmpfsসাধারণভাবে ডিস্কের ব্যবহার শূন্যের কাছাকাছি।

সাবলীলভাবে সম্পর্কিত বিষয়:

  • মেমরি overcommit

যে উত্তরগুলি আমার মনে হয় না সেগুলি কার্যকর হবে:

  • swapoff (এটি এখনও মেমোরি হগ প্রোগ্রামগুলিকে হত্যার হাত থেকে দূরে সরিয়ে দেয়, এবং মেমরিটি সত্যই খারাপ হলে সিস্টেম স্থায়ীভাবে হিম হয়ে যায় - যে কেউ এমন একটি টুইটের পরামর্শ দিতে পারে যা ওওএম-ঘাতকটিকে অদলবদলের আগে অনুরোধ করেছিল এবং নির্দিষ্ট প্রোগ্রামগুলিকে টার্গেট করে)
  • echo ?? > /sys/.../swappiness (কোন স্পষ্ট প্রভাব নেই)
  • nice (কখনও কাজ করেনি)
  • ionice (কোন তাত্পর্য লক্ষ্য করেনি)
  • সেলিনাক্স (প্রোগ্রামের অসঙ্গতিটি একটি দুঃস্বপ্ন বলে মনে হচ্ছে)
  • রিয়েলটাইম লিনাক্স, যেমন কার্নেলকে বাধাগ্রস্ত করতে পারে (কাস্টম কার্নেল সংকলন এবং আপডেট করার সাথে ডিল করতে চায় না; এটি যদি রিপোজিটরিগুলিতে স্থানান্তরিত হয় তবে ঠিক হতে পারে)
  • *

হুম, আমি কোনও অনুগ্রহ রাখতে অক্ষম; আমার ধারণা লিংকটি 48 ঘন্টার জন্য প্রদর্শিত হবে না ... ভাল আমি তখন যে সমস্ত খ্যাতি অর্জন করেছি তার সাথে
অনুগ্রহটি

1
+1, লিনাক্স ডেস্কটপের সাথে আমার প্রতিদিনের ভিত্তিতে এটিই সবচেয়ে বড় সমস্যা। আমার মাঝে মাঝে হিমশীতল হয়, সম্ভবত প্রতি দু'সপ্তাহে একবার, তবে এগুলি বিশেষত বিরক্তিকর হওয়ার জন্য যথেষ্ট নয়। তবে, এটি কেবলমাত্র অ্যাপ্লিকেশনগুলিতেই একটি সমস্যা বলে মনে হয়েছে যেমন আপনি ভারী আইও ব্যবহার করেছেন: যে অ্যাপ্লিকেশনগুলিতে ভারী সিপিইউ ব্যবহার রয়েছে সেগুলি সাধারণ সিস্টেমের কার্য সম্পাদনে খুব কম প্রভাব ফেলবে। আয়নিস সম্পর্কে জানতেন না, মনে হয় এটি সঠিকভাবে কাজ করতে পারলে এই সমস্যার সঠিক সমাধান হবে।
ক্রেজি 2

1
3 বছর পরে এবং এটি লিনাক্সে এখনও একটি সমস্যা। @ পাগল 2 বা ইউজার 76871, আমি মনে করি না এর মধ্যে আপনি কোনও সমাধান খুঁজে পেয়েছেন?
গ্লুটোনিমেট

@ গ্লুটানীমেট: হ্যাঁ, ৩২ জিবি দৈহিক র‌্যাম এবং এর চেয়ে কম কিছু নেই (ভাল, সম্ভবত ১GB জিবি ... তবে এটি চাপ দিচ্ছে), এছাড়াও প্রচুর পরিমাণে ভিডিও র‍্যাম মাআআআআআএবে। এটি উচ্চ সিপিইউ বা বাধা বা হোয়াট নোটের কারণে প্রতিক্রিয়াহীনতা ঠিক করে না তবে এটি কম-স্মৃতি পরিস্থিতিতে প্রতিক্রিয়াহীনতা রোধ করে।
ব্যবহারকারী 76871

উত্তর:


6

আপনার সিস্টেমের মতো শোনাচ্ছে ভারী অদলবদল। ব্যবহারের ফলে vmstat 1কিছু বিবরণ প্রকাশিত হতে পারে - কেবল এটিকে একটি টার্মিনাল উইন্ডোতে চলতে দিন এবং ধীর গতিতে লাথি মারলে এটিতে স্যুইচ করুন।

Tmpfs- এ / tmp এবং "ক্যাশে" রাখার পরিবর্তে, আমি noatimeবিকল্পটি মাউন্ট করা একটি সাধারণ ডিস্ক ফাইল সিস্টেম ব্যবহার করব । প্রায়শই ব্যবহৃত ডেটা যেভাবেই ক্যাশে থাকবে এবং পুরানো ডেটা অ্যাপ্লিকেশনের জন্য কিছু র‌্যাম মুক্ত করতে ডিস্কে লেখা যেতে পারে। যদি / টিএমপি এবং / বা ক্যাশে বড় হয় তবে এটি অনেক বেশি সহায়তা করতে পারে।


1
উল্লেখ করার জন্য +1 noatime
লরেন্স

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

+1, চেষ্টা করা হয়েছে vmstat 1- সনাক্তকরণ সনাক্তকরণে চূড়ান্তভাবে কার্যকর যে অদলবদল আসলে ইস্যুটির মূল ইস্যুটির একটি বড় অংশ
user76871

2
সেকি। এমন একটি লিনাক্স সিস্টেম কখনও দেখেনি যা এর জন্য ভারী অদলবদলের প্রয়োজন। df -mTmpfs ফাইল সিস্টেমে কত স্মৃতি ব্যবহৃত হয় তা আপনি পরীক্ষা করেছেন ? কিছু হয় অপেক্ষাকৃত দ্রুত আপনার র্যাম খাচ্ছে।
টার্বো জে

পরামর্শ সম্পর্কে পরামর্শ এবং -mবিকল্প সম্পর্কে আমাকে শেখানোর জন্য ধন্যবাদ । দুর্ভাগ্যক্রমে df -h -mআমার স্মৃতিতে কেবল 100MB ইঙ্গিত রয়েছে বলে মনে হয় tmpfs, তাই আমি সন্দেহ করি যে এটি tmpfs এবং ক্যাশের জন্য মেমরি ব্যবহার করার সাথে সম্পর্কিত নয় any এটিও এমন অস্বাভাবিক মনে হয় না; আমি যখন তাদের র‍্যাম সীমা অতিক্রম করি তখন একাধিক বিতরণে এটি ঘটেছিল।
user76871

5

আমি কোনও কার্নেল বিকাশকারী নই তবে আমি বহু বছর ধরে এই ইস্যুতে দর্শন দেওয়ার জন্য ব্যয় করেছি কারণ আমি বহুবার এই প্রকারান্তরে চলে এসেছি। আমি আসলে পুরো পরিস্থিতিটির জন্য একটি রূপক নিয়ে এসেছি তাই আমাকে তা বলি। আমি আমার গল্পে ধরে নেব যে "অদলবদলের" মতো জিনিসগুলির অস্তিত্ব নেই। আজকাল 32 জিবি র‌্যামের সাথে অদলবদলের খুব বেশি অর্থ নেই।

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

এখন মেয়র (= আপনি) সিদ্ধান্ত নিন যে আপনি একটি বড় রেস্তোঁরা (= ব্রাউজার) খুলতে চান। এই রেস্তোঁরাটিতে একাধিক রান্না (= ব্রাউজার ট্যাব) থাকবে। প্রতিটি কুকের জন্য প্রতি সেকেন্ডে 1 ইউনিট জল প্রয়োজন। আপনি 10 টি রান্না দিয়ে শুরু করেন, তাই পুরো পাড়ার জন্য মোট পানির ব্যবহার 100 ইউনিট জল যা এখনও ভাল is

এখন মজাদার জিনিসগুলি শুরু হয়: আপনি আপনার রেস্তোঁরায় একটি অন্য রান্না ভাড়া নেন যা মোট পানির প্রয়োজনীয়তা 101 করে তোলে যা সম্ভবত আপনার কাছে নেই। আপনার কিছু করা দরকার

জল ব্যবস্থাপনার (= কার্নেল) 3 টি বিকল্প রয়েছে।

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

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

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

এটি আমার জন্য সবচেয়ে বিরক্তিকর আচরণ কারণ আমি হিকআপগুলি ঘৃণা করি এবং এটিতে আপনার কোনও নিয়ন্ত্রণ নেই। এটি স্যুইচ অফ করতে সক্ষম হওয়ায় ভাল লাগবে। আমি লাইন ধরে কিছু ভাবছি

sed -i 's/may_unmap = 1/may_unmap = (vm_swappiness >= 0)/' mm/vmscan.c

এবং তারপরে আপনি এটিকে অক্ষম করতে vm_swappiness সেট করতে পারেন। এটি আমার ছোট পরীক্ষাগুলিতে বেশ ভালভাবে কাজ করেছে তবে হায় হায় আমি কার্নেল বিকাশকারী নই তাই আমি এটি কারও কাছে প্রেরণ করি নি (এবং স্পষ্টত উপরের সামান্য পরিবর্তনটি সম্পূর্ণ নয়)।

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

জাভার ভার্চুয়াল মেশিন এটিই করে: এটি স্টার্টআপে একটি গোছা মেমরি বরাদ্দ করে এবং তারপরে এটি থেকে কাজ করে। ডিফল্টরূপে যখন আপনার জাভা অ্যাপ্লিকেশন এটি ব্যবহার শুরু করে তখন কার্নেল কেবল মেমরির বরাদ্দ করবে। তবে আপনি যদি অতিরিক্ত কমিট অক্ষম করেন তবে কার্নেলটি সংরক্ষণটিকে গুরুত্ব সহকারে নেবে। এটি কেবলমাত্র যদি এর জন্য সংস্থানগুলি থাকে তবে বরাদ্দটি সফল হতে দেয়।

তবে এই পদ্ধতির সাথে আরও একটি গুরুতর সমস্যা রয়েছে। ধরা যাক যে একটি সংস্থা প্রতিদিন এক ইউনিট জলের জন্য অনুরোধ শুরু করে (10 টির পদক্ষেপের চেয়ে)। অবশেষে আপনি এমন একটি রাজ্যে পৌঁছে যাবেন যেখানে আপনার 0 টি মুক্ত ইউনিট রয়েছে। এখন এই সংস্থা আরও বেশি বরাদ্দ দিতে পারবে না। এটি ঠিক আছে, যিনি যাইহোক বড় সংস্থাগুলি সম্পর্কে চিন্তা করেন। তবে সমস্যাটি হ'ল ছোট বাসাগুলিও বেশি জল অনুরোধ করতে সক্ষম হবে না! হঠাৎ পর্যটকদের আগমন মোকাবেলায় আপনি ছোট ছোট সরকারী বাথরুমগুলি তৈরি করতে সক্ষম হবেন না। আপনি নিকটবর্তী বনের আগুনের জন্য জরুরী জল সরবরাহ করতে পারবেন না।

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

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

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

আমি মনে করি এটি সমস্যার সহজ সমাধানগুলির মধ্যে একটি: এটির চেয়ে বেশি বিকল্প আপনার কাছে রয়েছে বলে মনে হয় না, তবে কেন তাড়াতাড়ি অপেক্ষা করা উচিত না, তাই না? সমস্যাটি হ'ল OOM ঘাতকটিকে এড়ানোর জন্য কার্নেল কখনও কখনও প্রচুর কাজ করে। এজন্য আপনি দেখতে পাচ্ছেন যে আপনার ডেস্কটপটি খুব ধীর গতির এবং কার্নেল এটি সম্পর্কে কিছুই করছে না। তবে সৌভাগ্যক্রমে ওওএম কিলারকে নিজেই অনুরোধ করার একটি বিকল্প রয়েছে! প্রথমে নিশ্চিত হয়ে নিন echo 1 | sudo tee /proc/sys/kernel/sysrqযে যাদুটি সিসারকি কীটি সক্ষম হয়েছে (উদাঃ ) তারপরে যখনই আপনি মনে করেন যে কার্নেলটি মেমরিটিতে কম চলছে, কেবল Alt + SysRQ, Alt + f টিপুন।

ঠিক আছে তাই সব সুন্দর তবে আপনি এটি ব্যবহার করে দেখতে চান? কম স্মৃতি পরিস্থিতি পুনরুত্পাদন করা খুব সহজ। আমার এটির জন্য খুব সাধারণ অ্যাপ রয়েছে। আপনার এটি দুটিবার চালানো দরকার। প্রথম রান নির্ধারণ করবে আপনার কতটা নিখরচায় র‌্যাম রয়েছে, দ্বিতীয় রানটি কম মেমরির পরিস্থিতি তৈরি করবে। নোট করুন যে এই পদ্ধতিটি ধরে নিয়েছে যে আপনি সোয়াপ অক্ষম করেছেন (উদাহরণস্বরূপ করুন sudo swapoff -a)। কোড এবং ব্যবহার নিম্নলিখিত:

// gcc -std=c99 -Wall -Wextra -Werror -g -o eatmem eatmem.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main(int argc, char** argv)
{
    int limit = 123456789;
    if (argc >= 2) {
        limit = atoi(argv[1]);
    }
    setbuf(stdout, NULL);
    for (int i = 1; i <= limit; i++) {
        memset(malloc(1 << 20), 1, 1 << 20);
        printf("\rAllocated %5d MiB.", i);
    }
    sleep(10000);
    return 0;
}

এবং আপনি এটি কীভাবে ব্যবহার করবেন তা এখানে:

$ gcc -std=c99 -Wall -Wextra -Werror -g -o eatmem eatmem.c
$ ./eatmem
Allocated 31118 MiB.Killed
$ ./eatmem 31110
Allocated 31110 MiB.Killed

প্রথম অনুরোধটি সনাক্ত করেছে যে আমাদের কাছে ফ্রি র‌্যামের 31,118 মাইবি রয়েছে। তাই আমি অ্যাপ্লিকেশনটিকে 31,110 মাইবি র‌্যাম বরাদ্দ করতে বলেছিলাম যাতে কার্নেল এটি হত্যা না করে তবে আমার প্রায় সমস্ত স্মৃতি খায়। আমার সিস্টেম হিমশীতল: এমনকি মাউস পয়েন্টারটিও বুজেনি। আমি Alt + SysRQ, Alt + f টিপ করেছি এবং এটি আমার ডায়েটম প্রক্রিয়াটিকে মেরে ফেলেছে এবং সিস্টেমটি পুনরুদ্ধার করে।

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

টিএল; ডিআর: যদিও বর্তমানে পেজিং পুরোপুরি এড়ানোর কোনও উপায় নেই তবে আপনি ওভার কমিট অক্ষম করে পুরো সিস্টেম-থামিয়ে প্রশমন করতে পারেন। আপনার সিস্টেমটি তবুও স্বল্প-মেমরির অবস্থার সময় অন্যরকমভাবে ব্যবহারযোগ্য হবে না। উপরে নির্বিশেষে, স্বল্প-স্মৃতি পরিস্থিতিতে কর্নেলের নির্বাচনের বৃহত প্রক্রিয়াটি হারাতে Alt + SysRQ, Alt + f টিপুন। আপনার সিস্টেমটি কয়েক সেকেন্ড পরে তার প্রতিক্রিয়া পুনরুদ্ধার করা উচিত। এটি ধরে নিয়েছে যে আপনার কাছে ম্যাজিক সিস্টার্ক কী সক্ষম রয়েছে (এটি ডিফল্টরূপে নয়)।


আমি আপনাকে এই উত্সটিতে অনুগ্রহ হিসাবে আমার সমস্ত খ্যাতি দিয়েছি, তাই আমি কোনও মন্তব্যও করতে পারিনি :) অবশেষে, আমি এই দুর্দান্ত উত্তরের জন্য আপনাকে ধন্যবাদ জানাতে কিছু উপার্জন করেছি! আমি আমার ল্যাপটপটি 8 জিবি সহ সমস্ত সময় এই সমস্যাটি মোকাবেলা করছিলাম (ক্রেজি, তবে আমার সিস্টেমটি সেই দিনগুলিতে নিয়মিত স্মৃতি থেকে বেরিয়ে আসছিল)। সম্প্রতি, আমি এই প্রকল্পটি পেয়েছি: github.com/rfjakob/earlyoom , যা খুব দেরী হওয়ার আগে সিস্টেমটিকে কিছু প্রক্রিয়া মেরে ঝুলিয়ে রাখতে রোধ করতে সহায়তা করতে পারে।
ভ্লাদ ফ্রোলভ

4

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

মনে হচ্ছে আপনার কাছে এমন কিছু অ্যাপ্লিকেশন রয়েছে যা কার্নেল সুবিধা বা ড্রাইভারের উপর নির্ভর করে যা অতিরিক্ত বোঝা পাচ্ছে load আপনি ব্রাউজার এবং সূচকগুলি ব্যবহার না করে কী কী অ্যাপ্লিকেশনগুলি ব্যবহার করছেন এবং আপনি সূচকগুলি অক্ষম করেছেন সে সম্পর্কে আপনি খুব বেশি বিশদে যান না।

আপনি কোনও ডেস্কটপ পরিবেশ বা উইন্ডো ম্যানেজারে স্যুইচ করার চেষ্টা করতে পারেন যা LXDE বা আইসডব্লিউএম এর মতো কম সংস্থান গ্রহণ করে। কর্মক্ষেত্রে আমি খুব ন্যূনতম ডেস্কটপ এনভায়রনমেন্টের জন্য এলএক্সডিইএল ইনস্টলড এবং রক্স-ফাইলারযুক্ত একটি লিনাক্স সিস্টেম ব্যবহার করি। এই লিনাক্স সিস্টেমটির উদ্দেশ্য VMWare প্লেয়ার চালানো যাতে আমি একসাথে উইন্ডোজ এক্সপি এবং উইন্ডোজ 7 চালাতে পারি। এটি আপনি যা বলছেন তার সাথে এটি একই রকম হার্ডওয়্যার চশমা এবং এই ভারী বোঝার অধীনে আমি হার্ডওয়ারটি দিয়ে যাচ্ছি না বলে আমার কাছে খুব বেশি প্রতিক্রিয়াশীলতা সমস্যা নেই। লিনাক্স নিজেই আমার কাছে কোনও প্রতিক্রিয়াশীল সমস্যা নেই (এটি সাধারণত এমন ভিএমএস হয় যা আমাকে মাঝে মাঝে দ্বিতীয় অপেক্ষা করে তোলে এবং এটি 2 টি ভিএম + 1 ওএসের মধ্যে 1 ডিস্ক ভাগ করে নেওয়া হয়) এবং যখনই ভিএমএস স্থগিত বা বন্ধ করতে সক্ষম হয় যখনই আমি চাই.

সুতরাং আমার কাছে এটি আপনি চালাচ্ছেন এমন নির্দিষ্ট অ্যাপ্লিকেশনগুলির সাথে কিছু সমস্যা নির্দেশ করে।

আপনার ডিস্ক ড্রাইভের জন্য ডিএমএ সক্ষম? (ব্যবহার hdparm) আপনি যদি ফুল-ডিস্ক এনক্রিপশন ব্যবহার করে থাকেন তবে এর জন্য সিপিইউতে যাওয়ার জন্য সমস্ত ডিস্ক ট্র্যাফিকের প্রয়োজন হয় যা ডিএমএর সুবিধার অনেকাংশে উপেক্ষা করে। এর প্রভাব হ'ল হাই ডিস্ক ট্র্যাফিকের ফলে সিপিইউ স্পাইক হয় যার ফলে পুরো সিস্টেমটি ধীর হয়ে যায়। (সম্পাদনা: স্পষ্ট করে বলতে, ডিএমএ অক্ষম করা বা ব্যবহার dm-cryptকরা উচ্চ ডিস্ক ট্র্যাফিকের সময় উচ্চ সিপিইউ সৃষ্টি করবে)


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

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

এছাড়াও যদি আপনি FUSE এনটিএফএস ব্যবহার করে যা অচ্ছলতার কারণ হতে পারে।
LawrenceC

1
আমি সচেতন যে র‌্যাম-ভিত্তিক ফাইল সিস্টেম যেমন টিএমপিএফস (স্পষ্টতই) র‌্যামটি দ্রুত সঞ্চালনের কারণ ঘটায় এবং লাইটওয়েট ডাব্লুএম অন্তর্নিহিত সমস্যার লক্ষণগুলি সামান্য হ্রাস করতে পারে। ডিস্কে খারাপ প্রতিক্রিয়াশীলতার কারণে tmpfs ব্যবহার করার চাপ আমি অনুভব করেছি। তবুও আপনার পরামর্শের জন্য আপনাকে ধন্যবাদ, বিশেষত ডিএমএ সম্পর্কিত অংশটি, যা আমি সম্ভবত সম্পর্কিত বিষয়গুলির তালিকায় যুক্ত করেছি। রেকর্ডের জন্য, আমি বিশ্বাস করি যে ডিএমএ সক্ষম হয়েছে এবং আমি কোনও ক্রিপ্টোগ্রাফিক ফাইল সিস্টেম ব্যবহার করছি না।
user76871

1

এটি লিনাক্সের শিডিয়ুলারের একটি সাধারণ সমস্যা। যখনই আইও ভারী ক্রিয়াকলাপ ঘটে তখন সিস্টেমটি ক্রলটিতে ধীর হয়ে যায়। পরিস্থিতি উন্নত করতে আপনি করতে পারেন এমন অনেক কিছুই নেই যতক্ষণ না আপনি কার্নেল হ্যাকিংয়ের মধ্যে পড়ে :)

এগুলি সাহায্য করতে পারে:

http://www.phoronix.com/scan.php?page=article&item=linux_2637_video&num=1

http://www.osnews.com/story/24223/Alternative_to_the_200_Lines_Kernel_Patch_that_Does_Wonders_


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

0

যদিও প্রশ্নটি দুই বছরেরও বেশি পুরানো এবং @ ypsu এর উত্তর দুর্দান্ত, লিনাক্স ভিত্তিক সিস্টেমগুলি র্যামের অভাবে খারাপ হয়ে যাওয়ার পরিস্থিতি এখনও এখানে রয়েছে।

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

এমন একটি প্রকল্প রয়েছে যা ব্যবহারকারীর স্পেস ডেমন হিসাবে অনেক দেরী হওয়ার আগে সর্বাধিক স্মৃতি-ক্ষুধার্ত প্রক্রিয়াগুলিকে হত্যা করে: https://github.com/rfjakob/earlyoom

এছাড়াও, আমি মেমরি-ক্ষুধার্ত অ্যাপ্লিকেশনগুলির (যেমন ক্রোম) বুদ্ধিমান মেমরি সীমা সহ ডকারের পাত্রে ব্যবহার করি।

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