/ Proc / pid / smaps থেকে কোনও প্রক্রিয়াটির মেমরির ব্যবহার সম্পর্কে তথ্য পাওয়া


46

একটি প্রদত্ত প্রক্রিয়া /proc/<pid>/smapsজন্য, একটি প্রদত্ত ম্যাপিং এন্ট্রি জন্য কি:

  1. Shared_Clean
  2. Shared_Dirty
  3. Private_Clean
  4. Private_Dirty

হয় Shared_Clean+ Shared_Dirtyমেমরির পরিমাণ যে অন্যান্য প্রসেস সাথে ভাগ করা হয়? তাহলে কি আরএসএসের মতো ভাগ?

একইভাবে হয় Private_Clean+ Private_Dirtyমেমরির পরিমাণ যে শুধুমাত্র একটি প্রক্রিয়ার জন্য উপলব্ধ ? তাহলে এটা কি আরএসএসের মতো?

পিএসএস মান = প্রাইভেটআরএসএস + (ভাগ করে নেওয়া প্রসেসের অংশীদারিএসএসএস)?

এই লিঙ্কটি পড়ার পরে আরও কিছু প্রশ্ন: এলডব্লিউএন

এখন সামগ্রিকভাবে প্রক্রিয়াটি সম্পর্কে কথা বলা যাক, যার স্যাম্যাপ এন্ট্রি আমরা দেখছি।

আমি লক্ষ্য করেছি যে আমি কি যদি Shared_Clean+ + Shared_Dirty+ + Private_Clean+ + Private_Dirtyযে প্রক্রিয়া আমি দ্বারা রিপোর্ট প্রক্রিয়ার আরএসএস পান এন্ট্রি smaps জন্য ps, বেশ কুল পারে। যেমন যেমন

ps -p $$ -o pid,rss

আমাকে এর সমষ্টি হিসাবে (প্রায়) RSS জন্য একই মান দিতে হবে Shared_Clean, Shared_Dirty, Private_Clean, Private_Dirtyএন্ট্রি / proc / $$ / smaps।

তবে পুরো প্রক্রিয়াটির জন্য পিএসএসের কী হবে ? সুতরাং, উপরের উদাহরণ থেকে আমি কীভাবে $$ এর জন্য পিএসএস পাব? আমি কি প্রতিটি এসএমএস ম্যাপিংয়ের জন্য কেবল পিএসএস এন্ট্রি যুক্ত করতে পারি এবং SS এর জন্য পিএসএস এ পৌঁছাতে পারি?

এবং পুরো প্রক্রিয়াটির জন্য ইউএসএস সম্পর্কে কী ? আবার উপরের উদাহরণটি গ্রহণ করে আমি অনুমান করছি যে আমি ইউএসএসে $$ .. জন্য প্রতিটি এসএমএস এন্ট্রির জন্য কেবল প্রাইভেট_ * এন্ট্রিগুলি সংক্ষেপ করে ডলারে পৌঁছতে পারি? ঠিক?

নোটস:
পিএসএস = আনুপাতিক সেট আকার।
ইউএসএস = স্বতন্ত্র সেট আকার।

উত্তর:


50

পরিষ্কার পৃষ্ঠাগুলি এমন পৃষ্ঠাগুলি যা ম্যাপ করার পরে তা সংশোধন করা হয়নি (সাধারণত, ভাগ করা লাইব্রেরিগুলির পাঠ্য বিভাগগুলি কেবল ডিস্ক থেকে পড়া হয় (যখন প্রয়োজন হয়), কখনও সংশোধিত হয় না, সুতরাং সেগুলি ভাগ করা, পরিষ্কার পৃষ্ঠাগুলিতে থাকবে))।
নোংরা পৃষ্ঠাগুলি এমন পৃষ্ঠাগুলি যা পরিষ্কার নয় (যেমন পরিবর্তিত হয়েছে)।

ব্যক্তিগত পৃষ্ঠাগুলি কেবল সেই প্রক্রিয়াতেই উপলব্ধ, ভাগ করা পৃষ্ঠাগুলি অন্যান্য প্রক্রিয়া দ্বারা ম্যাপ করা হয় *

