ভিএমস্ট্যাট দিয়ে কীভাবে% মেমরি ব্যবহার করবেন?


9

আমার ভিএমএস্যাট্যাট থেকে% এ একটি স্মৃতি ব্যবহার করা দরকার, তবে ভিএমস্ট্যাট-এ প্রদর্শিত মেমরি সম্পর্কিত কয়েকটি সংখ্যা আমি বেশ বুঝতে পারি না।

বিশেষত, এই মত একটি আউটপুট দেওয়া

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 139728  45396 199128 1236360    1    2     4   622    3    1 51  4 43  2  0

সিস্টেমের মোট স্মৃতি কত? এটি কি 'swpd' + 'ফ্রি' + 'বাফ' + 'ক্যাশে', মোট 1620612?

সিস্টেমের মুক্ত পরিমাণে মেমরি কী? 'ফ্রি' কলামে এটি কি 45396 হিসাবে প্রদর্শিত হয়েছে?

সমস্যাটি হ'ল তারা 'শীর্ষগুলি' কীভাবে প্রতিবেদন করেছে তা সংযুক্ত করে না বা এমনকি তাদের কাছাকাছিও দেখায় না। 'টপ'-এর আউটপুট যা আমি' ভিএমস্ট্যাট'-এর উপরের মত একই সময়ে নিয়েছিলাম তা হল:

[...]
Mem:   4059616k total,  3965504k used,    94112k free,   200020k buffers
[...]

সুতরাং ... আমি ধরে নিচ্ছি যে 'ভিএমস্ট্যাট'-এ লুকানো নম্বর / বিকল্প অবশ্যই থাকতে হবে যা আমি জানতাম না?

এই উদ্দেশ্যে আমার 'ভিএমস্ট্যাট' ব্যবহার করতে হবে এবং অন্যান্য কমান্ডের প্রয়োজন নেই কারণ এটি প্রয়োজনীয়তাটি বলেছিল।

সুতরাং আদর্শভাবে, আমি 'ভিএমস্ট্যাট' থেকে যা অর্জন করতে চাই তা হ'ল মেমোরি ব্যবহার, যেমন:

<used_memory>/<total_memory> * 100%.

ধন্যবাদ!


উত্তর:


20

আপনি যা খুঁজছেন তা হ'ল "ফ্রি" থেকে আউটপুট:

$ free
             total       used       free     shared    buffers     cached
Mem:        775556     759456      16100          0      22132     592484
-/+ buffers/cache:     144840     630716
Swap:       500344      21972     478372

এখানে একটি ভ্রমণ:

এটি শারীরিক র‌্যামের একটি ডাব্লু / 768MB বাক্স এবং 500344KB অদলবদল।

759456KB "ব্যবহৃত" হয় (দ্বিতীয় কলাম, শীর্ষ সারি)। এই "ব্যবহৃত" মেমরির মধ্যে, 23132KB হল বাফারগুলি (5 ম কলাম, শীর্ষ সারি) এবং 592484KB (ষষ্ঠ কলাম, শীর্ষ সারি) ক্যাশে রয়েছে, যা সক্রিয় প্রক্রিয়াগুলি দ্বারা ব্যবহৃত হচ্ছে শারীরিক মেমরির 144840KB (২ য় কলাম, দ্বিতীয় সারির) রেখে।

আপনি যখন বিবেচনা করেন যে বাফার এবং ক্যাশে ব্যবহৃত মেমরিটি প্রক্রিয়াগুলির জন্য ব্যবহার করা যেতে পারে, এটি শারীরিক মেমরির 630716KB (তৃতীয় কলাম, দ্বিতীয় সারির) ছেড়ে দেয়।

অদলবদল বিভাজন, যেমনটি আমি বলেছিলাম, 500344KB (1 ম কলাম, নীচের সারি)। অদলবদলের 21972KB (দ্বিতীয় কলাম, নীচের সারি) ব্যবহার করা হচ্ছে, 478372KB (তৃতীয় কলাম, নীচের সারি) বিনামূল্যে রেখে।

