ডেবিয়ান লিনাক্স টিপস এন্ড ট্রিকস-২

  • এ্যাপ্লিকেশন বা প্রোগ্রামসমূহের স্টার্ট আপ স্পিড বাড়ানো
একটি ডেস্কটপ মেশিনে সাধারনত ক্যাশিং পদ্ধতি ব্যবহারের মাধ্যমে এর সাড়া প্রদানের হার বা রেসপন্স টাইম দ্রুত করা হয়ে থাকে। যখন মেশিন বুট বা চালু করা হয় তখন সাধারনত যে ফাইল/বাইনারীসমূহ প্রায়ই ব্যবহৃত হয় সেগুলিকে মেশিন র‌্যাম এ লোড করে নেয়। ডেবিয়ানে এ কাজটি করার জন্য preload নামে একটি চমৎকার প্যাকেজ আছে। Preload ব্যবহারকারীর এ্যাপ্লিকেশনসমূহের গতি বা পারফর্ম্যান্স বাড়াতে ব্যবহৃত হয়, এটি মেশিন এর বুটিং স্পিড বাড়াতে কোন সাহায্য করে না। বরং এটি কিছু কিছু ক্ষেত্রে বুটিং স্পিড কমিয়েও ফেলতে পারে। তাই এটি ব্যবহারে কিছটা সতর্ক হওয়া দরকার।

preload একটি ডেমন বা ব্যাকগ্রাউন্ড প্রোগ্রাম হিসেবে রান করে থাকে এবং মনিটরিং করতে থাকে ব্যবহারকারী যে সমস্ত প্রোগ্রাম ব্যবহার করে থাকে তার উপর। তাই প্রথম প্রথম আপনি এর কোন ফলাফল দেখতে না পেলেও সময়ের সাথে সাথে আপনার পিসির পারফর্ম্যান্স লক্ষনীয় ভাবে বাড়তে থাকবে। তাই এ প্রোগ্রামটিও আপনার পিসির জন্য একটি প্রয়োজনীয় টুলস হিসেবে বিবেচিত হতে পারে।

ইনস্টল করার জন্য কমান্ড:
# apt-get install preload

এটুকুই যথেষ্ট প্রোগ্রামটি রান করার জন্য। প্রোগ্রামটি কনফিগার করা যায় তবে এর ডিফল্ট সেটিংস-ই বেশিরভাগ ক্ষেত্রে পারফর্ম্যান্স প্রদানের জন্য যথেষ্ট।

  • অ্যাপ্লিকেশনসহ মেশিনের সামগ্রিক পারফর্ম্যান্স বাড়ানো
লিনাক্স নির্ভর অপারেটিং সিস্টেমগুলিতে ফাইল এবং ডিরেক্টরি প্রবেশ/পরিবর্তনের সময়/হিস্টোরী সংরক্ষন করার ব্যাপারটি সব সময়ই এর পারফর্ম্যান্সে একটি প্রভাব ফেলে থাকে। সাধারনত যখনই কোন ফাইল অথবা ফোল্ডারে প্রবেশ করা হয় এমনকি যদি ক্যাশ করা হয় শুধুমাত্র পড়া/রিড করার জন্য তারপরও প্রবেশের সময়ক্ষন (একসেস টাইম) ডিস্কে সংরক্ষন করা হয়ে থাকে। লিনাক্স কার্নেল টিম এর গুরুত্বপূর্ন একজন সদস্য ইনগো মলনার এর উক্তি উল্লেখ করা যায় এ প্রসঙ্গেঃ

"আমি জোর দিয়ে বলতে পারি না যে, এটি বাস্তবে ঠিক কতটা প্রয়োজনীয়। atime (access time) আপডেট করার ব্যাপারটি লিনাক্স অপারেটিং সিস্টেমের পারফর্ম্যান্সে বর্তমান সময়ে সবচেয়ে বেশী ঘাটতি তৈরী করে থাকে। atime আপডেট বন্ধ করে দিয়ে আমরা লিনাক্সের পারফর্ম্যান্স গত ১০ বছরে সব ধরনের পেজক্যাশ স্পিড বাড়ানোর ফলে যে স্পিড বেড়েছে তার থেকেও বেশী বাড়াতে পারি।