আরএসএস হ'ল প্রক্রিয়াটিতে ম্যাপযুক্ত মোট পৃষ্ঠা, ভাগ করা বা না is সুতরাং Shared_Clean+ + Shared_Dirtyআরএসএস (অর্থাত আরএসএস অংশ যে প্রক্রিয়া মধ্যে ম্যাপ করা হয়) ভাগ অংশ, এবং হবে Private_Clean+ + Private_Dirtyআরএসএস ব্যক্তিগত অংশ (অর্থাত শুধুমাত্র এই প্রক্রিয়ায় ম্যাপ)।

পিএসএস (আনুপাতিক শেয়ারের আকার) আপনার বর্ণনা অনুসারে। ব্যক্তিগত পৃষ্ঠাগুলি যেমন হয় তেমন সংক্ষিপ্ত হয় এবং প্রতিটি ভাগ করা ম্যাপিংয়ের আকার ভাগ করে নেওয়ার প্রক্রিয়াগুলির দ্বারা ভাগ করা হয়।
সুতরাং যদি কোনও প্রক্রিয়াতে 100k ব্যক্তিগত পৃষ্ঠাগুলি থাকে, 500k পৃষ্ঠাগুলি অন্য একটি প্রক্রিয়ার সাথে ভাগ করা হয় এবং 500k অন্য চারটি প্রক্রিয়ার সাথে ভাগ করা হয় তবে পিএসএস হ'ল:

100k + (500k / 2) + (500k / 5) = 450k

আরও পড়া:

প্রক্রিয়া-বিস্তর পরিমাণ সম্পর্কে:

  • RSS(প্রায় + ) Rss:এন্ট্রিগুলি সংক্ষিপ্ত করে প্রাপ্ত করা যেতে পারে ( smapsআপনার ভাগ করা / ব্যক্তিগত ভাগ / নোংরা এন্ট্রি যোগ করার প্রয়োজন নেই)।

    awk '/Rss:/{ sum += $2 } END { print sum }' /proc/$$/smaps
    
  • Pss:প্রক্রিয়া-বিশ্বব্যাপী পেতে আপনি একইভাবে মানগুলি যোগ করতে পারেন PSS
  • USSরিপোর্ট করা হয়নি smaps, তবে প্রকৃতপক্ষে, এটি ব্যক্তিগত ম্যাপিংয়ের যোগফল, সুতরাং আপনি এটিও একইভাবে পেতে পারেন

* মনে রাখবেন যে "ভাগ-সক্ষম" পৃষ্ঠাটি প্রকৃতপক্ষে ভাগ না হওয়া অবধি ব্যক্তিগত ম্যাপিং হিসাবে গণ্য করা হয় । যেমন বর্তমানে যদি কেবল একটি প্রক্রিয়া ব্যবহার করা হয় তবে libfooসেই লাইব্রেরির পাঠ্য বিভাগটি প্রক্রিয়াটির ব্যক্তিগত ম্যাপিংগুলিতে উপস্থিত হবে । এটি যখন / অন্য কোনও প্রক্রিয়া সেই লাইব্রেরিটি ব্যবহার শুরু করে তবেই ভাগ করা ম্যাপিংগুলিতে (এবং ব্যক্তিগতগুলি থেকে সরানো) এ হিসাব করা হবে।
+ মানগুলি সমস্ত প্রক্রিয়াতে হুবহু যোগ করে না। ঠিক কেন জানি না ... দুঃখিত।


দুর্দান্ত উত্তরের জন্য ধন্যবাদ। এটা প্রশংসা করি. আমি এলডাব্লুএম নিবন্ধটি পড়েছি এবং এটি আমাকে আরও কয়েকটি প্রশ্ন জিজ্ঞাসা করতে অনুপ্রাণিত করেছিল, তাই আমি তাদের উপরে আমার প্রশ্নে যুক্ত করেছি।
অঙ্কুর আগরওয়াল

গ্রেট! এটা খুব সহায়ক!
ক্যামিনো

আমি এখনও শেয়ার_ডার্টি সম্পর্কে বিভ্রান্ত হয়েছি - এটির নোংরা প্রকৃতি কি এটিকে এখনও ভাগ করে নেওয়া আটকাচ্ছে?
কেভিন

@ কেভিন: যদি সেগুলি ভাগ না করা হত তবে তাদের অ্যাকাউন্ট করা হত না Shared_Dirty- আপনি কি আপনার প্রশ্নটি পরিষ্কার করতে পারবেন?
মাদুর

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