"বৃহত্তম প্রক্রিয়াটি হত্যা করুন" বোতামটি


14

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


আপনার মানে কি "বৃহত্তম প্রক্রিয়াটি হত্যা করুন" কমান্ড?
রমেশ

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

@Patrick overcommit_memoryহয় 0, overcommit_ratioহয় 50
রিঅ্যাক্টরমনক

উত্তর:


12

আপনার মন্তব্য থেকে মনে হচ্ছে, সিস্টেমটি কেবল অদলবদল করছে।

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

যেহেতু আপনি (স্বয়ংক্রিয় মোড) overcommit_memoryসেট করেছেন 0তাই কার্নেল মেমরির ওভারকমিট সম্পাদন করছে। সুতরাং আপনার বর্ণিত আচরণ থেকে মনে হচ্ছে, সিস্টেমটি কেবল ভারী অদলবদল করছে।

এখান থেকে 2 টি বিকল্প রয়েছে।

অদলবদল হ্রাস করুন

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

আপনার আসল ধারণা, ম্যানুয়ালি একটি প্রক্রিয়া হত্যা।

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

কার্নেলের কাছে এটি "ম্যাজিক সিসারকিউ" বলে। এটি কিছুটা কার্যকারিতা যা কার্নেলকে কিছু প্রকারের জরুরি অপারেশন করতে বলে perform এটি "সমস্ত খণ্ডের কেবলমাত্র পঠনযোগ্য রিমাউন্ট", "সমস্ত ফাইল সিস্টেম সিঙ্ক করুন" বা "এখনই পুনরায় বুট করার" মতো জিনিস হতে পারে। এই বিকল্পগুলির মধ্যে একটি হ'ল ওওএম ঘাতককে অনুরোধ করা।

যদি আপনার কার্নেলে যাদু SysRq সক্ষম (কার্নেল বিকল্প CONFIG_MAGIC_SYSRQ) থাকে তবে আপনি এটি 2 উপায়ে করতে পারেন।

  1. Alt+ SysRq+ f
    কীবোর্ডে কেবল এই 3 টি টিপুন।
  2. echo f > /proc/sysrq-trigger
    এটি কীবোর্ড পদ্ধতির মতো হুবহু একই কাজটি সম্পাদন করবে, তবে তা প্রগ্রেমেটিকভাবে করবে।

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

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


আমি ওওএম কিলার সম্পর্কে জানতাম না। আমি এমন একটি স্ক্রিপ্টের কথা ভাবছিলাম যা ধারাবাহিকভাবে মেমরির ব্যবহার topবা psকমান্ড ব্যবহারের নিরীক্ষণ করে এবং যদি এটি নির্দিষ্ট থ্রেশহোল্ড সীমা অতিক্রম করে, killকমান্ড ব্যবহার করে সেই প্রক্রিয়াটিকে হত্যা করে ।
রমেশ

আমি কোনও অদলবদল করি না।
রিঅ্যাক্টরমনক

ওম কিলার দ্বারা কোন প্রক্রিয়াটি খুন হয়েছিল তা দেখতে:grep -E "oom-killer|Killed process" /var/log/syslog /var/log/syslog.1
লেসমান

@ তাস ওহ, আমি "আমি অদলবদল বাদ দেওয়ার সিদ্ধান্ত নিয়েছি" মন্তব্যটি সম্পর্কে সম্পূর্ণ ঝলক দিয়েছি, দুঃখিত :-( যদিও "ম্যানুয়ালি একটি প্রক্রিয়াটি মেরে ফেলা হবে" তথ্য এখনও রয়েছে However তবে স্মৃতিশক্তি ফুরিয়ে যাওয়ার পরে আপনার মন্থর হওয়া উচিত নয় You কার্নেল অভিজ্ঞতা মাত্র কিছু প্রাণনাশ করা উচিত।
প্যাট্রিক

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