মেমরি ফুরিয়ে গেলে সিস্টেম হ্যাং হয়


34

আমি একটি আইপিসি 900a পেয়েছি: এটিতে ডিস্ক হিসাবে 8 জিবি ফ্ল্যাশ এবং কেবল 1 জিবি র‌্যাম রয়েছে। এতে ইনস্টল করা লিনাক্স বিতরণটি আর্চলিনাক্স।

সিস্টেমটি যখন স্মৃতি থেকে সরে যায় তখন এটি অত্যন্ত প্রতিক্রিয়াহীন হয়ে যায় : টিটিওয়াই 1 তে স্যুইচ করা বা মাউস পয়েন্টারকে সরিয়ে নিয়ে যাওয়ার মতো কাজ করতে কয়েক সেকেন্ড / মিনিট সময় লাগে। কখনও কখনও দেখে মনে হয় সিস্টেমটি ঠিক হিমশীতল: তিনটি আমাদের আগে আমি এটিকে একা থাকতে দিয়েছি এবং এখনও পর্যন্ত কিছুই পরিবর্তন হয় নি।

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

যখন স্মৃতিশক্তি শেষ হয়ে যায় তখন কার্নেল কিছু এলোমেলো অ্যাপ্লিকেশনকে হত্যা করার কথা নয়? কেন এটি ব্যর্থ হয় (বা যুগে যুগে)?

কয়েক মাস / বছর আগে আমি ইতিমধ্যে এটি আরও খতিয়ে দেখার চেষ্টা করেছি, তবে বাস্তবে কার্যকর হবে এমন কিছুই খুঁজে পেলাম না ...


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

1
আমি LXDE ব্যবহার করছি। ক্রোমিয়াম হল এমন একটি প্রোগ্রাম যা সাধারণত র‍্যামের বেশিরভাগ অংশ নেয়। যাইহোক এটি পয়েন্ট নয়। আমার সিস্টেমটি কতটা মেমরি ব্যবহার করছে সে সম্পর্কে অবশ্যই আমার যত্ন নেওয়া উচিত নয়, এটিই আমার সিস্টেম, যার কারণে মারা যাওয়া উচিত নয়। যদি আমার সিস্টেমটি স্মৃতিতে সংক্ষিপ্ত হয়ে চলেছে তবে এটি যে কোনও অ্যাপ্লিকেশন চায় এটি নির্দ্বিধায় বিনামূল্যে, আমি কেবল এটি স্থির না করা চাই !
পেরো

6
আমি বলতে চাচ্ছি, আমি গম্ভীরভাবে এই মত একটি স্ক্রিপ্ট (pseudocode মধ্যে) চলমান সম্পর্কে চিন্তা করছি: while(true){ if( $FREE_MEMORY<10MB ){ kill -9 $RANDOM_PID; } }। এটি অবশ্যই আমার সমস্যার সমাধান করবে। তবে অপেক্ষা করুন, কার্নেলটি এটি করার কথা না (এবং আমার স্ক্রিপ্টের চেয়ে আরও ভাল উপায়ে)? কেন এটি তার কাজ করছে না?
পেরো

2
@ মার্সিন, এটি কেবল সমস্যাটি সরিয়ে দেবে, এটি ঠিক করবে না। আমার কাছে 4 গিগাবাইট মেমরি থাকলেও (কিছু সোয়াপ দেওয়ার জন্য ধন্যবাদ), আমার সিস্টেমের মেমরিটি শেষ হয়ে যেতে পারে (এভাবে ঝুলন্ত)। আমি যে বিষয়টি এড়াতে চাই তা হ'ল র‌্যামের বাইরে গেলে আমার সিস্টেম হিমশীতল। আমার র‌্যাম শেষ হওয়ার সাথে সাথে যদি আমার কার্নেলটি হঠাৎ ক্রোমিয়ামটি মেরে ফেলত তবে আমি এখন যে 1 জিবি পেয়েছি তাতে আমি খুশি হতে পারি।
পেরো

