প্রদত্ত ম্যাক অ্যাপ্লিকেশনটি কতটা অদলবদল ব্যবহার করছে?


15

ম্যাক ওএসএক্স (10.2+) এ চলমান একটি নির্দিষ্ট অ্যাপ্লিকেশনটির কিছু স্মৃতি অদলবদল হয়েছে (অর্থাত্ /private/var/vm/swapfile*ফাইলগুলির মধ্যে একটিতে) কিনা তা বলার কোনও উপায় আছে ? এবং কত?

অনুগ্রহ (150 আরপিএস)

সহজ প্রশ্ন. আমি যদি অনুগ্রহকালীন মেয়াদের মেয়াদ শেষ হওয়ার 2 দিনেরও কম সময় দিয়ে দেখি তবে প্রথম সঠিক উত্তরটি গৃহীত হবে। তারপরেও যদি আমি এখনও কিছু না পেয়ে থাকি তবে যে আমাকে সবচেয়ে আকর্ষণীয় নতুন ঘটনা বলবে আমি তাকে এটি প্রদান করব। এবং যদি আমি উত্তরগুলির একটি থেকে একটিও জিনিস না শিখি তবে আমি যিনি সর্বাধিক খুব সুন্দরভাবে লেখেন তাকে অনুদান প্রদান করব।


এটি এমন একটি খারাপ প্রশ্ন। আপনি যে নম্বরটি খুঁজছেন সেটি পরিবর্তিত হবে কারণ আপনি এটি পরিমাপ করার চেষ্টা করছেন (হিজেনবার্গের অনিশ্চয়তার নীতি মনে করুন)। আরও অন্যান্য অ্যাপ্লিকেশন এবং তাদের মেমরির প্রয়োজনীয়তা, io নিদর্শন এবং প্রক্রিয়া অগ্রাধিকারের উপর নির্ভর করে এটি সর্বদা পরিবর্তিত হবে। যদি আপনি নম্বরটি খুঁজে পান তবে আপনি ওএস কোডটি সম্পাদনা না করা ছাড়া আপনার কোনও ভাল হবে না, কারণ অ্যাপ্লিকেশনটির দৃষ্টিভঙ্গি থেকে আপনি এটি পরিবর্তন করতে যাচ্ছেন এমন খুব কমই রয়েছে।
gavaletz

3
@ গাওয়ালেটজ: আজ সকালে বিছানার ঠিক পাশ থেকে বেরিয়ে যাবেন? লিনাক্স / প্রোড / id পিড / এসএমএস ব্যবহার করে লিনাক্স যে ধরণের অদলবদল সম্ভব করেছে তা আমি চাই। আমি সাধারণত আমার কান ব্যবহার করে হঠাৎ অদলবদলের ক্রসগুলি সনাক্ত করতে পারি, তাই আমি গ্যাভেলটজের অনিশ্চয়তার নীতি দ্বারা খুব বেশি বিরক্ত হই না।
চার্লস স্টুয়ার্ট

উত্তর:


13

আমি অনেকটা গুগল করছি ;-) আমি এটি বুঝতে পেরেছি যে প্রদত্ত প্রক্রিয়াটির ভার্চুয়াল মেমরিটি এমন পৃষ্ঠাগুলিতে বিভক্ত হয় যা ওএস দ্বারা পরিচালিত হয় এবং অ্যাপ্লিকেশনটিতে উপস্থাপিত হয় যেমন এটি র্যাম RAM

ওএস এক্স-এ, মাচ কার্নেলের উপর ভিত্তি করে, এটি ডেমন নামক একটি পরিচালনা করে dynamic_pager/private/var/vmআপনি উল্লেখ হিসাবে এই প্রক্রিয়া swapfile (গুলি) উত্পন্ন । এই স্ব্যাপফাইলগুলি প্রতিটি অ্যাপ্লিকেশন ভিত্তিতে তৈরি হয় না তবে "মেমোরি প্রয়োজন" ভিত্তিতে তৈরি হয়। সোয়াফিলগুলি 4096 বাইটের পৃষ্ঠাগুলিতে বিভক্ত হয় এবং পৃষ্ঠাগুলি সেই প্রক্রিয়াগুলিতে বরাদ্দ করা হয় (যাদের ওএস দ্বারা বিবেচনা করা হয়) ভার্চুয়াল মেমরির প্রয়োজন হয়। অতএব, আপনি প্রদত্ত অ্যাপ্লিকেশনটির সাথে একটি সোয়াফিল ফাইলটি সংযুক্ত করতে পারবেন না তবে প্রদত্ত প্রক্রিয়াটি কত পৃষ্ঠা ব্যবহার করছে তা আপনি দেখতে পারেন।

