লিনাক্স ফাইল সিস্টেম ক্যাশে কিভাবে কাজ করে
সামগ্রিক কর্মক্ষমতা দ্রুততর করার জন্য কার্নেল ফাইল সিস্টেম ডিস্ক অ্যাক্সেস ক্যাশ করার জন্য একটি নির্দিষ্ট পরিমাণ সিস্টেম মেমরি সংরক্ষণ করে। লিনাক্সের ক্যাশকে বলা হয় ক্যাশে পৃষ্ঠা । পৃষ্ঠার ক্যাশের আকার কনফিগার করা যায় উদার ডিফল্টগুলি যাতে প্রচুর পরিমাণে ডিস্ক ব্লক ক্যাশে সক্ষম হয়। ক্যাশের সর্বাধিক আকার এবং ক্যাশে থেকে ডেটা কখন বের করতে হবে তার নীতিগুলি কার্নেল পরামিতিগুলির সাথে সামঞ্জস্যযোগ্য। লিনাক্স ক্যাশে পদ্ধতিকে রাইট-ব্যাক ক্যাশে বলা হয়। এর অর্থ যদি ডিস্কে ডেটা লেখা হয় তবে এটি ক্যাশে মেমরিতে লেখা হয় এবং ডিস্কে সিঙ্ক্রোনাইজ না হওয়া পর্যন্ত ক্যাশে নোংরা হিসাবে চিহ্নিত করা হয়। ক্যাশে অধিক স্থান প্রয়োজন হলে ক্যাশে থেকে কোন ডেটা বের করতে হবে তা অপ্টিমাইজ করার জন্য কার্নেল অভ্যন্তরীণ ডেটা স্ট্রাকচার বজায় রাখে।
লিনাক্স রিড সিস্টেম কল চলাকালীন, কার্নেল চেক করবে যে অনুরোধ করা ডেটা ক্যাশে ডেটার ব্লকে সংরক্ষিত আছে কিনা, এটি একটি সফল ক্যাশে হিট হবে এবং ডিস্ক সিস্টেমে কোন IO না করেই ক্যাশে থেকে ডেটা ফেরত দেওয়া হবে। ক্যাশে মিসের জন্য আইও সিস্টেম থেকে ডেটা আনা হবে এবং ক্যাশিং নীতিমালার উপর ভিত্তি করে ক্যাশে আপডেট করা হবে কারণ এই একই ডেটা আবার অনুরোধ করা হতে পারে।
যখন মেমরি ব্যবহারের নির্দিষ্ট সীমা পৌঁছে যায় তখন ব্যাকগ্রাউন্ড টাস্কগুলি ডিস্কে নোংরা ডেটা লিখতে শুরু করে যাতে এটি মেমরি ক্যাশে সাফ করে। এগুলি মেমরি এবং সিপিইউ নিবিড় অ্যাপ্লিকেশনগুলির কার্যকারিতার উপর প্রভাব ফেলতে পারে এবং প্রশাসক এবং বা ডেভেলপারদের দ্বারা টিউনিং প্রয়োজন।
ক্যাশের ব্যবহার দেখতে ফ্রি কমান্ড ব্যবহার করা
সিস্টেম মেমরি এবং ক্যাশিংয়ের জন্য বরাদ্দকৃত মেমরির পরিমাণ বিশ্লেষণ করার জন্য আমরা কমান্ড লাইন থেকে ফ্রি কমান্ড ব্যবহার করতে পারি। নীচের কমান্ড দেখুন:
#বিনামূল্যে -মি
থেকে আমরা যা দেখি বিনামূল্যে উপরে কমান্ড হল যে এই সিস্টেমে 7.5 গিগাবাইট র RAM্যাম রয়েছে। এর মধ্যে শুধুমাত্র 209 MB ব্যবহার করা হয় এবং 6.5 MB বিনামূল্যে। 667 MB বাফার ক্যাশে ব্যবহৃত হয়। এখন আসুন 1 গিগাবাইটের একটি ফাইল তৈরি করতে এবং ফাইলটি পড়ার জন্য একটি কমান্ড চালিয়ে সেই সংখ্যাটি বাড়ানোর চেষ্টা করি। নিচের কমান্ডটি আনুমানিক 100 এমবি র্যান্ডম ডেটা তৈরি করবে এবং তারপরে ফাইলের 10 কপি একসাথে একটিতে যুক্ত করবে বড়_ ফাইল ।
# dd if =/dev/random of =/root/data_file count = 1400000
# সেক 1 10 তে আমি; প্রতিধ্বনি করি $ i; cat data_file >> large_file; সম্পন্ন
এখন আমরা এই 1 গিগ ফাইলটি পড়ার বিষয়টি নিশ্চিত করব এবং তারপরে আবার ফ্রি কমান্ডটি পরীক্ষা করব:
# cat large_file> /dev /null# বিনামূল্যে -মি
আমরা দেখতে পাচ্ছি বাফার ক্যাশের ব্যবহার 667 থেকে বেড়ে 1735 মেগাবাইট বাফার ক্যাশে ব্যবহারে মোটামুটি 1 গিগাবাইট বৃদ্ধি পেয়েছে।
Proc Sys VM ড্রপ ক্যাশে কমান্ড
লিনাক্স কার্নেল ক্যাশ ড্রপ করার জন্য একটি ইন্টারফেস প্রদান করে আসুন এই কমান্ডগুলি ব্যবহার করে দেখি এবং ফ্রি সেটিংয়ে এর প্রভাব দেখি।
# প্রতিধ্বনি 1>/proc/sys/vm/drop_caches# বিনামূল্যে -মি
আমরা উপরে দেখতে পাচ্ছি যে এই কমান্ডের সাহায্যে বেশিরভাগ বাফার ক্যাশে বরাদ্দ মুক্ত করা হয়েছিল।
পরীক্ষামূলক যাচাই যা ড্রপ ক্যাশে কাজ করে
আমরা কি ফাইলটি পড়ার জন্য ক্যাশে ব্যবহার করার পারফরম্যান্স যাচাই করতে পারি? আসুন ফাইলটি পড়ি এবং ডিস্ক থেকে ফাইলটি পড়তে কতক্ষণ সময় লাগে তা পরীক্ষা করার জন্য /dev /null এ আবার লিখুন। আমরা এটি দিয়ে সময় করব সময় কমান্ড উপরের কমান্ডগুলি দিয়ে ক্যাশে সাফ করার পর আমরা এই কমান্ডটি করি।
ফাইলটি পড়তে 8.4 সেকেন্ড সময় লেগেছে। আসুন এখন এটি আবার পড়ি যে ফাইলটি ফাইল সিস্টেম ক্যাশে থাকা উচিত এবং দেখুন এখন কত সময় লাগে।
বুম! ফাইলটি ক্যাশে না থাকলে এটি পড়তে 8.4 সেকেন্ডের তুলনায় মাত্র .2 সেকেন্ড সময় লেগেছিল। যাচাই করার জন্য প্রথমে ক্যাশে সাফ করে এবং তারপরে ফাইলটি 2 বার পড়ার মাধ্যমে এটি পুনরাবৃত্তি করা যাক।
এটি প্রত্যাশিত হিসাবে পুরোপুরি কাজ করেছে। নন-ক্যাশেড রিডের জন্য 8.5 সেকেন্ড এবং ক্যাশেড রিডের জন্য .2 সেকেন্ড।
উপসংহার
পৃষ্ঠা ক্যাশে স্বয়ংক্রিয়ভাবে লিনাক্স সিস্টেমে সক্ষম হয় এবং ক্যাশে সম্প্রতি ব্যবহৃত ডেটা সংরক্ষণ করে স্বচ্ছভাবে আইওকে দ্রুততর করে তোলে। আপনি যদি ক্যাশে ম্যানুয়ালি ক্লিয়ার করতে চান যা সহজেই করা যেতে পারে /proc ফাইল সিস্টেমে একটি ইকো কমান্ড পাঠিয়ে কার্নেলকে নির্দেশ করে ক্যাশে ফেলে এবং ক্যাশের জন্য ব্যবহৃত মেমরি মুক্ত করুন। কমান্ডটি চালানোর নির্দেশাবলী এই নিবন্ধে উপরে দেখানো হয়েছে এবং ফ্লাশিংয়ের আগে এবং পরে ক্যাশে আচরণের পরীক্ষামূলক বৈধতাও দেখানো হয়েছিল।