কেন রেড হ্যাট লিনাক্স সিস্টেমে উপলব্ধ ফ্রি মেমরির চেয়ে কম ফ্রি মেমোরি রিপোর্ট করে?


9

আমার তুলনামূলকভাবে ছোট একটি হোম রেড হ্যাট লিনাক্স সার্ভার রয়েছে (প্রায় 8 জিবি র‌্যাম)। আমি বিভিন্ন জিনিসের খোঁজখবর রাখতে কিছু বাড়ির উত্সযুক্ত অ্যাপ্লিকেশন চালানো ছাড়া অন্য কোনও জন্য ব্যবহার করি না। বাক্সে চলমান একমাত্র আসল জিনিস হ'ল একটি ডাটাবেস এবং একটি ওয়েব সার্ভার।

আমি লক্ষ করেছি যে NMON এবং TOP এর মতো সরঞ্জাম ব্যবহার করে সিস্টেম কাউন্টারগুলি পরীক্ষা করার সময় মোট সিস্টেম ফ্রি মেমরি তুলনামূলকভাবে কম হয় (কয়েকশ এমবি ক্রমানুসারে), যখন ডাটাবেস এবং ওয়েব সার্ভারের জন্য সক্রিয় মেমরিটি এখনও কম (কেবলমাত্র সম্মিলিত 3 গিগাবাইট গ্রহণ)) এমনকি অন্যান্য অন্যান্য চলমান প্রক্রিয়াগুলি সহ মোট গ্রাসকৃত স্মৃতি 4 জিবি এরও কম হয়।

রেড হ্যাট লিনাক্স চলমান প্রক্রিয়াগুলির মোট ব্যবহৃত মেমরির যোগফলের তুলনায় মোট মেমরি বিয়োগের তুলনায় কম ফ্রি মেমরি কেন রিপোর্ট করে?

উত্তর:


19

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

% free -m
             total       used       free     shared    buffers     cached
Mem:           997        942         55          0         71        366
-/+ buffers/cache:        504        492
Swap:         2015        618       1397

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

অন্য কিছু যা আপনাকে বিভ্রান্ত করতে পারে তা হ'ল আপনি ব্যবহারের চিত্রটিতে মোট স্মৃতি পেতে সমস্ত চলমান প্রক্রিয়া ব্যবহার করে মেমরিটি কেবল যুক্ত করতে পারবেন না। আপনি যদি এটি চেষ্টা করে থাকেন তবে আপনি দ্রুত আবিষ্কার করতে পারবেন যে অ্যাপ্লিকেশনগুলি মেশিনে আসলে উপস্থিত থেকে বেশি মেমরি ব্যবহার করছে বলে মনে হচ্ছে। এটি দুটি কারণে

  1. কপিরাইট অন লিখন মেমরি বরাদ্দ, মেমরি ম্যাপযুক্ত আইও এবং ভাগ করা ডায়নামিক লাইব্রেরিগুলির মাধ্যমে মেমোরি বিভিন্ন প্রক্রিয়ার মধ্যে ভাগ করা যায়
  2. অপারেটিং সিস্টেমটি অ্যাপ্লিকেশনটির সরবরাহের চেয়ে আরও মেমরির প্রতিশ্রুতি দেওয়ার স্বাধীনতা রয়েছে। তত্ত্বটি যে বেশিরভাগ অ্যাপ্লিকেশন লেখকরা ওভারহেড এড়াতে একসাথে প্রচুর পরিমাণে মেমরি চাইতে বলে পছন্দ করেন এবং সম্ভবত সমস্ত স্মৃতি ব্যবহার করতে পারেন না।

Lwn.net এ সাম্প্রতিক একটি নিবন্ধ রয়েছে যা এই সমস্যাটি নিয়ে আলোচনা করছে


1
একটি সাধারণ ব্যাখ্যা এখানেও সরবরাহ করা হয়েছে: linuxatemyram.com
স্টিভেন টি। স্নাইডার