আপনি vm_statটার্মিয়াল কমান্ড চেষ্টা করতে পারেন । এটি আপনাকে ভিএম ব্যবহারের একটি পরিসংখ্যান দেয় (নোট করুন যে 'পৃষ্ঠার আকার' সক্রিয় পৃষ্ঠাগুলির সংখ্যা আপনার সোয়াপফাইলে (গুলি) এর আকারের সমান)। এটি ভিএম ব্যবহার করে কেন আপনার একাধিক প্রক্রিয়া করতে পারে তা কেবল তা ব্যাখ্যা করে তবে কেবল দুটি স্ব্যাপফাইল।

অন্যান্য মজাদার কমান্ডগুলি হ'ল vmmap [process id]এবং pagestuff



এটি আশাব্যঞ্জক মনে হচ্ছে। এটি প্রশ্নের প্রথম অংশের একটি নির্দিষ্ট উত্তর সরবরাহ করে বলে মনে হয় এবং এটি দ্বিতীয় অংশের একটি সুনির্দিষ্ট জবাবের পরামর্শ দেয় sugges আমার আরও খনন করা দরকার ...
চার্লস স্টুয়ার্ট

না vmmap [pid]বা vmmap -pages [pid]আপনার প্রশ্নের দ্বিতীয় অংশের উত্তর?
trolle3000

vmmap-pid এটি রচনামূলক অঞ্চল হিসাবে শ্রেণীবদ্ধ করে সে সম্পর্কে দ্ব্যর্থহীন তথ্য দেয়। এটি কেবলমাত্র পাঠ্য অঞ্চলগুলির জন্য বরাদ্দকৃত (অর্থাত্ স্বেচ্ছাবোধযোগ্য) এবং অদলবদল মেমরির মধ্যে পার্থক্য করে না, তবে সম্ভবত সেখানে পার্থক্যটি এত গুরুত্বপূর্ণ নয় important আমি খুব সম্ভবত আগামীকাল এই উত্তরটি গ্রহণ করব।
চার্লস স্টুয়ার্ট

5

vmmap PIDকমান্ড একটি প্রদত্ত প্রক্রিয়া সম্পর্কে সংখ্যায় আপনি কিছু সহায়ক পরিসংখ্যান দিতে হবে।


এমনকি vmmap [APPNAME] কাজ করে
Studer

4

এখানে পোস্ট করা ধারণাগুলির উপর ভিত্তি করে আমি কোডের এই সামান্য লাইন তৈরি করেছি:

sudo vmmap notifyd | grep -A3 'Summary'

যা ভিএমএপ আউটপুটের সংক্ষিপ্ত বিভাগ (3 লাইন) প্রদর্শন করে। আমি notifydএই উদাহরণটি ব্যবহার করেছি , তবে আপনি যে কোনও পিআইডি জানেন তা দিয়ে এটি প্রতিস্থাপন করতে পারেন।

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

ps -o pid= -xa | awk '{print $1}' | xargs -n 1 sudo vmmap | grep -A3 'Summary'

সম্পাদিত: কিছু বেনাম ব্যবহারকারী এই শেষ কমান্ড লাইনের উন্নতির প্রয়োজন দেখেছেন কারণ সম্ভবত আসল রূপটি আর কাজ করে না। সুতরাং আপনি যে কেউ হন আপনাকে অনেক ধন্যবাদ এবং আমি দুঃখিত যে আপনার সম্পাদনা প্রত্যাখাত হয়েছিল। (প্রথম কমান্ড পূর্বে 'পিএস এক্সএ' পড়েছিল এবং পিএম এর শিরোনামটি এতে ফেলে দেওয়া হওয়ায় ভিএমএম্যাপ ব্যর্থ হতে পারে)

আরও উন্নতি: আপনি যদি প্রোগ্রামটির নামটি এখনই জানতে চান তবে এই ছোট পরিবর্তনটি ব্যবহার করুন

ps -o pid= -xa | awk '{print $1}' | xargs -n 1 sudo vmmap | egrep 'swapped_out|Path'

এই কমান্ডের অন্য প্রান্তে সামান্য সংশোধন আপনাকে নির্দিষ্ট প্রোগ্রামের নাম বা কমান্ড লাইন পাথ উপাদানগুলির জন্য ফিল্টার করতে সক্ষম করে। এখানে আমরা উদাহরণস্বরূপ কেবল 'লাইব্রেরী / প্রাইভেটফ্রেমওয়ার্কস' থেকে সমস্ত প্রক্রিয়া দেখছি।

