আপনার মন্তব্য থেকে মনে হচ্ছে, সিস্টেমটি কেবল অদলবদল করছে।
লিনাক্সের একটি ওওএম হত্যাকারী রয়েছে, যখন সিস্টেমটি যখন এটির মেমরির অতিরিক্ত অনুমতি দেয় এবং তখন তা শেষ হয়ে যায় inv
ডিফল্টরূপে লিনাক্স মেমোরি ওভারকমিট সম্পাদন করে, যার মূলত এটি প্রোগ্রামগুলিকে সিস্টেমের চেয়ে বেশি মেমরি দেয়। এটি এই অনুমানের ভিত্তিতে করে যে প্রোগ্রামগুলি প্রকৃতপক্ষে তারা যে সমস্ত মেমরি চায় তাদের ব্যবহার করবে না। তবে সিস্টেমটি যখন মেমরির বাইরে চলে যায়, এটি ইতিমধ্যে বিভিন্ন চলমান প্রক্রিয়াগুলিকে জানিয়েছিল যে তাদের স্মৃতি রয়েছে, সুতরাং এটি এটিকে আর অস্বীকার করতে পারে না। পরিবর্তে এটি যা করে তা হ'ল ওওএম ঘাতককে প্রার্থনা করা। OOM হত্যাকারী মূলত এমন একটি প্রক্রিয়া আবিষ্কার করে যা কার্নেল মনে করে যে মেমরির বহির্ভূত অবস্থার প্রশ্রয় দেয়। সাধারণত এটি সর্বাধিক পরিমাণ স্মৃতি ব্যবহার করার প্রক্রিয়া, তবে অ্যালগরিদম আসলে এর চেয়ে অনেক জটিল।
যেহেতু আপনি (স্বয়ংক্রিয় মোড) overcommit_memory
সেট করেছেন 0
তাই কার্নেল মেমরির ওভারকমিট সম্পাদন করছে। সুতরাং আপনার বর্ণিত আচরণ থেকে মনে হচ্ছে, সিস্টেমটি কেবল ভারী অদলবদল করছে।
এখান থেকে 2 টি বিকল্প রয়েছে।
অদলবদল হ্রাস করুন
আপনার সিস্টেমটি র্যামের বাইরে চলেছে, এবং তাই কার্নেলটি জিনিসগুলিকে অদলবদল করতে শুরু করে। যদি আপনার সিস্টেমের অদলবদল শেষ হয়ে যায়, তবে এটি OOM হত্যাকারীকে আহ্বান জানায়। তবে যেহেতু আপনার কাছে ফ্রি অদলবদল বাকি রয়েছে তাই এটি ঘটে না।
আপনার আসল ধারণা, ম্যানুয়ালি একটি প্রক্রিয়া হত্যা।
আপনি যখন মনে করেন যে সিস্টেমটি খুব বেশি অদলবদল করছে এবং কোনও কিছু মারা যাওয়ার দরকার হয় তখন আপনি ম্যানুয়ালি কোনও প্রক্রিয়াটিকে হত্যা করতে পারেন। এটি কার্নেল সিসআরকিউ ট্রিগারগুলির মাধ্যমে করা যেতে পারে।
কার্নেলের কাছে এটি "ম্যাজিক সিসারকিউ" বলে। এটি কিছুটা কার্যকারিতা যা কার্নেলকে কিছু প্রকারের জরুরি অপারেশন করতে বলে perform এটি "সমস্ত খণ্ডের কেবলমাত্র পঠনযোগ্য রিমাউন্ট", "সমস্ত ফাইল সিস্টেম সিঙ্ক করুন" বা "এখনই পুনরায় বুট করার" মতো জিনিস হতে পারে। এই বিকল্পগুলির মধ্যে একটি হ'ল ওওএম ঘাতককে অনুরোধ করা।
যদি আপনার কার্নেলে যাদু SysRq সক্ষম (কার্নেল বিকল্প CONFIG_MAGIC_SYSRQ
) থাকে তবে আপনি এটি 2 উপায়ে করতে পারেন।
- Alt+ SysRq+ f
কীবোর্ডে কেবল এই 3 টি টিপুন।
echo f > /proc/sysrq-trigger
এটি কীবোর্ড পদ্ধতির মতো হুবহু একই কাজটি সম্পাদন করবে, তবে তা প্রগ্রেমেটিকভাবে করবে।
আপনি অদলবদল সম্পূর্ণরূপে অক্ষম করতে পারতেন এবং আমি আমার বেশিরভাগ সিস্টেমে এটিই করি এবং এই সঠিক কারণে। অদলবদলটি উপকারী যে এতে কার্নেলটি ব্যবহার করা হচ্ছে না এমন ডেটাগুলি অদলবদল করে অদলবদল করবে, আপনার আরও বেশি মেষকে ক্যাশে ব্যবহার করার অনুমতি দেয়। তবে এটি আপনাকে দেখা এই বাধ্যতামূলক অদলবদলের দিকে নিয়ে যায়।
আমি ব্যক্তিগতভাবে মনে করি যে সর্বোত্তম সমাধানটি জোর করে অদলবদল করার জন্য ওওএম কিলারকে ডাকার জন্য এক ধরণের কার্নেল বিকল্প। মূলত প্রিপ্রিমটিভ অদলবদলকে কাজ করতে দিন, তবে কার্নেল যদি আপনাকে র্যামের বাইরে না থেকে কিছু বদলে নিতে বাধ্য হয়, তবে ওওএম ঘাতককে অনুরোধ করুন।
দুর্ভাগ্যক্রমে এটি কেবল আমার নিজস্ব ইচ্ছা। এটি এটি করে না।