কম্পিউটার টিউটোরিয়াল

উবুন্টুতে মেমরি লিক সনাক্ত করা এবং ঠিক করা:একটি ধাপে ধাপে নির্দেশিকা

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

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

উবুন্টুতে মেমরি লিক সনাক্ত করা হচ্ছে

যেহেতু মেমরি লিক সনাক্তকরণের জন্য ব্যবহৃত সরঞ্জামগুলি প্রাথমিকভাবে CLI প্রম্পটের আশেপাশে ভিত্তিক, তাই উবুন্টুর কোন সংস্করণে আপনি সেগুলি চালান তা বিবেচ্য নয়। এগুলি নিয়মিত উবুন্টুতে ইউনিটি টার্মিনালের ভিতরে, উবুন্টু সার্ভারের একটি ভার্চুয়াল কনসোল থেকে, লুবুন্টুর একটি lxterm থেকে, কুবুন্টুর একটি কনসোল বা এমনকি Xubuntu-এর Xfce-এর ভিতরেও ভাল কাজ করা উচিত। sudo -s এর মত একটি সাধারণ কাজ সম্পাদন করার চেষ্টা করুন এবং শুরু করতে আপনার পাসওয়ার্ড টাইপ করুন৷

সঠিকভাবে সঞ্চালিত হলে এটি আপনাকে একটি রুট শেল পেতে হবে, তবে আপনি যদি ইতিমধ্যেই অনেক দূরে চলে গেছে এমন একটি লিকের সাথে কাজ করছেন তবে একটি মেমরি ত্রুটি হতে পারে। আপনি যদি সত্যিই একটি রুট শেল অ্যাক্সেস করতে সক্ষম হন, তাহলে echo 3> /proc/sys/m/drop_caches টাইপ করার চেষ্টা করুন, এন্টার কী চাপুন এবং তারপরে প্রস্থান করুন টাইপ করুন। এটি মেমরি রিলিজ করতে সাহায্য করে কিনা তা দেখতে আবার ফ্রি বা ফ্রি -এম চালানোর চেষ্টা করুন৷

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

কিছু লোক লাইন সিঙ্ক যোগ করার পরামর্শ দিয়েছে; sudo echo 3> /proc/sys/vm/drop_caches একটি স্ক্রিপ্টে যা ক্রন ধারাবাহিকভাবে চলে, কিন্তু এটি প্রথমে মেমরি ক্যাশিংয়ের উদ্দেশ্যকে হারায়। ফ্রি মেমরি নিজেই শুধুমাত্র অব্যবহৃত RAM, এবং এর মানে হল যে ডেটা অনেক ধীরগতির ইলেক্ট্রোমেকানিকাল বা NAND স্টোরেজ ডিভাইস থেকে লোড করতে হবে। এই ডিভাইসগুলি যতই দ্রুত হোক না কেন, এগুলি RAM-এর মতো দ্রুত নয়, যার মানে হল যে আপনার মেমরির লিকগুলি ঠিক করার সময়, আপনি এটিকে সর্বোত্তম সেটিংয়ে সেট করার পরে ক্যাশে সিস্টেমের সাথে আপনার আসলে হেরফের করা উচিত নয়৷

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

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

আপনি যদি এমন একটি অ্যাপ্লিকেশন খুঁজে পান যা প্রচুর পরিমাণে মেমরি ব্যবহার করছে, তাহলে প্রস্থান করার জন্য q চাপুন এবং তারপরে আগের স্ক্রীন থেকে পিআইডি নম্বর দিয়ে #### হত্যা করার চেষ্টা করুন। সিস্টেম প্রসেসগুলিকে এভাবে মেরে ফেলা উচিত নয়, বা আপনার অসংরক্ষিত কিছু কাজ করা উচিত নয়৷ Ctrl+Alt+Del টাস্ক লিস্টের সাথে কিছু মেরে ফেলার মতো একইভাবে চিন্তা করুন, যা আপনি একই প্রক্রিয়ার জন্য ব্যবহার করতে পারেন৷

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

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

এই গুরুত্বপূর্ণ রুটিনে লিনাক্স প্রোগ্রামারের ম্যানুয়াল পৃষ্ঠাগুলি দেখতে কেবল ম্যান মেম্বারিয়ার, ম্যান মেমুসেজ বা ম্যান মেমুসেজস্ট্যাট ব্যবহার করুন। যদি Ubuntu-এর নতুন সংস্করণগুলি বেরিয়ে আসার ফলে লাইব্রেরির ভবিষ্যত সংস্করণগুলিতে আপগ্রেড করা হয়, তবে পরিবর্তনগুলি সর্বদা এখানে রূপরেখা দেওয়া হবে৷

আপনার যদি গ্রাফিকাল বিষয়বস্তুর প্রয়োজন হয়, তাহলে memusagestat এমনকি PNG ফাইলে মেমরি ব্যবহারের গ্রাফিকাল উপস্থাপনা সংরক্ষণ করার বিকল্প অফার করে। এটি ইউটিলিটিগুলির লেখকদের জন্যও এটিকে একটি আকর্ষণীয় বৈশিষ্ট্য করে তোলে, যেহেতু এটি এমন অ্যাপ্লিকেশন তৈরি করতে ব্যবহার করা যেতে পারে যা নিয়মিত মেমরি লিক পরীক্ষা করে।

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

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

লেখক সম্পর্কে

উবুন্টুতে মেমরি লিক সনাক্ত করা এবং ঠিক করা:একটি ধাপে ধাপে নির্দেশিকা

কেভিন অ্যারোস

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


  1. উইন্ডোজ 10

  2. উইন্ডোজ 10 ত্রুটি 0x8007042c কিভাবে ঠিক করবেন

  3. আপনার GoDaddy ওয়েবমেইল স্বাক্ষরে কীভাবে একটি চিত্র যুক্ত করবেন

  4. এই কম্পিউটারে এক বা একাধিক নেটওয়ার্ক প্রোটোকল অনুপস্থিত [সমাধান]