ps -o pid,command= -xa | grep 'Library/PrivateFrameworks' | awk '{print $1}' | xargs -n 1 sudo vmmap |

আমি প্রচুর ব্যর্থতা পেয়ে বলছি যে 32-বিট প্রক্রিয়া হিসাবে ভিএমএমেপ চালু করা যায়নি, যা এক্সার্গস বন্ধ করে দেয়। চালিয়ে যাওয়ার জন্য কার্ড পেতে, আমি করেছি ps -o pid= -xa | awk '{print $1}' | xargs -n 1 -I{} bash -c ‘sudo vmmap {} || true’ | egrep 'swapped_out|^Path:|^Process:'। এটি এখনও সিটিআরএল + সিতে থামছে না, তবে এটি ভিএমএপ ত্রুটিগুলিতেও থামছে না।
শ্যাড স্টার্লিং

0

আপনার / অ্যাপ্লিকেশন / ইউটিলিটি ফোল্ডারে ক্রিয়াকলাপ মনিটর খুলুন এবং একটি ভার্চুয়াল মেমোরি কলাম রয়েছে যা আপনাকে এটি বলবে। আপনি ভার্চুয়াল মেমরি হেডারে ক্লিক করতে পারেন সর্বাধিক বা কমপক্ষে অ্যাপ্লিকেশন দ্বারা ব্যবহৃত অনুসারে বাছাই করতে। আমার প্রক্রিয়াগুলি সমস্ত প্রক্রিয়াতে পরিবর্তন করতে ভুলবেন না, এবং সচেতন হন যে একটি অ্যাপ্লিকেশনটিতে একাধিক প্রক্রিয়া থাকতে পারে। উদাহরণস্বরূপ তৃতীয় পক্ষের অ্যাপ্লিকেশন লিটল স্নিচ "লিটল স্নিচ নেটওয়ার্ক মনিটর" এবং "লিটল স্নিচ ইউআইএজেন্ট" সমন্বিত।


4
ওইটা ভুল. ভার্চুয়াল মেমরি কলামে নুবারটি বর্তমানে র‌্যামে এবং অদলবদলে, এমএমএপি করা ফাইলগুলিতে রয়েছে এবং আমি আর জানি না।
টাদিউস এ। কাদুউবস্কি

তুমি কি নিশ্চিত? অ্যাপল এটি সমর্থন
.apple.com

1
ভিএম নম্বর বরাদ্দকৃত পরিমাণটি পরিমাপ করে তবে বাস্তবে এখনও ব্যবহৃত হয় নি। অদলবদলের ফাইলগুলিতে আসলে যা ব্যবহৃত হয় তা থাকবে।
Chealion

@ চেলিওন: বরাদ্দ কিন্তু বাস্তবে ব্যবহৃত হয়নি এমন মেমরির সংজ্ঞা আপনি কীভাবে দেন?
টাদিউস এ। কাদুউবস্কি

@ টক্যাডলুবো: এক্ষেত্রে আমার বিশ্বাস যে ডিস্কের বাইরে পেজড প্রকৃত পৃষ্ঠাগুলি বনাম কোনও প্রক্রিয়ার জন্য উপলব্ধ ভিএম আকারের মধ্যে এটি কেবল বৈষম্য। আমি নিশ্চিত না যে কীভাবে এটি সংজ্ঞায়িত করবেন যে ডিস্কের ভিএম নম্বর এবং অদলবদলের ফাইলগুলি আলাদা।
চেলিয়ন

0

যেমনটি রাগোগি বলেছিলেন, ক্রিয়াকলাপের তদারক করুন ওপেন করুন। আপনি যে প্রক্রিয়াটি পরিদর্শন করতে চান তাতে নেভিগেট করুন এবং ক্লিক করুন ... পরিদর্শন করুন! তারপরে মেমরি ক্লিক করুন; এটি আপনাকে প্রদত্ত প্রক্রিয়াটি কতটা অদলবদল করছে তা বলবে।

আনন্দ কর!


3
পরিদর্শন পৃষ্ঠাটি আমাকে সমস্ত ধরণের আকর্ষণীয় জিনিস বলে যা প্রশ্নের উত্তর কী, যা # পৃষ্ঠাগুলি, # পৃষ্ঠাগুলি এবং এমএমেড করা ফাইলগুলির তালিকার সাথে ইতিবাচকভাবে সম্পর্কিত হয় তবে আমি যে প্রশ্নের পরে এসেছি তার প্রকৃত উত্তর কোথাও নেই।
চার্লস স্টুয়ার্ট 21
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.