সুতরাং, আপনার মুক্ত ফ্রি মেমরির সংজ্ঞা আপনি বাফার এবং ক্যাশে গণনা করছেন কিনা এবং আপনি অদলবন্দি করছেন কিনা তা নির্ভর করে।

এটি আপনাকে উপযুক্ত হিসাবে দেখায় শতাংশের গণনা করতে যথেষ্ট পরিমাণে দেওয়া উচিত।


এখানে শীর্ষ এবং বিনামূল্যে আউটপুট দেওয়া হয়:

$ top -n1 | grep "used," ; free
Mem:    775556k total,   751472k used,    24084k free,    20776k buffers
Swap:   500344k total,    21972k used,   478372k free,   586648k cached

             total       used       free     shared    buffers     cached
Mem:        775556     751344      24212          0      20776     586648
-/+ buffers/cache:     143920     631636
Swap:       500344      21972     478372

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


আপনি যখন ভিএমস্টেট কল করবেন তখন একটি "-s" যুক্ত করুন এবং আপনি একই রকম আউটপুট দেখতে পাবেন, কেবল অন্যরকম আকারে:

$ vmstat -s ; free
       775556  total memory
       759920  used memory
       674680  active memory
        18440  inactive memory
        15636  free memory
        21892  buffer memory
       594372  swap cache
       500344  total swap
        21972  used swap
       478372  free swap
       ... output truncated ...

             total       used       free     shared    buffers     cached
Mem:        775556     759920      15636          0      21892     594372
-/+ buffers/cache:     143656     631900
Swap:       500344      21972     478372

আপনি দেখতে পাচ্ছেন যে ভিএমস্ট্যাট বিনামূল্যে একই সংখ্যার সংখ্যা দেখাচ্ছে।


এই উত্তরীয় বিষয়টিতে আমি এখনও সেরা উত্তর খুঁজে পেয়েছি!
রিনোগো

2

আপনার সাথে আমারও একই প্রশ্ন এবং একটি সূত্র নিয়ে হাজির

vmstat -s | awk  ' $0 ~ /total memory/ {total=$1 } $0 ~/free memory/ {free=$1} $0 ~/buffer memory/ {buffer=$1} $0 ~/cache/ {cache=$1} END{print (total-free-buffer-cache)/total*100}'

আমি এটি প্রোম্পস-এনজি ৩.৩.১০ থেকে ভিএমস্ট্যাট সংস্করণ এবং প্রোম্পস-এনজি ৩.৩.৯ থেকে ভিএমস্ট্যাট পরীক্ষিত করেছি


1

আমি আপনাকে সুপারিশ করব যে আপনি এই আইবিএম রেডবুক "লিনাক্স পারফরম্যান্স এবং টিউনিং গাইডলাইনস" ( http://www.redbooks.ibm.com/abstracts/redp4285.html?Open ) এর মাধ্যমে পড়ুন। এতে অসংখ্য কমান্ড দ্বারা ফিরিয়ে দেওয়া ডেটা সম্পর্কিত বিশদ রয়েছে এবং আপনাকে সহায়তা করা উচিত।

আমি লিনাক্সে "ফ্রি" কমান্ড বা "ক্যাট / প্রোক / মেমিনফো" ব্যবহার করেছি।


0

এখানে একটি পসিক্স শেল ফাংশন রয়েছে যা পছন্দসই শতাংশটিকে নিকটতম পূর্ণসংখ্যার দিকে ঘিরে দেয় (স্ক্রিপ্টিংয়ের জন্য এটি আরও কার্যকর হতে পারে, যেহেতু পসিক্স শেল পাটিগণিতের তুলনা পরীক্ষাগুলি কেবলমাত্র পূর্ণসংখ্যার সাথে কাজ করে):

# Vmstat (derived) Used Ram Percent
vurp() { vmstat -s | { read a b ; read c d ; echo $((100*$c/$a)) ; } ; }
vurp

আউটপুট (আমার সিস্টেমে):

12

একই জিনিস, সাথে free:

furp() { free | { read z; read a b c d; echo $((100*$c/$b)) ; } }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.