Vm.sppppiness পরামিতি আসলে নিয়ন্ত্রণ করে?


36

কার্নেল ডকুমেন্টেশন প্রতি:

This control is used to define how aggressive the kernel will swap
memory pages.  Higher values will increase aggressiveness, lower values
decrease the amount of swap.

তবে এটি এক ধরণের অস্পষ্ট। আমি প্যারামিটারটি চূড়ান্তভাবে নিয়ন্ত্রণ করে কি ঠিক তা বের করার চেষ্টা করছি। আমি জানি এটি কার্নেল পৃষ্ঠাগুলি অদলবদল করার জন্য কতটা আক্রমণাত্মকভাবে চেষ্টা করে তা সামঞ্জস্য করে, তবে কার্নেল কোডের কোন সিদ্ধান্ত গ্রহণের প্রক্রিয়া এটি প্রভাবিত করে?

কার্নেলটি অদলবদল করার আগে কোনও পৃষ্ঠায় অ্যাক্সেস করা কত আগে হয়েছে তা কী সামঞ্জস্য করে? যদি তাই হয় তবে 60 এর ডিফল্ট মানটি কী উপস্থাপন করে? এবং 1 এর ইনক্রিমেন্ট / হ্রাস দ্বারা কতটা পরিবর্তন হয় (একটি সূত্রটি চমৎকার হবে)?
বা পৃষ্ঠাগুলি তাদের অ্যাক্সেসের ফ্রিকোয়েন্সি এর উপর ভিত্তি করে অদলবদল করে?
অথবা অন্য কিছু?


1
হ্যাঁ, swapiness হয় অস্পষ্ট ;-)
ℝaphink

উত্তর:


27

কার্নেল সংস্করণ ২.6.২৮ থেকে, লিনাক্স একটি স্প্লিট ন্যূনতম সম্প্রতি ব্যবহৃত (এলআরইউ) পৃষ্ঠা প্রতিস্থাপন কৌশল ব্যবহার করে। একটি ফাইল সিস্টেম উত্স সহ পৃষ্ঠা, যেমন প্রোগ্রাম পাঠ্য বা ভাগ করা লাইব্রেরিগুলি ফাইল ক্যাশে অন্তর্ভুক্ত। ফাইল সিস্টেম ব্যাকিং ব্যতীত পৃষ্ঠাগুলিকে অজ্ঞাতনামা পৃষ্ঠাগুলি বলা হয় এবং এতে রানটাইম ডেটা থাকে যেমন অ্যাপ্লিকেশনের জন্য সংরক্ষিত স্ট্যাক স্পেস ইত্যাদি থাকে সাধারণত ফাইল ক্যাশে সম্পর্কিত পৃষ্ঠাগুলি মেমরি থেকে উত্সাহিত করার জন্য সস্তা (কারণ এগুলি যখন প্রয়োজন তখন ডিস্ক থেকে আবার পড়তে পারে) । যেহেতু বেনাম পৃষ্ঠাগুলিতে কোনও ফাইল সিস্টেমের ব্যাকিং নেই, সেগুলিতে স্ট্যাপের জন্য অদলবদল না থাকলে প্রোগ্রামের দ্বারা যতক্ষণ প্রয়োজন তাদের মেমোরিতে থাকতে হবে।

vm.swappinessবিকল্প খেলার মধ্যে আসে get_scan_count()সংজ্ঞায়িত mm/vmscan.cget_scan_count()পৃষ্ঠাগুলি উচ্ছেদের জন্য সন্ধান করার সময় বেনামে এবং ফাইল এলআরইউ তালিকা কীভাবে আক্রমণাত্মকভাবে স্ক্যান করা উচিত তা নির্ধারণ করে। প্রতিটি মামলার মানটি সম্প্রতি ঘোরানো এবং সম্প্রতি স্ক্যান করা অনুপাতের ভাসমান গড় দ্বারা নির্ধারিত হয় যেখানে সাম্প্রতিক রেফারেন্সগুলি সিস্টেমের পরিবর্তিত কাজের চাপকে বিবেচনায় রাখার ক্ষেত্রে বয়স্কদের চেয়ে বেশি ওজন ধারণ করে।