4
@ লাইভ "ম্যাজিক সিসার্ক" একটি মূল কম্বো যা সরাসরি কার্নেলে চলে যায়। কীবোর্ড এবং মাউস প্রতিক্রিয়াবিহীন থাকলেও এটি প্রায়শই কাজ করবে। দেখুন en.wikipedia.org/wiki/Magic_SysRq_key
রমন

উত্তর:


14

কীবোর্ড সংমিশ্রণ দ্বারা সরাসরি ওওএম-কিলার (মেমোরি কিলারের বাইরে) কল করা সম্ভব:

SysRq-F

সিসআরকি কীটি সাধারণত কীবোর্ডগুলিতে প্রটিএসসি কীতে একত্রিত হয়।

ওম-হত্যাকারী কিছু প্রক্রিয়া (-es) মেরে ফেলে এবং সিস্টেমটি পুনরায় প্রতিক্রিয়াশীল হয়।

উপরের মন্তব্যগুলিতে এই বৈশিষ্ট্যটির বিষয়ে পরামর্শের জন্য থেক্স এক্স রমন।

PS: এটি আমাকে অনেক সাহায্য করেছে। আমি মতামতের সাথে একমত যে এটি যদি Chrome এর কারণে ঘটে থাকে বা মেমরির লোভী সফ্টওয়্যার থেকে আসে তবে এই সমস্যাটি সম্পর্কে এটি সবচেয়ে দরকারী পরামর্শ। তবে আপনার মনে রাখতে হবে যে ওওএম-হত্যাকারী কিছু গুরুত্বপূর্ণ প্রক্রিয়াটিকে হত্যা করতে পারে, সাবধানতার সাথে এটি ব্যবহার করুন।


2
আমি কী আছে PrtScn|SysRq। তবে টিপলে SysRq - Fকেবল একটি স্ক্রিনশট পাওয়া যায়
লি

2
আপনি যেহেতু মূলত আমার মন্তব্যটি উপরে করেছেন এবং এটিকে একটি উত্তর দিয়েছেন, তাই একটি ছোট অ্যাট্রিবিউশনটি দুর্দান্ত হত। আমি আপনাকে যাহাই হউক না কেন :-)
রমন

3
@ লাই আপনি এটি সক্ষম করতে হবে। কিছু ডিস্ট্রোদের ডিফল্টরূপে ম্যাজিক সিসার্ক সক্ষম হয় না।
রমন

2
@ রমন আমি 99% কে বাজি ধরেছি যারা ডিফল্টরূপে এটি "সক্ষম" করতে পারে না কারণ তাদের মেশিনটি ইতিমধ্যে হিমায়িত ... কেন এটি ডিফল্টরূপে সক্ষম করা হয়নি?
থিসিহাই

3
@ থেমিহাইহহ যেহেতু অনেক লোক এটিকে একটি সুরক্ষা ঝুঁকি বলে মনে করে - এটি আপনাকে কোনও ইনপুট ডিভাইসে শারীরিক অ্যাক্সেসের মাধ্যমে কার্নেলে সরাসরি অ্যাক্সেস দেয়, অ্যাপ্লিকেশন স্টেট যেমন লক স্ক্রিন এবং এ জাতীয় নির্বিশেষে।
রমন

12

জিনিসের প্রাকৃতিক অবস্থাটি হ'ল অ্যাপ্লিকেশন ডেটাটি র‍্যামে থাকে এবং ফাইলগুলি ডিস্কে থাকে।
জিনিসের আদর্শ অবস্থা, পারফরম্যান্স বুদ্ধিমান, হ'ল ঘন ব্যবহারের ডেটা র‍্যামে থাকে এবং এই মুহুর্তে যে ডেটা প্রয়োজন হয় না তা ডিস্কে রয়েছে।
একটি সাধারণ সিস্টেমে, কার্নেল এই আদর্শে পৌঁছানোর চেষ্টা করার জন্য দুটি কাজ করে:

  • অ্যাপ্লিকেশন ডেটা যা কিছু সময়ের জন্য ব্যবহার করা হয়নি তা ডিস্কে স্থানান্তরিত হতে পারে: এটি অদলবদল।
  • সম্প্রতি ব্যবহৃত ফাইলগুলি থেকে ডেটা র‍্যামে রাখা হয়: এটি হ'ল ডিস্ক ক্যাশে (ডিস্ক থেকে পড়া ডেটার জন্য) এবং ডিস্ক বাফারগুলি (যে ডেটা যা ডিস্কে লিখতে চলেছে তার জন্য)।

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

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

