বিষয়বস্তুর অগ্রাধিকারে ফাইল মেটাডেটা ক্যাশে লিনাক্স কীভাবে কনফিগার করবেন?


14

ফাইল সিস্টেমের মেটাডেটা ক্যাশেিংয়ের জন্য আমি বেশিরভাগ র‌্যাম ব্যবহারের জন্য সিস্টেমটি সেট আপ করতে চাই, তবে ক্যাচিং এবং ফাইলগুলি প্রিফেচিং পড়ার / লেখার জন্য কেবল যুক্তিসঙ্গতভাবে অল্প পরিমাণ। আমি আসলে কোনও ফাইল না খোলার আগে পর্যন্ত ডিস্কগুলি না ঘুরিয়ে ফাইল সিস্টেমটি (যতটা এটি র‍্যামের সাথে ফিট করে) ব্রাউজ করতে সক্ষম হতে চাই।

বিশদটি এখানে:

আমার একটি ঘরে তৈরি ফাইল সার্ভার রয়েছে। এটি 9 টিবি-র কাছাকাছি এলভিএম ভলিউমে পাঁচটি ডিস্ক পেয়েছে, তবে র‌্যাম মাত্র 4 জিবি। যেহেতু সার্ভার তখন আর কিছু করে না ফাইলগুলি পরিবেশন করে, বেশিরভাগ র্যাম ক্যাচিংয়ের জন্য ব্যবহৃত হয়। ("বিনামূল্যে" ক্যাশের জন্য ব্যবহৃত 3.9G এর মধ্যে 3.4G রিপোর্ট করে))

সার্ভারটি আমার শোবার ঘরে থাকে, এবং যদি সমস্ত ডিস্কগুলি ঘুরছে তবে এটি শান্ত থাকলে বিরক্ত হওয়ার যথেষ্ট শব্দ করে। (আমি শব্দটি সন্ধান করতে চাইছি না, কেবল গোলমাল ঘুর্ণন করতে পারি The ডিস্কগুলি বিভিন্ন মেক এবং মডেলগুলির হয় think এবং আমি মনে করি ঘূর্ণন গতির সামান্য পার্থক্য হস্তক্ষেপ সৃষ্টি করে No কোনও ডিস্ক নিজেই শোরগোল নয়, তবে যদি সেগুলির মধ্যে কিছুগুলি একসাথে ঘুরছে তবে একটি সাব-হার্টজ পিরিয়ডের সাথে একটি সামান্য গোলমাল।) তাই আমি বেশিরভাগ সময় ডিস্কগুলি স্পিন করার জন্য সার্ভারটি কনফিগার করেছি।

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

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

তবে একজন ভাবেন যে 4 জিবি বেশিরভাগ ফাইল-সিস্টেম মেটাডেটা ক্যাশে রাখতে সক্ষম হবে, কমপক্ষে সেই অংশগুলি যা ইতিমধ্যে পরিদর্শন করা হয়েছিল, যাতে আমি ডিস্কগুলি স্পিন না করেই ফাইলগুলি ব্রাউজ করতে পারি যদি এটির সক্রিয় হয় তবে ঘুমের।

ফাইলটি খোলার সময় এখনও বিলম্ব হতে পারে তবে এটি ঠিক আছে। “ক্লিক করুন; অপেক্ষা করুন ; ক্লিক; অপেক্ষা করুন ; ক্লিক; অপেক্ষা করুন ; খেলা; "ক্লিক" সহ "দেখুন; ক্লিক; ক্লিক; খেলা; অপেক্ষা করুন ; ঘড়ি". প্রাক্তনটি অবিশ্বাস্যরকম হতাশ; দ্বিতীয়টি প্রায় প্রত্যাশিত।