vm.swappinessএকটি পরিবর্তক যে বেনামী পৃষ্ঠাগুলি পক্ষে ফাইল ক্যাশে পৃষ্ঠাগুলি সোয়াপিং মধ্যে ভারসাম্য পরিবর্তন হয়। vm.swappinessবেনামে পৃষ্ঠাগুলিকে দেওয়া অগ্রাধিকার মান হ'ল ডিফল্ট 60 এ সেট করা । ফাইল ক্যাশে 200 এর অগ্রাধিকার মান দেওয়া হয় যা থেকে vm.swappinessসংশোধকটি কেটে নেওয়া হয় ( file_prio=200-anon_prio)। এর অর্থ হ'ল, ডিফল্টরূপে, অগ্রাধিকারের ওজনগুলি বেনামি পৃষ্ঠাগুলির ( anon_prio=60, file_prio=200-60=140) পক্ষে মাঝারিভাবে দাঁড়ায় । যাইহোক, সিস্টেমটি যখন মেমোরির বাইরে থাকা অবস্থায় থাকে তখন অজ্ঞাতনামা এবং ফাইল উভয়ই LRU তালিকাগুলি সমানভাবে স্ক্যান করা হয়, যদি না vm.swappinessশূন্যকে সেট করা থাকে set

যখন vm.swappiness100 এ সেট করা থাকে, অগ্রাধিকারগুলি সমান ( anon_prio=100, file_prio=200-100=100) হবে। vm.swappinessশূন্যে সেট করা ফাইল ক্যাশে থেকে পৃষ্ঠাগুলির পক্ষে বেনামে পৃষ্ঠা অপসারণ থেকে কার্নেলকে আটকাবে।


ফাইল_প্রিওর অদলবদল করার কোনও উপায় আছে কি? অথবা এটি কোনও নির্দিষ্ট ডিরেক্টরিতে সীমাবদ্ধ?
সিএমসিডিগ্রাগনকাই

13

একটি সূত্র রয়েছে যা কোন পৃষ্ঠাটি অদলবদল করা হবে তা গণনা করতে ব্যবহৃত হয়। ইন vmscan.cএই অ্যালগরিদম দেখতে পারেন:

অদলবদল প্রবণতা = ম্যাপযুক্ত_রেটিও / 2 + ঝামেলা + ভিএম_সাম্প

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


6

বলা হয়েছে (আমার মনে হয় নরম্যান 1986) প্রায়শই একটি লিফ্টের "ক্লোজ ডোর" বাটনটি ভেঙে যায় বা কখনও কোনও জায়গায় সংযুক্ত ছিল না। এটি এরসটজ নিয়ন্ত্রণটিকে লিফটটি চালিত করার উপায় নয় বরং ওভার-হুইর রাইডারকে প্রশান্ত করার উপায় করে তোলে।

অনুরূপ ফ্যাশনে, অদলবদল করার একটি প্রভাব কার্নেল প্রিনিকেটের তার সু-সংজ্ঞায়িত, নির্ধারক নিয়ন্ত্রণের সাথে সম্পর্কিত নয়। যেমনটি জিজ্ঞাসা করেছেন নুতন_ওভারলর্ড জিজ্ঞাসা করুন ডাবলু ডট কম এ

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

সুতরাং এটি কি আসলে নিয়ন্ত্রণ করে? ইতিমধ্যে সরবরাহ করা সূক্ষ্ম উত্তরের পাশাপাশি একটি বৈধ উত্তর - এটি হ'ল এটি আপনার প্রত্যাশাকে সংশোধন করে যে আপনার সিস্টেমে আপনার আরও নিয়ন্ত্রণ রয়েছে এবং একটি গিঁট ফেলা আপনাকে অর্থবোধক ফ্যাশনে সেই নিয়ন্ত্রণটি ব্যবহার করতে দেয়।

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