লিনাক্সে ভার্চুয়াল মেমরির ব্যবহার> স্বাপ + ফিজিক্যাল বোঝা


9

আমার একটি প্রক্রিয়া যা 'শীর্ষে' প্রতিবেদন করছে যে এটিতে 6GB আবাসিক মেমরি এবং 70 গিগাবাইট ভার্চুয়াল মেমরি বরাদ্দ রয়েছে। আশ্চর্যের বিষয় হ'ল এই নির্দিষ্ট সার্ভারটিতে কেবল 8 গিগাবাইট শারীরিক এবং 35 গিগাবাইট স্বাপের স্থান উপলব্ধ।

'শীর্ষ' ম্যানুয়াল থেকে:

   o: VIRT  --  Virtual Image (kb)
      The total amount of virtual memory used by the  task.   It  includes
      all  code,  data  and  shared  libraries  plus  pages that have been
      swapped out. (Note: you can define the STATSIZE=1 environment  vari-
      able  and  the VIRT will be calculated from the /proc/#/state VmSize
      field.)

      VIRT = SWAP + RES.

এই ব্যাখ্যাটি দেওয়া, আমি প্রত্যাশা করব যে কোনও প্রক্রিয়াটির জন্য ভাইরাল মেমরির বরাদ্দটি আমার অদলবদ + শারীরিক মেমরির মধ্যে সীমাবদ্ধ থাকবে।

'পিএমএপ' অনুসারে, এই প্রক্রিয়াটির কোড, ভাগ করা লাইব্রেরি এবং ভাগ করা মেমরি বিভাগগুলি সমস্ত ন্যূনতম - 300 এম বা তার বেশি নয়।

স্পষ্টতই, মেশিন এবং প্রক্রিয়াটি এখনও সঠিকভাবে চলছে (ধীরে ধীরে হলেও), তবে আমি এখানে কী অনুপস্থিত?

উত্তর:


9

এটি শূন্য মেমরির চাহিদা হতে পারে যা শারীরিক র‌্যামে বা পেজফাইলে নেই।

কিছু সংস্থান যা আপনি দেখতে চাইতে পারেন:

আপনার অ্যাপ্লিকেশনটি অনেকগুলি খালি মেমরি পৃষ্ঠা তৈরি করে? যদি তা হয় তবে আপনার অ্যাপ্লিকেশনটি এর থেকে প্রচুর উপকার পেতে পারে:

এটি আপনাকে রিয়েল-টাইম মেমরি পৃষ্ঠাগুলিতে সংকুচিত এবং সংক্ষেপিত করতে দেয়। ঘুরেফিরে, আপনি ডিস্কে অদলবদল না করে ( খুব ধীর গতিতে ) সবকিছু র‍্যামে রাখতে সক্ষম হন ।


হ্যাঁ, অ্যাপ্লিকেশনটি আইপিভি 4 স্পেসে প্রচুর পরিমাণে সম্পর্ক স্থাপন করছে, তাই ট্র্যাফিকের বিতরণের উপর নির্ভর করে এর প্রচুর খালি পৃষ্ঠা থাকতে পারে। এর জন্য আমাদের নজরদারি করতে হবে। ধন্যবাদ!
বেলি