এটি সম্ভবতঃ ইউনিক্স ডিজাইনে সর্বকালের সব থেকে দূর্বল দিক গুলির একটি। ইউনিক্স বাস্তবিক অর্থেই চমৎকার ও স্থিতিশীল একটি অপারেটিং সিস্টেম কিন্তু একবার ভেবে দেখুন তোঃ ‘যখন যে ফাইল হার্ডডিস্ক থেকে পড়া/রিড করা হচ্ছে তখনই ডিস্কে তার একসেস টাইম তথ্য সংরক্ষিত হচ্ছে! এবং যে ফাইলগুলি ক্যাশে সংরক্ষিত আছে এবং যেগুলি সেখান থেকেই রিড করা হচ্ছে ... সেগুলির জন্যও একই রকমভাবে তথ্য সংরক্ষিত হচ্ছে!"

তবে এ সমস্যার সমাধান আমরা খুব সহজেই করতে পারি ছোট একটি টিপস ব্যবহার করে। এজন্য /etc/fstab ফাইলে সামান্য একটু এডিট করে আপনাকে noatime অথবা relatime ফ্ল্যাগ যুক্ত করে দিলেই চলবে। যদি আপনি noatime ব্যবহার করেন তাহলে nodiratime ব্যবহারের কোন প্রয়োজন নেই। অবশ্য অনেকেই এটি করে থাকেন এবং পরামর্শ ও দিয়ে থাকেন কিন্তু nodiratime আদতেই noatime এর একটি সাবসেট অর্থাৎ noatime কমান্ডের ভিতর nodiratime এর সকল ফিচার বিদ্যমান।

উদাহরনঃ

/etc/fstab ফাইলে নিচের কোডটি পরিবর্তন করে

/dev/sda1 / ext3 defaults,errors=remount-ro 0 1
/dev/sda3 /home ext3 defaults 0 2


তার বদলে দিন নিচের কোডটি

/dev/sda1 / ext3 defaults,noatime,errors=remount-ro 0 1
/dev/sda3 /home ext3 defaults,noatime 0 2


তারপর ফাইলটি সেভ করুন ও সবার শেষে রিস্টার্ট দিন। এবার হার্ডডিস্কের ফোল্ডারগুলিতে একসেস করুন ও পরিবর্তন লক্ষ্য করুন।

  • মেশিনের পারফর্ম্যান্স বাড়ানোর আরো কিছু টিপস
আপনার মেশিনের গতি বাড়াতে আরো দুটি ছোট ট্রিকস রয়েছে যা আমরা এখন শিখব। লিনাক্স সাধারনভাবে র‌্যাম বা মেমোরী ফ্রি করার জন্য ডাটা এবং এ্যাপ্লিকেশনগুলিকে ডিস্কে সোয়াপিং করে থাকে। এটি কার্যকরী কিন্তু যদি আপনার সিস্টেমটি যদি হয় সাধারন ডেস্কটপ তাহলে এ অপশনটি অনেক সময় আপনাকে হতাশ করতে পারে। ডেস্কটপ সিস্টেমে একজন ব্যবহারকারী সাধারনত এ্যাপ্লিকেশনের কাছ থেকে বেশী বেশী গতি আশা করে থাকে।

উদাহরনস্বরূপঃ যদি একটি কাজ (যেমন লেখালেখি, গান শোনা, মুভি দেখা) করার সময় অন্য আরেকটি কাজ যেমন একটি বড় ফাইল আনজিপ করার সময় ৯৫ সেকেন্ডের বদলে ১০০ সেকেন্ড লাগে তাতে কি আপনার কোন যায় আসে? না, এটি কোন সমস্যাই নয় অন্ততঃ আমার ক্ষেত্রে। আমি আমার মূল কাজ (গান শোনা, লেখালেখি করা) ভালভাবে দ্রুতগতিতে করতে পারলেই হল। কিন্তু যদি আপনার কোন এ্যাপ্লিকেশন বা পুরো ডেস্কটপ ৫ সেকেন্ড দেরী করে কোন কাজ করতে বা পুরো ফ্রিজ হয়ে যায় তাহলে কেমন লাগবে? অবশ্যই তা ভাল লাগবে না। এটি অবশ্য সার্ভারের জন্য ভাল কারন সেখানে তো কেউ একটি ফাইল আরেকটি ট্যাবে কতক্ষন পরে খুলছে, গান কতক্ষন পরে চালু হচ্ছে, কোন ডিরেক্টরী ব্রাউজ করতে কতসময় লাগছে তা দেখার জন্য বসে থাকে না এবং সেখানে কতটুকু ডাটা আদান-প্রদান হচ্ছে তা যেকোন কিছুর চেয়ে মূল্যবান। কিন্তু ডেস্কটপের জন্য এটি সত্যিই সমস্যায় আক্রান্ত করে থাকে ব্যবহারকারীকে।

