ক্যাচিং করুন / এলএস করুন


10

দেখে মনে হচ্ছে প্রথমবার যখন আমি চালাচ্ছি findবা lsকোনও ডিরেক্টরি চালাচ্ছি তবে এটি কাজ করতে কিছুটা সময় নেয়। তবে, এর পরে প্রত্যেকবারই এটি দ্রুত হয়, যদিও ডিরেক্টরিটির বিষয়বস্তুর একটি তালিকা ক্যাশ করা হয়েছে বা কোথাও সূচিযুক্ত হয়েছে।

কম্পিউটারের রিবুট জুড়ে এই ক্যাশে সংরক্ষণের কোনও উপায় আছে?


1
এটা আসলে ক্যাশে করা হয়। লিনাক্স ক্যাশে এবং বাফার হিসাবে অব্যবহৃত মেমরি ব্যবহার করে (এটি "আপনার" যথেষ্ট পরিমাণে র‍্যাম থাকা সত্ত্বেও কিছুটা অদলবদল হওয়া উচিত reason ফ্রি-কমান্ড আপনাকে কী পরিমাণ উপলব্ধ তা দেখায়। নিশ্চিত নয় যে এটি রিবুটগুলির মধ্যে ক্যাশিংয়ের বেশিরভাগ বিষয়, বুটের মধ্যে অনেকগুলি পরিবর্তন হতে পারে। আপনার সমস্ত ফাইলের মধ্যে দিয়ে যাওয়ার জন্য, প্রতি 10,30 মিনিটে সর্বনিম্ন প্রাইরিটির সাথে চালানোর জন্য ক্রোন-জব তৈরির বিষয়ে কীভাবে? সর্বদা ক্যাশে তুলনামূলকভাবে আপ-টু-ডেট রাখতে হবে। এছাড়াও মনে করুন ফাইল-পরিবর্তনগুলি সনাক্ত করার একটি উপায় (কার্নেলের জন্য)।
বার্ড কোপ্পেরুদ

উত্তর:


8

আপনার পৃষ্ঠার ক্যাশে (ডিস্ক ক্যাশে) ফাইল যুক্ত করতে আপনি ভিএমটিচ ব্যবহার করতে পারেন ।

বুট করার সময় আপনার পৃষ্ঠা ক্যাশে ফাইল যুক্ত এবং লক করতে nohup vmtouch -dl <files or directories> &আপনার /etc/rc.localফাইলটি রাখুন । আপনি যদি নিজের পৃষ্ঠা ক্যাশে ফাইল যুক্ত করতে চান তবে সেগুলিকে মেমোরিতে লক করতে না চান তবে -tপতাকাগুলির পরিবর্তে পতাকা ব্যবহার করুন -ld

পৃষ্ঠা ক্যাশে সম্পর্কিত আরও তথ্যের জন্য, এখানে , এখানে এবং উইকিপিডিয়ায় দেখুন


উবুন্টুতে এই আদেশটি উপলব্ধ বলে মনে হচ্ছে না - আমি চেষ্টা করতে পারি এমন কোনও বিকল্প আছে কি?
রিচার্ড

@ রিচার্ড ভিএমটিচ নিজেকে সংকলন করা খুব সহজ: build-essentialপ্যাকেজটি ইনস্টল করুন । ডাউনলোড vmtouch.c। চালান gcc -O2 -o vmtouch vmtouch.cবা make vmtouchএবং আপনি বাইনারি পান vmtouchযা আপনি তারপরে উদাহরণস্বরূপ অনুলিপি করতে /usr/local/binবা কল করতে পারেন ./vmotouch
জোফেল

@ রিচার্ড আমি উবুন্টু ব্যবহার করি না, তাই আমি এটি পরীক্ষা করেছি এবং কোনও দায়িত্ব নিই নি তবে "উবুন্টু এমভিটাচ" গুগল করে এই পিপিএ নিয়ে এসেছি ।
টেরডন

@ জোফেল, হ্যাঁ, এটি সংকলন করা যথেষ্ট সহজ ছিল - ধন্যবাদ আমি যখন সম্ভব প্যাকেজ ব্যবহার করতে পছন্দ করি।
রিচার্ড

@ ইভান, আমি ভুল হলে আমাকে সংশোধন করুন, তবে কোনও vmtouchবুট-কমান্ড হিসাবে পুরো কাজটি কমিয়ে দেবেন না? আমার আশা ছিল প্রতিটি বার এটি পুনরায় জন্মানোর চেয়ে বুট জুড়ে একটি ক্যাশে সংরক্ষণ করা।
রিচার্ড

2

"রিবুট জুড়ে সংরক্ষণ করুন", আমি সন্দেহ করি। তবে আপনি তুচ্ছভাবে বুট করার সময় ক্যাশে পুনর্নির্মাণ করতে পারেন, যা প্রায় একই জিনিসটিকে বিয়োগ করতে একটি ছোট দেরি করে।

একটি ফাইল তৈরি করুন /etc/cron.d/rebuild-fs-cacheএবং এতে নীচে রাখুন:

@reboot root /usr/bin/nice -n 19 /usr/bin/ionice -c 3 -t /usr/bin/find / >/dev/null 2>&1

এই ব্যবহারসমূহ niceএবং ionice(যা ডিফল্টভাবে ইনস্টল করা উচিত, এবং স্পষ্টভাবে প্যাকেজ ম্যানেজার মাধ্যমে উপলব্ধ করা; ডেবিয়ান রাখে তাদের মধ্যে coreutilsএবং util-linuxযথাক্রমে) অগ্রাধিকার কম findহয় nicest সম্ভব মাত্রা, যার মানে এটা অন্য কিছু হস্তক্ষেপ করা উচিত নয় প্রক্রিয়া আপনার সিস্টেমে চলছে তবে সম্পূর্ণ হতে কিছুটা সময় লাগবে। findনিজেই এবং stat()সমস্ত কিছু দিয়ে যাবে , যা কার্নেলকে ডিস্ক থেকে মেমরিতে ফাইল সিস্টেমের ডেটা লোড করতে বাধ্য করে।

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


1
আপনি যদি locateupdatedb
চক্রটি

@ লেলেভশে আমি মোটেও ব্যবহার করি না locateতবে আমি lsপ্রচুর ব্যবহার করি । এবং মাঝে মাঝে find। (এছাড়াও, ওপিগুলি সুনির্দিষ্ট কমান্ডগুলি সন্ধান করুন এবং ls findহ'ল using) এখানে ব্যবহারের বিষয়টি হ'ল এটি স্টোরেজ কলিং স্টেটের সমস্ত কিছুর উপরে পুনরাবৃত্তি করে (), সুতরাং কার্নেলটি মেমোডিতে মেটাডেটা লোড করতে হবে। এটি একবারে আসার পরে, এটি ঠিক যেন এটি একটি রিবুট জুড়ে সঞ্চিত থাকে।
একটি সিভিএন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.