মন্তব্য:

  1. এটি বিবেচনা করা উচিত, কার্নেলটি 3.2, ওএস ডেবিয়ান, ভলিউমটি lvm2, এবং এফএস এক্সট্রা 4।

  2. স্পিন ডাউন করার একমাত্র কারণ রাতের বেলা শব্দ; সার্ভার অন্যথায় ধারাবাহিকভাবে চলমান। (আমি এটিকে কম শক্তি হিসাবে যুক্তিসঙ্গত হিসাবে তৈরি করেছি।) স্পিন-ডাউন বিলম্ব দিনের সময়ের উপর নির্ভর করে পরিবর্তিত হয়।

  3. হার্ড ডিস্কগুলি কেবল মিডিয়ার জন্য। ওএস পৃথক (ছোট) ফ্ল্যাশ ড্রাইভে রয়েছে। (যার অর্থ কোনও স্পিন-আপ বিলম্ব তথ্য থেকে আসে, কেবল তার কারণ /usrবা যে কোনও কিছুর প্রয়োজন ছিল না I আমি এটিতে কিছু জিবি বাঁচাতে পারতাম যদি এটি আমার সমস্যাটি কোনওভাবেই সহায়তা করে।

  4. পারফরম্যান্সের উপর যুক্তিসঙ্গত প্রভাব কোনও বড় বিষয় নয়। ডিস্কগুলি যাইহোক আমার নেটওয়ার্কের চেয়ে দ্রুত।

উত্তর:


10

কীভাবে লিনাক্স জিনিসগুলিকে ক্যাশে করে তা নিয়ন্ত্রণ করতে এই https://www.kernel.org/doc/Docamentation/sysctl/vm.txt

বিশেষত ভিএফএস_ক্যাচি_প্রেসারে দেখুন, আপনি সম্ভবত খুব কম মান চান বা শূন্য এমনকি চান (যদিও 1 আমার কাছে কিছুটা নিরাপদ মনে হচ্ছে):

vfs_cache_pressure
------------------

Controls the tendency of the kernel to reclaim the memory which is used for
caching of directory and inode objects.

At the default value of vfs_cache_pressure=100 the kernel will attempt to
reclaim dentries and inodes at a "fair" rate with respect to pagecache and
swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
to retain dentry and inode caches. When vfs_cache_pressure=0, the kernel will
never reclaim dentries and inodes due to memory pressure and this can easily
lead to out-of-memory conditions. Increasing vfs_cache_pressure beyond 100
causes the kernel to prefer to reclaim dentries and inodes.

এছাড়াও আপনি সংশোধন করতে চাইতে পারেন swappinessযাতে আপনি কখনই ডেটা অদলবদল করতে না পারেন বা এটি তৈরি করতে পারেন যাতে এটি কেবল চরম ক্ষেত্রেই ঘটে।

drop_cachesবিকল্প স্পষ্টভাবে ডেটা আপনি আর ক্যাশে চাই না ড্রপ করার জন্য কুশলী হতে পারে।

আমি নিশ্চিত যে সম্ভবত অন্যান্য বিকল্পগুলি সাহায্য করতে পারে, তাই কার্নেল ডকুমেন্টেশন পর্যালোচনা করুন।

এগুলি প্রয়োগ করার জন্য আমি যে সেটিংসটি পরিবর্তন করতে চান তা /etc/sysctl.confবা আপনার ওএসের বুট-এ পুনরুদ্ধার করতে চাইলে তা রেখে দিয়েছি ।


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

হাই কাইল, ধারণাটির জন্য ধন্যবাদ। vfs_cache_pressure ধরণের কাজ করে তবে এটি যথেষ্ট নয়। আমি যা করেছি তা এখানে:
বগডনব

আমি যখন ভিসিপি 0 তে সেট করি, আমি যদি এটি করি find / -ls > /dev/nullতবে ডিস্কগুলি স্পিন করুন, তারপরে findসমস্ত ফাইল আবার, ডিস্কগুলি স্পিন হয় না। freeএটি করার সময় বাফারগুলি প্রায় 202MB এর উপরে উঠতে দেখায়। তবে, যদি আমি এটি করি findতবে cat /file/bigger/than/ram > /dev/nullতারপরে খালি স্থান পূরণ করার জন্য উত্থাপন freeদেখায় cachedএবং কোনও কারণে buffersপ্রায় 195MB তে নেমে যায়। তারপরে যদি আমি ডিস্কগুলি স্পিন করে ফেলি এবং findআবারও ডিস্কগুলি স্পিন করে দেয় :-(
বগডনব

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

1
লিনাক্স ক্যাশে সম্পর্কে স্মার্ট হওয়ার চেষ্টা করছে। আমি নিশ্চিত না যে vfs = 0 নির্ধারণ করা আপনার প্রত্যাশার মতো কাজ করবে। আমি মনে করি যখন অ্যাপ্লিকেশনগুলির (যেমন malloc ()) চাপ আরও মেমরির জন্য অনুরোধ করে তখন এটি অন্যান্য এন্ট্রিগুলিকে পুনরায় দাবি করার চেষ্টা করবে। লিনাক্সকে ক্যাশের জন্য আরও 2 জিবি ব্যবহার না করার জন্য বলার উপায় হিসাবে, আমি এই জাতীয় জিনিস সম্পর্কে অসচেতন। এটি বেশিরভাগ ক্ষেত্রে র্যাম নষ্ট করবে। আপনি যে অন্য একটি জিনিসটি দেখতে চাইতে পারেন তা হ'ল "ল্যাপটপ মোড" যা ল্যাপটপের জন্য ডিস্কগুলিকে রাখার জন্য আলাদাভাবে কিছু করার চেষ্টা করে। যদিও আমি এটি ব্যবহার করি নি, তাই আমি এটি সম্পর্কে খুব বেশি জানি না।
কাইল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.