এই বিষয়ে আরও তথ্যের জন্য, এই এলকেএমএল আলোচনা এবং এই ব্লগ পোস্টটি দেখুন

আমি ডিস্ক ক্যাশে সর্বনিম্ন পরিমাণ র‍্যাম সংরক্ষণ করতে কার্নেলটিকে বলার প্রত্যক্ষ উপায় সম্পর্কে জানি না। আপনি নিজের র‍্যামের একটি ছোট্ট অংশ অদলবদল স্থান হিসাবে সেট আপ করতে পারেন , সম্ভবত সংক্ষেপিতও । আছে যে সামনে সাফল্য রিপোর্ট যদিও আমি আপনার নির্দিষ্ট ক্ষেত্রে নিশ্চয়তা দিই না।


1
ব্যাখ্যা এবং লিঙ্কগুলির জন্য ধন্যবাদ, তারা অদলবদল সম্পর্কে কিছু সন্দেহ মুছে ফেলতে সহায়তা করেছিল। আমার প্রশ্নের উত্তর @ মার্সিনের অনুসরণ করে, আমি আমার র‌্যামে 256MB কমপ্রেস ভার্চুয়াল সোয়াপ (কমপ্যাচ) সেট আপ করেছি। এটি যাইহোক আমার প্রশ্নের পুরোপুরি উত্তর দেয় না: আমি বুঝতে পারি যে পুরো র‌্যাম কেবলমাত্র প্রয়োগ দ্বারা ব্যবহৃত হয় এবং কোনও কিছুই ক্যাশে করা হয় না তখন আমার সিস্টেমটি ধীর হবে; আমি যখন পুরোপুরি র‌্যামের বাইরে আছি তখন কেন এই সিস্টেমটি কয়েক মিনিট / ঘন্টা (সম্ভবত চিরকালের জন্য?) স্থির থাকে I আমি মনে করি যে আমার কার্নেল টিটিওয়াই 1 তে স্যুইচ করার জন্য যদি 3 ঘন্টা পর্যাপ্ত না হয় তবে মেমরি থেকে বের হয়ে গেলে অ্যাপ্লিকেশনগুলিকে হত্যা করার ক্ষেত্রে তার কাজ করছে না।
পেরো

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

6

এটি 2007 সাল থেকে একটি পরিচিত বাগ - উচ্চ মেমরির ব্যবহারের ক্ষেত্রে সিস্টেম ফ্রিজ দেখুন ।

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


2
উবুন্টুতে "সাইনড" বলে মনে হচ্ছে। সম্ভবত ডিই-র ব্যবহারকারীকে সতর্ক করা বা মেমরি-নিবিড় অ্যাপটি স্থির করা উচিত?
nkkollaw

1
@ এনব্রোগি - নিঃশব্দে জমাট বাঁধা কিছুই। তবে শুভকামি উবুন্টুকে বোঝাতে রাজি হন।
ড্যান ড্যাসক্লেস্কু

6

সম্প্রতি আমি আমার সমস্যার সমাধান খুঁজে পেয়েছি।

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

ফেসবুকের ওওএমডি-র মতো কয়েকটি বিকল্পের কথাও আমি তাদের সার্ভারে চালনার জন্য বিকাশ করেছি, তবে আমি এটি ব্যবহার করে দেখিনি

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