সাহায্য করতে পেরে আনন্দিত, আশা করি অন্য কোনও ব্যবহারকারী আমাকে চিহ্নিত করবেন। আমি হত্যাকারী উত্তর নিয়ে এসেছি তবে আমার রেটিং 1,266 :-( আছে বলে আমি মনে করি না যে আমার মতো সার্ভার ফল্ট ব্যবহারকারীরা হাহাহাহা করেছেন
দ্য ইউনিক্স জানিটর

1
লোকেরা আপনাকে কেন ভোট দিতে না পারে তার কয়েকটি কারণ: 1. আপনার উত্তরের ফর্ম্যাটিং --- মার্কআপ ব্যবহার করুন। ২. আপনার ব্যবহারকারীর নামটি জেনেরিক বলে মনে হচ্ছে। ৩. সবচেয়ে গুরুত্বপূর্ণ: আপনার পক্ষে এটি সম্পর্কে মন্তব্য করা যথেষ্ট গুরুত্বপূর্ণ important মানুষের মুখে টক স্বাদ ফেলে।
বেলমিন ফার্নান্দেজ

@ ব্যবহারকারী 787899৯৯ উপভোগগুলি 3 টি বিভাগে পড়ে: উত্তরটি কতটা তথ্যপূর্ণ, কতটা সুচরিত এবং এটি পড়া সহজ এবং প্রশ্নটি কতটা জনপ্রিয়। আমি আপনার ফর্ম্যাটিংয়ের কাজ করব, তবে আপনার কিছু জেন থাকতে হবে এবং বুঝতে হবে যে কিছু চমত্কার উত্তরগুলি কেবল এক উপগ্রহ নিয়ে সাইটটির চারপাশে বসে থাকে - একটি প্রশ্নের জনপ্রিয়তা সবচেয়ে বেশি প্রভাবিত করার কারণ।
জেফ ফেরল্যান্ড

1
কিছু ফরম্যাটিং করেছেন। আশা করি এটি হিহকে সাহায্য করবে।
বেলমিন ফার্নান্দেজ

2

এখানে গুণমান বনাম বাসিন্দার স্মৃতি নিয়ে আলোচনা রয়েছে:

/programming/561245/virtual-memory-usage-from-java-under-linux-too-much-memory-used

আলোচনাটি জাভা প্রক্রিয়াগুলি বোঝায়, তবে লিনাক্সের অধীনে চলমান যে কোনও কিছুর ক্ষেত্রে এটি প্রযোজ্য। পুণ্য সম্পর্কিত মূল বক্তব্যটি হ'ল মোট সামগ্রীতে এমন একটি সম্পূর্ণ গোছা রয়েছে যা কখনও ব্যবহার করা যায় না। ভার্ট হ'ল 32-বিট ওএসএসের জন্য নজর রাখার জন্য (যেহেতু প্রক্রিয়াগুলি ঠিকানাযোগ্য জায়গার সীমাবদ্ধতা ফেলবে), তবে অন্যথায় এটি কার্যকরভাবে কার্যকর নয় useful যেমনটি উল্লেখ করা হয়েছে, নজরদারি করার বিষয়টি হ'ল আবাসিক স্মৃতি, যা উপলব্ধ শারীরিক র্যাম এবং আপনার অদলবদ্রে সীমাবদ্ধ থাকবে।


তিনি আসলে জিজ্ঞাসা করেছিলেন যে কেন ভার্চুয়াল মেমরি বরাদ্দ করা হয়েছে তার শারীরিক স্মৃতি + অদলবদলের চেয়ে বড় ..
দ্য ইউনিক্স জানিটার

হ্যাঁ, এবং স্ট্যাকওভারফ্লোতে আলোচনাটি কীভাবে সম্ভব তা নিয়ে আলোচনা করে।
সিজেসি

1

এটি সম্ভবত কারণ প্রক্রিয়াটির 'ঠিকানা স্থানটি আপনি যেভাবে বলেছিলেন সেই আকার, তবে এটি ওএস দ্বারা সত্যিকার অর্থে বরাদ্দ করা হয়নি।

থেকে: http://lwn.net/Articles/428100/

"পর্যাপ্ত পর্যাপ্ত ওভারহেড এবং কোনও উল্লেখযোগ্য বিলম্ব নেই" এই লক্ষ্যে পৌঁছানোর চেষ্টা করার প্রক্রিয়ায় গো বিকাশকারীরা কিছু সহজতর অনুমান করেছেন, যার মধ্যে একটি হ'ল মেমোরিটি একটি চলমান অ্যাপ্লিকেশনটির জন্য পরিচালিত হচ্ছে যা একটি একক, কার্যত-সংগত থেকে এসেছে ঠিকানার ব্যাপ্তি। এই ধরণের অনুমানগুলি আপনার সম্পাদক vi এর সাথে যে একই সমস্যায় পড়েছে তা চালিয়ে যেতে পারে - অন্যান্য কোডটি বিস্তারের মাঝের অংশে টুকরো বরাদ্দ করতে পারে - তাই গো বিকাশকারীরা একই সমাধান গ্রহণ করেছে: তারা কেবল তাদের সমস্ত মেমরি বরাদ্দ করে যা তাদের মনে হতে পারে (তাদের ধারণা, যুক্তিযুক্তভাবে, যে 16 গিগাবাইটটি একটি 64-বিট সিস্টেমে যথেষ্ট হওয়া উচিত) শুরু করার সময়।

সুতরাং যে মেমরি পরিচালনা কখনও কখনও অপ্রত্যাশিতভাবে করা হয় - অবিচ্ছিন্ন ঠিকানার স্থান থাকা অব্যবহৃত মেমকে মুক্তি সহজতর করে।


0

উত্তরটি সম্ভবত এমএমএএপি - ডেটাটি ডিস্কে রয়েছে, তবে এটি অদলবদলের "বাইরের" এবং "ফ্রি" বা "শীর্ষ" কমান্ডের সাথে দেখা যায় না।

যদি জাভা প্রক্রিয়া খুব জটিল না হয়, আপনি এমএমএপি ফাইলটি কোথায় তা খুঁজে পেতে "lsof" দিয়ে খেলতে চেষ্টা করতে পারেন। তবে এই জাভা প্রক্রিয়াটি জটিল হলে দেখা অসুবিধা হবে।


-1

আমি আরও অবাক হয়েছি যে লিনাক্স আপনাকে শারীরিক মেমরি + অদলবদল স্থানের চেয়ে আরও ভার্চুয়াল মেমরি বরাদ্দ করতে দেয় তবে স্পষ্টতই এটি সাধারণ পরিস্থিতিতে পারফরম্যান্সে সহায়তা করে।

ভাগ্যক্রমে, এখানে একটি কার্নেল-টিউনিং প্যারামিটার রয়েছে যা মেমরি অ্যাকাউন্টিং মোডে স্যুইচ করতে ব্যবহার করা যেতে পারে। এই পরামিতিটি vm.overcommit_memory এবং এটি নির্দেশ করে যে উপলব্ধ মেমোরি ট্র্যাক করতে কোন অ্যালগরিদম ব্যবহৃত হয়। ডিফল্ট (0), হিউরিস্টিক পদ্ধতি ব্যবহার করে এবং ভার্চুয়াল মেমরি সিস্টেমকে ওভার কমিট করে। যদি আপনি চান যে আপনার প্রোগ্রামগুলি এলোমেলোভাবে হত্যার প্রক্রিয়ায় প্রসেসের পরিবর্তে বরাদ্দ দেওয়ার ক্ষেত্রে যথাযথ মেমরির ত্রুটি পেতে পারে, আপনার এই পরামিতিটি 2 তে সেট করা উচিত।

http://www.linuxjournal.com/article/10678


এটি সম্পূর্ণ বিভ্রান্ত। ওভারকোমিট এমন নয় যা আপনাকে শারীরিক মেমরির প্লাস স্ব্যাপের চেয়ে বেশি ভার্চুয়াল মেমরি বরাদ্দ করতে দেয়। আপনি অতিরিক্ত কমিট ছাড়াই এটি করতে পারেন। (উদাহরণস্বরূপ, 2 গিগাবাইট র‌্যামের কোনও মেশিনে কোনও অদলবদল এবং কোনও ওভার কমমিট নেই, আপনি এখনও 4GB ভার্চুয়াল মেমরি ব্যবহার করে কেবল 4 গিগাবাইট ফাইল পড়তে মেমরি করতে পারেন।)
ডেভিড শোয়ার্জ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.