আমার সোয়াপ (উবুন্টু) কী ব্যবহার করছে?


30

আমার একটি উবুন্টু 8.04 সার্ভার রয়েছে যা একটি ডাটাবেস এবং জাভা অ্যাপ্লিকেশন সার্ভারের একটি গুচ্ছ চালাচ্ছে। এর মেমরির কনফিগারেশন এবং ব্যবহারটি হ'ল:

             total       used       free     shared    buffers     cached
Mem:      16456176   15930028     526148          0      81372    9674196
-/+ buffers/cache:    6174460   10281716
Swap:      1951888     366100    1585788

আমি লক্ষ্য করেছি যে অদলবদু প্রতি বিকেলে উপরে উঠে যায় এবং রাতে কিছু সময় প্রকাশিত হয়। চাহিদা সমস্ত দিন একই হয় না, এবং বিভিন্ন সময়ে শুরু হয়। অস্পষ্ট "বিকেল-রাত" সীমানা বাদে এটি বেশ এলোমেলো।

দিনের বেলা এই মেশিনে লোড পরিবর্তিত হয়। এটি মধ্যরাত থেকে সকাল 6-- AM০ এর মধ্যে খুব কম, higher-৮ টা পর্যন্ত অনেক বেশি (তবে স্থিতিশীল), পরে ধীরে ধীরে নেমে আসবে।

এখন আমার নিচের প্রশ্নগুলি রয়েছে:

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

উত্তর:


25

আপনি যে স্বাপের ব্যবহারের ধরণগুলি বর্ণনা করেছেন তা অবাক হওয়ার মতো শোনায় না। তারা স্থায়ীভাবে চলমান কিছু প্রক্রিয়াগুলির সাথে সামঞ্জস্যপূর্ণ যা খুব কম ব্যবহার করা পৃষ্ঠাগুলি রয়েছে। দিনের বেলা, উচ্চ ক্রিয়াকলাপের কারণে, খুব কম ব্যবহৃত পৃষ্ঠাগুলি প্রায় সর্বদা অদলবদলে থাকে। রাতে, র‌্যামে তাদের জন্য আরও জায়গা রয়েছে।

আপনি বিভিন্ন ধরণের প্রতিটি প্রসেসের ইন ব্যবহার করছে কত মেমরি একটি আভাস পেতে পারেন topবা htop। উভয়ই ডিফল্টরূপে অদলবদল দেখাবেন না, তবে উভয়ই কনফিগার করা যেতে পারে (শীর্ষ: টিপুন fএবং SWAPকলামটিতে স্যুইচ করুন ; এইচটিপি: টিপুন F2, NSWAPকলামটি যুক্ত করুন )। প্রক্রিয়া আইডি cat /proc/12345/vmstatকোথায় রয়েছে 12345তা নিয়ে আপনি একটি নির্দিষ্ট প্রক্রিয়া সম্পর্কে আরও তথ্য পেতে পারেন । নোট করুন যে "কোনও প্রোগ্রাম কতটা স্ব্যাপের ব্যবহার করছে" সম্পূর্ণরূপে সংজ্ঞায়িত নয়, কারণ কয়েকটি পৃষ্ঠা বিভিন্ন প্রক্রিয়া দ্বারা ভাগ করা হয়েছে।

র‌্যামের জন্য দুটি বড় ধরণের প্রতিযোগী রয়েছে: প্রসেস মেমোরি (যা সরে যেতে পারে) এবং ডিস্ক ক্যাশে (যা কোনও ফাইল থেকে পুনরায় পড়তে পারে)। ডিস্ক ক্যাশে সর্বদা প্রক্রিয়া মেমরির অগ্রাধিকার দেওয়ার কোনও কারণ নেই: একটি ফাইল বারবার মেমরিতে পড়ার চেয়ে প্রক্রিয়া মেমরির একটি খুব কম ব্যবহৃত অংশ অদলবদল করা ভাল। ডিস্ক ক্যাশে নিবেদিত মেমরির প্রায় অর্ধেক (30% –70% বলুন) দিয়ে আপনি যে পরিসংখ্যানগুলি দেন তা হ'ল সিস্টেমগুলির পক্ষে সাধারণত যে কাজগুলি করার কথা তার পক্ষে যুক্তিসঙ্গত পরিমাণ র‌্যাম রয়েছে।