এ সমস্যার সমাধান দু’ভাবে করা যেতে পারে।

প্রথমতঃ কার্নেলের পেজিং বিহেভিয়ার পরিবর্তনের মাধ্যমে। এটি /etc/sysctl.conf এ সামান্য পরিবর্তনের মাধ্যমে এবং vm.swappiness এর জন্য একটি ভ্যালু বাড়িয়ে করা হয়ে থাকে। আমরা ০(শূন্য) এবং ১০০(একশত) এর মধ্যে যে কোন একটি মান বেছে নিতে পারি যেখানে ০(শূন্য) বলতে বোঝায় কার্নেল সবকিছুকে RAM এ রাখতে চেষ্টা করে থাকে এবং ডিস্কে ক্যাশ করবে না। ১০০(একশত) বলতে বোঝায় কার্নেল RAM বা মেমোরী ফ্রি করে ডিস্কে ক্যাশ করতে চেষ্টা করবে অব্যাহতভাবে। ডেবিয়ানে ডিফল্ট মান হচ্ছে 60, এটি মোটামুটি ঠিকই আছে কিন্তু কিছুটা রক্ষনশীল। ল্যাপটপ ব্যবহারকারীদেরকে অবশ্যই এখানে কম মান ব্যবহার করা উচিত কারন তাতে কার্নেল সবকিছুকে RAM এ সংরক্ষন করার চেষ্টা করবে যা ব্যাটারীর কর্মক্ষমতা বাড়িয়ে দেয়।

এটি করার জন্য কমান্ড দিনঃ
# echo 'vm.swappiness=20' >> /etc/sysctl.conf

দ্বিতীয়তঃ কার্নেল যে পদ্ধতিতে ব্লক ডিভাইস এবং বিপরীতে ফাইলসিস্টেম এন্ট্রি-র ক্যাশ খালি করে থাকে সেটি পরিবর্তন করার মাধ্যমে এটি করতে পারি। তাই আমরা এ ক্ষেত্রে কার্নেল যখন ক্যাশ ফ্রি করার চেষ্টা করে থাকে তখন ফাইল সিস্টেম এন্ট্রি ক্যাশ হওয়ার আগেই যাতে ব্লক ডিভাইসগুলি ক্যাশ থেকে ফ্রি হতে পারে তার ব্যবস্থা করব। কারন ফাইল সিস্টেম এন্ট্রি ক্যাশে থাকলে ফাইল ম্যানেজার ও অন্যান্য প্রোগ্রামগুলি আরো দ্রুত কাজ করতে পারবে যেখানে অরিজিনাল ফাইল সিস্টেম থেকে খুজে নিতে হলে আরও বেশী সময় লাগত। এবার ও আমরা /etc/sysctl.conf ফাইলে vm.vfs_cache_pressure এর জন্য একটি মান দিয়ে দেব। এর ডিফল্ট মান হচ্ছে 100, এর সর্বোচ্চ মান কত দেওয়া যায় তা ততটা স্পষ্ট নয় তবে ০(শূন্য) দিলে আপনার সিস্টেম বড় ফাইলে কাজ করার সময় ভয়াবহ সোয়াপিং সমস্যায় পড়তে পারে।

এটির মান দেয়ার জন্য নিচের কমান্ডটি দিনঃ
# echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf

সবশেষে মেশিন রিস্টার্ট দিন। আজ এ পর্যন্তই। ধন্যবাদ সবাইকে।

0 comments:

Post a Comment