আপনি লিনাক্স এট মাই রাম সমস্যাটি অনুভব করছেন ।
আতঙ্কিত হবেন না।
এটা কোন সমস্যা না.
আপনার সিস্টেম ডিজাইন হিসাবে কাজ করছে।
সমস্যাটি আপনার ওএস নয় - সমস্যাটি হ'ল "ফ্রি" মেমরিটি কী।
ইউনিক্স সিস্টেমগুলি কেবল চলমান প্রোগ্রামের চেয়ে মেমরি ব্যবহার করে। স্মৃতিটি এর জন্য ব্যবহৃত হতে পারে:
- চলমান প্রোগ্রাম (সক্রিয় / ব্যবহৃত)
- ট্রানজিটে বাফারিং ডেটা (বাফার)
- ক্যাশিং ডেটা সম্প্রতি / থেকে ডিস্কে লিখিত (ক্যাশে)
- একেবারে কিছুই (নিখরচায়)
আধুনিক ইউনিক্স সিস্টেমগুলি কীভাবে র্যাম ব্যবহারের প্রতিবেদন করে তার একটি সংক্ষিপ্ত (এবং বেশিরভাগ অসম্পূর্ণ) সফরটি যা অনুসরণ করে তা।
ফ্রি মেমরি (ওএস সংজ্ঞা) কী?
যখন কোনও ইউনিক্স সিস্টেম র্যামকে ফ্রি হিসাবে প্রতিবেদন করে তখন এর অর্থ "আমি এই র্যামটি কোনও কিছুর জন্য ব্যবহার করছি না"।
নিখরচায় র্যাম কার্যকরভাবে মূল্যহীন - এটি আপনার সিস্টেমে দ্রুত তৈরি করছে না, কোনও কিছুর প্রয়োজন হলে এটি "মুক্ত" হয়ে বসে আছে। আমি উপরে উল্লিখিত অন্য তিনটি আইটেমের মধ্যে যে কোনও কিছু হতে পারে।
ক্যাশে এবং বাফার মেমরি কী?
ক্যাশে এবং বাফার মেমরিটি আপনার সিস্টেমটি আরও দ্রুত তৈরি করতে অপারেটিং সিস্টেমটি র্যাম। এখনই প্রোগ্রামগুলি চালনার জন্য
এই মেমোরিটির প্রয়োজন নেই , সুতরাং আপনার ওএস এটি ঘন ঘন প্রয়োজনীয় ডেটা ধরে রাখতে ব্যবহার করে - উদাহরণস্বরূপ সি লাইব্রেরি (আপনি চালিত প্রতিটি প্রোগ্রামের জন্য প্রয়োজনীয়) প্রায় সর্বদা cache
স্মৃতিতে রাখা হয় , তাই স্ক্রিনে "হ্যালো ওয়ার্ল্ড" মুদ্রণের জন্য প্রয়োজনীয় নির্দেশাবলীর জন্য সিস্টেমে ডিস্কে যেতে হবে না।
এটি আসলে এর চেয়ে অনেক বেশি জটিল - সেখানে ভাগ করা মেমরি, তারযুক্ত মেমরি ইত্যাদি রয়েছে - তবে আমাদের উদ্দেশ্যে এই সাধারণ ব্যাখ্যাটি পর্যাপ্ত।
অ্যাক্টিভ মেমরি কী?
অ্যাক্টিভ মেমরিটি আমরা "ব্যবহৃত" মেমরি হিসাবে বুঝতে পারি - র্যাম যা অ্যাপ্লিকেশনগুলি যা কিছু করার জন্য ব্যবহার করছে - স্প্রেডশিটগুলি বাছাই করা, ওয়েব পৃষ্ঠাগুলি সরবরাহ করা, গ্রাফিকগুলি সম্পাদনা করা ইত্যাদি
"সক্রিয়" মেমরিটি সম্প্রতি "সক্রিয়" হয়েছে - - দাবি করা প্রোগ্রামটি এর বিষয়বস্তু (পড়া বা লেখা) ব্যবহার করেছে এবং এটি সরিয়ে নেওয়া ভাল প্রার্থী হিসাবে বিবেচিত হয় না।
নিষ্ক্রিয় স্মৃতি কী?
অ্যাক্টিভ মেমরির মতো, নিষ্ক্রিয় মেমরিটি এমন র্যাম যা অ্যাপ্লিকেশনগুলি যা কিছু করে তা ব্যবহার করে। পার্থক্য হ'ল এই স্মৃতিটি কিছুক্ষণের মধ্যে অ্যাক্সেস করা হয়নি, সুতরাং যদি চাপটি ওএসের দিকে এগিয়ে আসে তবে মনে করে যে এটি ডিস্কে সরে যেতে পারে এবং (কিছুটা ভাগ্য সহ) প্রোগ্রামটি দাবি করে যে এটি আবার চাইবে না তাই এটি কখনই খেয়াল করবে না
"ব্যবহৃত" মেমরিটি কী (হিউম্যান সংজ্ঞা)
আপনি এবং আমি "ব্যবহৃত" মেমরি হিসাবে যা ভাবি তা মূলত সক্রিয় এবং নিষ্ক্রিয় মেমরির যোগফল। সমস্ত র্যাম বর্তমানে তাদের ব্যবহারের জন্য অ্যাপ্লিকেশন দ্বারা দাবি করেছে।
যতক্ষণ আপনি অ্যাক্টিভ এবং অ্যাক্টিভ মেমরির যোগফলের চেয়ে বেশি পরিমাণে ইনস্টল করেছেন (উপরে উপরে 512-1024 এমবি বলে একটি দুর্দান্ত সুরক্ষা মার্জিন) আপনি একটি ঠিক জায়গায় রয়েছেন: আপনার ওএস সম্ভবত অদলবদল এবং হত্যার কার্য সম্পাদন করবে না ।
"ফ্রি" মেমরি (হিউম্যান সংজ্ঞা) কী?
আপনি এবং আমি "মুক্ত" মেমরি হিসাবে যা মনে করি তা হ'ল প্রোগ্রামগুলি চালনার জন্য উপলব্ধ মেমরি।
এটি আপনার ওএস রিপোর্টগুলির "ফ্রি" চিত্রের চেয়ে কিছুটা জটিল। কোনও প্রোগ্রাম যখন র্যামের জন্য জিজ্ঞাসা করে তখন অপারেটিং সিস্টেম সেই র্যামটি সর্বনিম্ন বিঘ্নজনকভাবে পাওয়ার চেষ্টা করবে:
- যদি ফ্রি মেমরি উপলব্ধ থাকে (কিছু না করে বসে থাকা) যে র্যাম বরাদ্দ করা হবে।
- যদি কোনও নিখরচায় মেমরি উপলব্ধ না থাকে তবে ওএস ক্যাশে এবং বাফার স্থানটিকে ন্যূনতম করতে পারে: বাফার পুলের মধ্যে সর্বনিম্ন / সর্বনিম্ন-ঘন ঘন অ্যাক্সেস করা জিনিসগুলি টস আউট করা হবে এবং সেই প্রোগ্রামটি র্যাম দেওয়া হয়েছে given
- অদলবদল করতে গেলে বাফার / ক্যাশে র্যাম না থাকলে নিষ্ক্রিয় মেমোরিটি দেখে এবং যে অঞ্চলগুলি মনে হয় যে এটি অ্যাক্সেস হওয়ার সম্ভাবনা কম রয়েছে তা বেছে নেবে। সেই ডেটাটি অদলবদল করতে (ডিস্ক) পেজ আউট করা হবে এবং প্রোগ্রামকে দেওয়া সদ্য-মুক্ত র্যাম।
- যদি সমস্ত নিষ্ক্রিয় র্যাম অদলবদল হয়ে যায় তবে সোয়াপারটি ডিস্কে অ্যাক্টিভ র্যাম লাগানো শুরু করবে।
(এটি যেখানে পারফরম্যান্স সাধারণত কুকুরের দিকে যায়: প্রতিবার কোনও প্রোগ্রাম সিপিইউতে পরিণত হওয়ার সাথে সাথে তার অদলবদল বিটগুলি আবার র্যামে ফিরিয়ে আনা প্রয়োজন, যার অর্থ অন্য কোনও প্রোগ্রামের অ্যাক্টিভ মেমোরিটি সরিয়ে নেওয়া উচিত - অদলবদলে উচ্চ টার্নওভারকে থ্রেশিং বলা হয় )
- যদি সিস্টেমটি যা যা করতে পারে তার সব কিছু অদলবদল করে (এবং স্ব্যাপ পার্টিশনটি পূরণ করে), বা আপনি যদি কোনও সোয়াপ বিভাজন ছাড়াই কোনও সিস্টেম চালাচ্ছেন , খারাপ জিনিসগুলি ঘটে। এই মুহুর্তে দুটি জিনিসের একটি ঘটবে:
malloc()
ফেল করবে. এটি POSIX- অনুসারে আচরণ - অপারেটিং সিস্টেমটি র্যামের জন্য জিজ্ঞাসা করা প্রোগ্রামটিকে বলবে যে এটি অনুরোধটি পূরণ করতে পারে না।
প্রোগ্রামটি হয় কম র্যামের জন্য জিজ্ঞাসা করতে পারে, বা যদি এটি মেমরির একটি ছোট অংশ দিয়ে না করতে পারে তবে এটি পরিষ্কার হয়ে যায় এবং প্রস্থান করতে পারে। (প্রোগ্রামটি যদি খারাপভাবে লেখা থাকে তবে তা কেবল ক্রাশ হয়ে যাবে))
- আপনি যদি লিনাক্স বাক্সে থাকেন তবে ওওএম-কিলার অনুরোধটি পূরণের জন্য পর্যাপ্ত র্যাম মুক্ত করার চেষ্টা করার জন্য অন্যান্য প্রক্রিয়াগুলি বন্ধ করে গ্যাং স্টাইলে ড্রাইভ করতে পারে ree
আপনি যদি এখানে আমার বিবরণ এবং লিঙ্কযুক্ত প্রশ্নের উত্তর সম্পর্কে উত্তর দিতে না পারেন তবে আমি মনে করি সমস্যাটি মোকাবেলার জন্য এটি একটি ভয়ঙ্কর উপায়।
আপনি যখন ফাইলগুলি মুছবেন তখন ফ্রি র্যাম কেন উপরে যাবে?
এখানে থাকা প্রশ্নের উদাহরণে আপনি লক্ষ্য করেছেন যে ব্যাকআপ ফাইলটি মুছে ফেলার মাধ্যমে "ফ্রি" র্যাম করা সম্ভব - এর ব্যাখ্যা খুব সহজ: যেহেতু কিছুই সেই ফাইলটি ব্যবহার করে না (কোনও খোলা ফাইল হ্যান্ডলগুলি নেই) এবং এটি থেকে আর অ্যাক্সেসযোগ্য নয় ফাইল সিস্টেম (লিঙ্কযুক্ত) ওএস জানে যে কেউ আর কখনও সেই ডেটা অ্যাক্সেস করতে পারে না এবং এটি ফাইল সিস্টেম ক্যাশে থেকে ডেটা মুছে দেয়।
এটি ওএস রিপোর্টটিকে আরও ফ্রি মেমরি করে তোলে, তবে সিস্টেমের কার্যকারিতাতে এর কোনও প্রভাব নেই।