স্ট্যান্ডার্ড ফাইল / সরঞ্জাম যা মেমোরিটির প্রতিবেদন করে তাদের বিভিন্ন লিনাক্স বিতরণে বিভিন্ন ফর্ম্যাট রয়েছে বলে মনে হয়। উদাহরণস্বরূপ, আর্চ এবং উবুন্টুতে।
খিলান
$ free total used free shared buff/cache available Mem: 8169312 3870392 2648348 97884 1650572 4110336 Swap: 16777212 389588 16387624 $ head /proc/meminfo MemTotal: 8169312 kB MemFree: 2625668 kB MemAvailable: 4088520 kB Buffers: 239688 kB Cached: 1224520 kB SwapCached: 17452 kB Active: 4074548 kB Inactive: 1035716 kB Active(anon): 3247948 kB Inactive(anon): 497684 kB
উবুন্টু
$ free total used free shared buffers cached Mem: 80642828 69076080 11566748 3063796 150688 58358264 -/+ buffers/cache: 10567128 70075700 Swap: 20971516 5828472 15143044 $ head /proc/meminfo MemTotal: 80642828 kB MemFree: 11565936 kB Buffers: 150688 kB Cached: 58358264 kB SwapCached: 2173912 kB Active: 27305364 kB Inactive: 40004480 kB Active(anon): 7584320 kB Inactive(anon): 4280400 kB Active(file): 19721044 kB
সুতরাং, আমি কীভাবে বহনযোগ্যভাবে (কেবল লিনাক্সের ডিস্ট্রোস জুড়ে) এবং নির্ভরযোগ্যভাবে মেমরির পরিমাণ পেতে পারি - অদলবদল বাদে software যা কোনও নির্দিষ্ট সময়ে আমার সফ্টওয়্যারটির জন্য ব্যবহারযোগ্য? সম্ভবত যে কি আউটপুটে হিসাবে "প্রাপ্তিসাধ্য" এবং "MemAvailable" টি দেখানো হচ্ছে free
এবং cat /proc/meminfo
আর্চ কিন্তু আমি উবুন্টু বা অন্য বিতরণে একই পেতে পারি?
awk -v low=$(grep low /proc/zoneinfo | awk '{k+=$2}END{print k}') '{a[$1]=$2}END{m=a["MemFree:"]+a["Active(file):"]+a["Inactive(file):"]+a["SReclaimable:"]; print a["MemAvailable:"],m-low}' /proc/meminfo
যা দিয়ে আমাকে একই নম্বরটি বার বার মুদ্রিত করা উচিত। তবে দ্বিতীয় সংখ্যাটি (আপনার প্রস্তাবিত অ্যালগরিদম সম্পর্কে আমার বোঝাপড়া) এতেMemAvailable
দেখানো চেয়ে বেশি/proc/meminfo
। আমি কি ভুল করছি?