এখানে ব্যাখ্যা করা হয়েছে যে ওওএম-কিলারটি overcommit_memory
এবং এর মাধ্যমে কনফিগার করা যায়:
- 2 = অতিরিক্ত কমিট নেই। খুব বেশি জিজ্ঞাসা করলে বরাদ্দগুলি ব্যর্থ হয়।
- 0, 1 = অতিরিক্ত কমিট (তাত্পর্যপূর্ণ বা সর্বদা)। যখন খুব বেশি মেমোরি আসলে অ্যাক্সেস হয় তখন কিছু হিউরিস্টিকের ভিত্তিতে কিছু প্রক্রিয়া (এস) হত্যা করুন।
এখন, আমি এটি পুরোপুরি ভুল বুঝে উঠতে পারি, তবে কেন খুব কার্যকর প্রক্রিয়াটি যে এটি বরাদ্দ করা হয়েছে তা অ্যাক্সেস করার চেষ্টা করে কেন একটি বিকল্প নেই (বা এটি ডিফল্ট নয় কেন)?
একটি সমালোচনামূলক সিস্টেম প্রক্রিয়া যদি খুব বেশি মেমরির জন্য জিজ্ঞাসা করে?
—
লরেন্স
প্রথম স্থানে - এটি এই জিনিসটি করতে পারে। তবে, এই প্রশ্নের সবচেয়ে বড় সমস্যাটি হ'ল সমস্ত সম্ভাবনার মধ্যে যদি কোনও প্রক্রিয়া মেমরির জন্য জিজ্ঞাসা করে তবে তা নতুনভাবে কার্যকর করা হয় - বা, অন্য কথায়, এটি একটি বর্তমান প্রক্রিয়াতে জড়িত একটি নতুন প্রক্রিয়া। আপনি কি OOM এর পরিবর্তে 3 দিনের জন্য অন-খোলা ইমেল ক্লায়েন্টকে সিস্টেমের মেমোরি নষ্ট করার অনুমতি দেবেন বা আপনি বরং ইউটিউবকে এই বছর কিছুটা সময় লোড করবেন? linuxatemyram.com
—
মাইকেসার্ভ
এই কি
—
বর্মার
no overcommit
বিকল্প মূলত আছে। যদি কোনও প্রক্রিয়া খুব বেশি স্মৃতি চেয়ে বলে তবে এটি ব্যর্থ হয়। যদি এটি ত্রুটিটি পরীক্ষা করে তবে এটি সাধারণত নিজেকে মেরে ফেলবে; যদি এটি না ঘটে তবে এটি সম্ভবত যে নাল পয়েন্টারটি malloc()
ফেরত দেবে, এবং এটি ক্র্যাশ হবে তা অবজ্ঞার চেষ্টা করার পরে এটি সম্ভবত একটি সেগমেন্টেশন ত্রুটিটি পাবে।
উল্লেখ্য যে 2 প্রকৃতপক্ষে
—
হ্যান্স_মাইন 2'18
no overcommit
মোড, উদ্ধৃত উত্স অনুসারে (যেমন কার্নেল.আর / ডক / ডকুমেন্টেশন / ভিএম / ওভারকমিট- অ্যাকাউন্টিং )। আমি মনে করি আমি সেই অনুযায়ী আপনার প্রশ্নটি সম্পাদনা করব।