আমি লিনাক্সে মেমরির অতিরিক্ত কমিটিং ব্যবহার করে /proc/sys/vm/overcommit_memory
দেখেছি এবং আমি কয়েকটি নিবন্ধ পড়েছি যা একই জিনিস বলে না।
"ভুল দিকে যাচ্ছে" শিরোনামে এই ডকটি বলে, "মান 1: ওভারকমিট করুন, এবং 0 (ডিফল্ট): করবেন না", তবে পরবর্তী কয়েক লাইনে এটি উল্লেখ করে একই রকম জিনিসগুলি, এটি আসলে সত্য নয় এবং এর 0 এর অর্থ "অতিরিক্ত পরিমাণে যুক্তিযুক্তি কতটা যুক্তিসঙ্গত তা সম্পর্কে অনুমান"। তার মানে মেমরি ওভারকমিট 0, মান ব্যবহার করে অক্ষম নয় ?
এটি আরও বলে যে 1 টি "কখনই কোনও ম্যালোক () অস্বীকার করবে না" এর 2 অর্থ যার সাথে "ওভার কমিট সম্পর্কে সুনির্দিষ্ট হতে হবে - কখনও অদলবদল স্পেসের চেয়ে বড় ভার্চুয়াল ঠিকানার স্থান এবং শারীরিক স্মৃতিতে ভগ্নাংশ ওভারকমিট_টিটিও কখনই প্রতিশ্রুতিবদ্ধ না" "
অন্যদিকে রেড হ্যাট ম্যাগাজিনটি বলে, "যদি মান 0 হয় তবে কার্নেলটি কোনও অ্যাপ্লিকেশন থেকে ম্যালোক কলটিতে মেমরির অনুরোধ জানাতে পর্যাপ্ত মেমরি মুক্ত থাকতে পারে কিনা তা নির্ধারণ করে পরীক্ষা করে থাকে। যদি পর্যাপ্ত মেমরি থাকে, তবে অনুরোধটি মঞ্জুরি দেওয়া হয়েছে Otherwise নইলে এটি অস্বীকার করা হয় এবং একটি ত্রুটি কোড অ্যাপ্লিকেশনটিতে ফিরে আসে "" এটি হ'ল ওভার কমিট অক্ষম করার মতো।
"যদি মানটি 1 তে সেট করা থাকে তবে ওভারকমিট_রেটিও মান দ্বারা সংজ্ঞায়িত হিসাবে সিস্টেমে শারীরিক র্যাম এবং অদলবদলের পরিমাণের উপরে কার্নেল বরাদ্দ দেয় ... যদি এই ফাইলে সেটিংস 2 হয়, কার্নেল সমস্ত মেমরি বরাদ্দের অনুমতি দেয় বর্তমান মেমরি বরাদ্দ রাষ্ট্র নির্বিশেষে " 1 এবং 2 মানের ক্ষেত্রে, এটি পূর্ববর্তী ডক যা বলেছিল তার বিপরীত?
কেউ কি জানে আসলে কী সঠিক এবং যদি সম্ভব হয় ওভারকমিটকে 'অক্ষম' করা যায়?