রোমান গুশচিন (একটি ফেসবুক সফটওয়্যার ইঞ্জিনিয়ার) রেজিস্ট্রি লিনাক্স কার্নেল উন্নয়ন তালিকায়, স্ল্যাব নিয়ামক মেমরি ম্যাপিং অ্যাপ্লিকেশনটিতে প্যাচগুলির একটি সেট (একটি মেমরি নিয়ামক)।
নতুন নিয়ামকটি লক্ষণীয় মেমরি পৃষ্ঠার স্তর থেকে কার্নেল অবজেক্ট স্তরে স্ল্যাব অ্যাকাউন্টিং সরিয়ে স্ল্যাব পৃষ্ঠাগুলি বিভিন্ন গ্রুপে ভাগ করা সম্ভব করে সি, প্রতিটি গ্রুপ সি এর জন্য পৃথক স্ল্যাব ক্যাশে বরাদ্দ না করে।
রোমান বিদ্যমান স্ল্যাব মেমরি কন্ট্রোলারে তাকে "খুব গুরুতর ত্রুটি" বলেছিলেন যা আজকাল সিগ্রুপের সাহায্যে কম ব্যবহারের দিকে নিয়ে যায়।
"বিদ্যমান নকশাটি কম স্ল্যাব ব্যবহারের দিকে পরিচালিত করার আসল কারণটি সহজ: স্ল্যাব পৃষ্ঠাগুলি মেমরি পুল দ্বারা একচেটিয়াভাবে ব্যবহৃত হয়।
যদি ক্রগ্রুপ দ্বারা তৈরি কয়েকটি নির্দিষ্ট আকারের কয়েকটি বরাদ্দ থাকে, বা যদি সিগ্রুপ সরানোর পরে কিছু সক্রিয় বস্তু বাকী থাকে বা সিগ্রুপে একটি একক থ্রেডেড অ্যাপ্লিকেশন রয়েছে যা সবেমাত্র কোনও কার্নেল বস্তু বরাদ্দ করে থাকে তবে প্রতিবারে একটি নতুন সিপিইউ: এই সমস্ত ক্ষেত্রে, ফলস্বরূপ স্ল্যাব ব্যবহার খুব কম।
যদি কেএমএম অ্যাকাউন্টিং অক্ষম করা থাকে, কার্নেল অন্যান্য বরাদ্দের জন্য স্ল্যাব পৃষ্ঠায় মুক্ত স্থান ব্যবহার করতে পারে। «
প্রস্তাবিত স্ল্যাব মেমরি নিয়ামক গত বছর রোমানো গুশচিনের হিসাবে বেশ আশাব্যঞ্জক ছিল দক্ষতা বৃদ্ধি করে স্ল্যাব ব্যবহারের, ব্যবহৃত মেমরির আকার হ্রাস করুন 30-45% দ্বারা স্ল্যাব এবং মোট কার্নেল মেমরির খরচ উল্লেখযোগ্যভাবে হ্রাস করে।
উপরন্তু, প্রয়োগিত প্যাচগুলি ইঙ্গিত করেছে ফেসবুক ইতিমধ্যে তাদের সার্ভারে উত্পাদন কোড ব্যবহার করে এবং ছিল ফ্রন্ট-এন্ড ওয়েব সার্ভারের জন্য 650 700-XNUMXMB + সঞ্চয় করা হচ্ছে, অন্যান্য পুরষ্কারগুলির মধ্যে ডাটাবেস ক্যাচিং এবং ডিএনএস সার্ভার।
নন-মোবাইল স্ল্যাবগুলির সংখ্যা হ্রাস করে, মেমরির খণ্ডন হ্রাস করার ক্ষেত্রে একটি ইতিবাচক প্রভাবও লক্ষ্য করা যায়। নতুন মেমরি নিয়ামক অ্যাকাউন্টিং স্ল্যাবের জন্য কোডটিকে উল্লেখযোগ্যভাবে সহজ করে এবং প্রতিটি গ্রুপ সি এর জন্য গতিশীল তৈরি এবং স্ল্যাব ক্যাশে মুছে ফেলার জন্য জটিল অ্যালগরিদমের প্রয়োজন হয় না c
নতুন বাস্তবায়নে মেমরির জন্য সমস্ত সিগ্রুপগুলি স্ল্যাব ক্যাশেগুলির একটি সাধারণ সেট ব্যবহার করে এবং স্ল্যাব ক্যাশেগুলির জীবনকালকে আর ক্রোগের মাধ্যমে সেট করা মেমরির সীমাবদ্ধতার আজীবনের সাথে বাঁধা থাকে না।
নতুন স্ল্যাব কন্ট্রোলারে প্রয়োগ করা আরও সুনির্দিষ্ট রিসোর্স অ্যাকাউন্টিংয়ের তাত্ত্বিকভাবে সিপিইউকে আরও বেশি লোড করা উচিত, তবে বাস্তবে পার্থক্যগুলি নগণ্য বলে প্রমাণিত হয়েছিল।
বিশেষত নতুন স্ল্যাব ড্রাইভারটি বেশ কয়েক মাস ধরে ফেসবুক সার্ভারে ব্যবহৃত হয়েছিল ক্রিয়াকলাপে যা বিভিন্ন ধরণের বোঝা পরিচালনা করে এবং এখন পর্যন্ত কোনও উল্লেখযোগ্য প্রতিরোধ সনাক্ত করা যায়নি।
প্যাচটিতে বেশ কয়েকটি আধা-স্বতন্ত্র অংশ রয়েছে, যা স্ল্যাবের মেমরির নিয়ামকের বাইরেও তাদের ব্যবহার খুঁজে পেতে পারে:
- সাবপেজ লোড এপিআই, যা ভবিষ্যতে পৃষ্ঠার আকার নয় এমন অন্যান্য অবজেক্টগুলি গণনা করতে ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ পার্কপু বরাদ্দ
- Mem_cgroup_ptr এপিআই, যেখানে পয়েন্টারগুলিকে একটি মেমকগের সাথে গণনা করা হয়, অন্য বস্তুর দক্ষতার সাথে পুনঃস্থাপনের জন্য পুনরায় ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ পেজক্যাস।
একই সময়ে, স্মৃতিশক্তি গ্রহণে উল্লেখযোগ্য পরিমাণ হ্রাস পেয়েছে- কিছু হোস্টে 1 গিগাবাইট পর্যন্ত মেমরি সঞ্চয় করা সম্ভব ছিল, তবে এই সূচকটি মূলত বোঝার প্রকৃতির উপর নির্ভর করে, মোট র্যামের আকার, সিপিইউর পরিমাণ এবং মেমরির সাথে কাজ করার বৈশিষ্ট্য।
প্রতিটি মেমরি সিগ্রুপের জন্য আলাদা আলাদা আলাদা সেট তৈরি করার পরিবর্তে দুটি গ্লোবাল সেট ব্যবহার করা হয়: আনকাউন্টবিহীন এবং রুট গ্রুপ সিগ্রুপ অ্যাসাইনমেন্টের জন্য মূল সেট এবং অন্যান্য সমস্ত অ্যাসাইনমেন্টের জন্য দ্বিতীয় সেট। এটি স্বতন্ত্র kmem_cach- এর আজীবন পরিচালনকে সহজ করার অনুমতি দেয়।
অবশেষে, আপনি যদি 19 টি প্যাচের নতুন সেটটি জানতে আগ্রহী হন তবে এটি তালিকায় পাওয়া যাবে কার্নেল মেল.