6
আমি একটি NSWAPকলাম খুঁজে পাচ্ছি না (উবুন্টু 16.04: /)।
jjmontes

1
@jjmontes এটা হয়েছে মুছে । কেন জানি না।
গিলস 'অশুভ হওয়া বন্ধ করুন'

Htop প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী বলে যে লেখক এটা সঠিকভাবে swap 'র ব্যবহার প্রতিবেদন করতে সম্ভব বিশ্বাস করে না, এবং যে শীর্ষ এর মেট্রিক বেঠিক নয়।
অলিভার ইভান্স

0

স্ট্যাকওভারফ্লোতে, আপনার প্রথম প্রশ্নের ইতিমধ্যে একটি দুর্দান্ত উত্তর রয়েছে ("কোন প্রক্রিয়াটি আসলে সোয়াপ ব্যবহার করছে?")।

https://stackoverflow.com/a/7180078/1442301

সংক্ষেপে, সরঞ্জামগুলি স্ব্যাপের ব্যবহার সম্পর্কে মোটেই সঠিক তথ্য সরবরাহ করে না topবা সরবরাহ htopকরে না। আরও সঠিক তথ্য পেতে আপনার /procফোল্ডারে (সিউডো ফাইলে /proc/$PID/smaps) ডুব দেওয়া উচিত ।

পোস্ট উপরে উল্লিখিত এই তথ্য একটা চমৎকার ভাবে প্রতিধ্বনিত পেতে একটি সংক্ষিপ্ত শেল স্ক্রিপ্ট রয়েছে।


0

সঙ্গে htop v1.01, আমি "এস" চাপা যোগ করার জন্য NSWAP'F2' পরিবর্তে কলাম (যেমন গিলেজ প্রস্তাব), তারপর Columns> Available Columns> এবং F5এটি যোগ করতে।

এখানে চিত্র বর্ণনা লিখুন


আমার কাছে ২.০.১ হিপ আছে এবং আমি এনএসডাব্লুএপ বিকল্পটি দেখতে পাচ্ছি না :(
অ্যাডাম

1
@ অ্যাডাম মেনটেনার এই তথ্য পাওয়ার কোনও নির্ভরযোগ্য উপায়ের কারণে এই কলামটি আর দেখাতে চান না; দেখুন কেন শীর্ষের মতো এইচটিপিকে একটি সোয়াপ কলাম বৈশিষ্ট্যযুক্ত নয়?
গেঞ্জো

0

ভোটদান এবং সরঞ্জামগুলির আউটপুট যেমন পার্সিং এবং পার্সিং ব্যতীত vmstat, freeএবং দেখার topজন্য সর্বোত্তম জায়গাটি সিস্টেমের মূল ব্যবহারকারী বা অন্য ব্যবহারকারীদের ক্রন্টব্যাব হতে পারে। যদি সিস্টেমে সাধারণ লোড নির্দিষ্ট সময়ে নির্ভরযোগ্যভাবে স্পাইক করে তবে ক্রোনটিতে এমন একটি প্রক্রিয়া রয়েছে যা সংস্থানগুলির প্রয়োজনীয়তা তৈরি করে। অন্যথায় আপনি ইউটিলিটি সহ সর্বদা একটি ঘেটো নিক্ষেপযোগ্য লগিং ইউটিলিটি তৈরি করতে পারেন script, যা কেবল এসটিডিআউট-এ যাওয়া সমস্ত কিছু রেকর্ড করে।

সুতরাং পরে যদি পরিদর্শন করার জন্য আউটপুট ধরতে আমার যদি একটি অফ অফ থ্রোওয়ে স্ক্রিপ্ট করার প্রয়োজন হয় তবে একটি টার্মিনালে আমি টাইপ করব:

script /tmp/free.txt

এবং তারপর

while (true); do date; free; sleep 30; done

এবং অন্য টার্মিনালে

script /tmp/top.txt

এবং তারপর

while (true); do date; top -n 1; sleep 30; done

এবং তারপর পরদিন সকালে উভয় বধ scriptআমন্ত্রণ এবং আউটপুট মেলে topএবংfree

আবার এটি একটি ঘেটো পদ্ধতির তবে মনে হচ্ছে আপনার কেবল একটি অফ-অফ দরকার

আপনি উবুন্টু অদলবদল গাইডটি পড়তে পছন্দ করতে পারেন

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