কমান্ডের গোষ্ঠীগুলির সংক্ষিপ্ত মেমরি ব্যবহার কীভাবে দেখুন (প্রক্রিয়াগুলির পরিবর্তে)


10

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

এতক্ষণ আমি কেবল এরকম কিছু নিয়ে এসেছি:

ps ax -o pmem,cmd | grep opera | grep -oE '^[ ]*[0-9.]+' | paste -sd+ - | bc

উত্তর:


7

আপনি ps -Cকেবলমাত্র একটি নির্দিষ্ট কমান্ড নামের জন্য প্রক্রিয়া সম্পর্কিত তথ্য প্রদর্শন করতে ব্যবহার করতে পারেন ।

যেমন

ps -C opera

এরপরে psআপনি অনুসন্ধান করছেন কেবলমাত্র ডেটা বের করতে আপনি অন্যান্য বিকল্পগুলি ব্যবহার করতে পারেন । বিশেষত, hবা --no-headersকলাম শিরোনাম দমন করতে, এবং -o pmemপ্রক্রিয়া দ্বারা ব্যবহৃত মেমরির শতাংশ দেখানো।

ps -C opera --no-headers -o pmem

এটি আপনাকে প্রতি লাইনে এক মেমরি-ব্যবহারের শতাংশ দেবে।

এর মতো ডেটা সংমিশ্রনের জন্য অনেকগুলি পদ্ধতি রয়েছে, আমি যে পদ্ধতিগুলি ঘন ঘন ব্যবহার করি তার মধ্যে একটি হ'ল এটি ফাঁকা দ্বারা সীমান্তযুক্ত উপাদানগুলির সাথে এক লাইনে রূপান্তর করার জন্য এটিকে xargs মধ্যে পাইপ করা, পরে স্পেসগুলিকে +চিহ্নগুলিতে রূপান্তর করতে এবং তারপরে bcসম্পাদন করার জন্য হিসাব। আপনার পাইপিংয়ের পদ্ধতিটি paste -sd+পাশাপাশি বা যুক্তিযুক্ত তুলনায় আরও ভাল কাজ করে | xargs | sed

সব একসাথে রাখলে আপনি পাবেন:

ps -C opera --no-headers -o pmem | xargs | sed -e 's/ /+/g' | bc

অথবা

ps -C opera --no-headers -o pmem | paste -sd+ | bc

অন্য কথায়, আপনি ps -Cযদি কেবল একটি নির্দিষ্ট চলমান প্রোগ্রামের ডেটা চান তবে আপনি একাধিক গ্রেপের পরিবর্তে ব্যবহার করতে পারেন ।

দ্রষ্টব্য: আপনি -Cযদি একবারে একাধিক প্রোগ্রাম সম্পর্কে তথ্য চান তবে আপনি একই কমান্ড লাইনে একাধিক বিকল্প ব্যবহার করতে পারেন । যেমন

ps -C iceweasel -C chromium -C opera

হ্যাঁ, প্রথম ব্যক্তি যিনি আসলে আমার প্রশ্নটি বুঝতে পেরেছেন / পড়েছেন!
কর্ডা

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

এখানে সবসময় ps h -C java -o pmem,args | awk '/foo/ {print $1}' | ...যেমন foo নামক একটি জাভা প্রোগ্রাম সন্ধান করা।
কাশ

0

আপনি একটি শেল স্ক্রিপ্ট করতে পারেন

#!/bin/bash
Total=`cat /proc/meminfo | head -n1 | awk '{print $2}'`
max_usage=`ps ax -o pmem,fname | sort -r | head -n2 | tail -n1 | awk '{print $1}'`
name=`ps ax -o pmem,fname | sort -r | head -n2 | tail -n1 | awk '{print $NF}'`
echo "$Total $max_usage $name"
echo "($max_usage*$Total)/(100*1024)" | bc

এটি সর্বোচ্চ স্মৃতি ব্যবহারের অ্যাপ্লিকেশন দেবে।


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

তাই কি? আচ্ছা আপনি কি টপের মতো কিছু চান ?? যদি হ্যাঁ হয় তবে আপনি 2 বা 1 সেকেন্ডের বিলম্বের সাথে স্ক্রিপ্টটি সংশোধন করতে পারেন এবং কিছু সময় বা তার জন্য একই জিনিসটি চালাতে পারেন। আমার জন্য এটি এই স্ক্রিপ্টটি চালানোর সময় সর্বাধিক মেমোরি ব্যবহারের অ্যাপ্লিকেশনটি দেখায়। আপনি কী ধরণের স্টাফ চেষ্টা করছেন, কেবল চালান: ps আফ-ও পিমেম, সেন্টিমিটার | বাছাই -r এটি আপনাকে সর্বোচ্চ
স্মৃতি

এটা আমার পক্ষে কাজ করছে না আমার ধারণা অনুমানের কারণটি হল যে
সাজানোতে

আপনার মানে আপনি প্রক্রিয়াটির সঠিক নাম পাচ্ছেন না ??
রাহানন

হ্যাঁ, বিচুস পিএস ইনডেন্ট স্টাফগুলিতে স্পেস যুক্ত করে। যখন একটি প্রক্রিয়াতে 2 ডিজিটের ব্যবহার থাকে তখন একটি ডিজিটের ব্যবহারের মানগুলি ইন্টেন্ট করা হবে এবং শীর্ষস্থানীয় স্থানের সাথে শুরু হবে। আমার মনে হয় এর মতো কিছু যুক্ত করা sed -e 's/^[[:space:]]*//'উচিত এটি ঠিক করা উচিত। এছাড়াও আপনার স্ক্রিপ্ট একই কমান্ড সহ প্রক্রিয়াগুলির মেমরির ব্যবহার যুক্ত করে?
কর্ডা

0

উপরের দিক থেকে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন:

Press SHIFT+f
Press the Letter corresponding to %MEM
Press ENTER

আপনিও চেষ্টা করতে পারেন:

ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5

এই কমান্ডটি মেমোরি ব্যবহারের মাধ্যমে শীর্ষ 5 প্রক্রিয়া দেবে।

আমি আশা করি আপনি এই তথ্য সহায়ক বলে মনে করি!


0

এটি শর্তাবলীর সাহায্যে সরল করা যায়

ps -C chromium-browser -o pmem | termsql -1 "SELECT SUM([%MEM]) FROM tbl"

দ্রষ্টব্য, বর্তমানে এটি পিপিআইতে আপলোড করা হয়নি এবং এটির মতো কেবল সিস্টেম-ব্যাপী ইনস্টল করা যেতে পারে ( setup.pyকিছুটা ভাঙ্গা) sudo pip install https://github.com/tobimensch/termsql/archive/master.zip

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