4

লিনাক্স দ্রুত ডিস্ক অ্যাক্সেসের সময় দেওয়ার জন্য মেশিনে সক্রিয়ভাবে ফাইল সিস্টেম অ্যাক্সেস করে। এটি নিয়ে চিন্তার কিছু নেই।

বাক্সে ফ্রি-এম চালানো আপনাকে স্মৃতি কোথায় ব্যবহৃত হচ্ছে সে সম্পর্কে আরও ভাল ধারণা দেবে।

নীচে আমার একটি বাক্স থেকে টানা আউটপুট দেওয়া আছে। ফ্রি মেমরিটি 147 মেগ যা ফাইল সিস্টেম অ্যাক্সেসের অনুরোধগুলির জন্য প্রায় 4 জি ক্যাশে থাকে।

free -m
             total       used       free     shared    buffers     cached
Mem:          6035       5888        147          0         77       4116
-/+ buffers/cache:       1693       4341
Swap:         4722          0       4722

1

আপনি কি "বাফার" এবং "ক্যাশেড" ক্ষেত্রগুলি অন্তর্ভুক্ত করছেন?


1

লিনাক্সের সাহায্যে, / proc / meminfo- তে কমিটেড_এএস দেখুন, এটি কার্নেল দ্বারা চালিত প্রক্রিয়াগুলির প্রতিশ্রুতিবদ্ধ মেমরির (আসল + স্ব্যাপ) পরিমাণ।

লিনাক্স মেমরিটি খুব দক্ষতার সাথে ব্যবহার করে, কিছু প্রক্রিয়ার প্রতিশ্রুতিবদ্ধ না হওয়া কোনও ব্লক সম্প্রতি / প্রায়শই অ্যাক্সেস করা ফাইলগুলি ক্যাশে করতে ব্যবহৃত হয়। সুতরাং, লিনাক্স বুট করার পরে খুব দীর্ঘ নয় সমস্ত উপলব্ধ শারীরিক মেমরির 90% ব্যবহার করা সাধারণ।

কার্নেল নিজেকে .. এবং নোংরা (স্বাপ) ব্যবহারের জন্য প্রতিশ্রুতিবদ্ধ তা দেখুন, এটি আপনাকে আরও ভাল সামগ্রিক চিত্র দেয় overall

আপনার যদি এই আচরণটি সামঞ্জস্য করতে প্রয়োজন হয় তবে আপনার প্রশ্নটি আপডেট করুন :)

এটি লিনাক্সের জন্য স্ট্যান্ডার্ড এমও .. কিছু ডিসট্রস স্মিস্টি ম্যানেজমেন্ট ম্যানেজমেন্ট ম্যানেজমেন্ট ম্যানেজমেন্ট ম্যানেজমেন্ট ম্যানেজমেন্ট ম্যানেজমেন্ট ম্যানেজমেন্ট ম্যানেজমেন্টকে তাদের সিস্টেমে sysctl- এর মাধ্যমে উপযুক্ত করে তোলে। তবে, আপনি যা প্রতিবেদন করেছেন তা সবার মাঝে বেশ সাধারণ typ


1

আপনি সিস্টেমে কোন ধরণের কার্নেল চালাচ্ছেন? একটি 32-বিট কার্নেল কেবলমাত্র 3.6 গিগাবাইট মেমরির প্রতিবেদন করবে, যদি না PAE সক্ষম থাকে।

বলছেন যে, এটি যদি রেডহ্যাট এন্টারপ্রাইজ লিনাক্স (বা সেন্টোস) - v3 এর আধুনিক সংস্করণ হয় - ডিফল্ট 32-বিট কার্নেলটি এটি সক্ষম করে।

আপনি যদি উপরে 'ফ্রি' কমান্ডের বিশদটি আউটপুট পোস্ট করতে পারেন তবে আমরা এটি দেখতে সমস্যা করব কি না তা দেখতে সক্ষম হব।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.