সিপিইউ ব্যবহারের রিয়েলটাইম পাচ্ছেন


11

আমি যখন সিপিইউ ব্যবহারের জন্য নিম্নলিখিত কমান্ডটি কার্যকর করি তখন আমি ভাল + ব্যবহারকারী সিপিইউ ব্যবহার পাই।

top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}' 

আউটপুট:

14.5

এখানে আমার সমস্যা হচ্ছে যে আউটপুটটি শীর্ষ কমান্ডের উপর নির্ভর করে সুতরাং এটি শীর্ষ কমান্ড হিসাবে তাত্ক্ষণিকভাবে পরিবর্তন হয় না। তাই আমি তাত্ক্ষণিকভাবে সঠিক সিপিইউ পাচ্ছি না। এটি একই আউটপুট দেয় এবং পরিবর্তন করে না।

আমি আউটপুটে রিয়েল-টাইম সিপিইউ ব্যবহার করতে চাই। আমার আদেশটি উন্নত করতে দয়া করে আমাকে সহায়তা করুন।


রিয়েল টাইম মনিটরিং Askubuntu.com
কাসিম

এই সরল বাশ স্ক্রিপ্টটি কেবল এটি করে: Askubuntu.com/a/450136/243213
ক্রেগ ভ্যান

উত্তর:


20

আপনি যদি এক সেকেন্ডের বিলম্ব বহন করতে পারেন তবে এটি সিপিইউ ব্যবহারকে সাধারণ শতাংশ হিসাবে মুদ্রণ করবে:

echo $[100-$(vmstat 1 2|tail -1|awk '{print $15}')]

(এক-দ্বিতীয় বিলম্ব ব্যতীত vmstatবুট হওয়ার পরে কেবল গড় মানগুলি মুদ্রণ করতে পারে))


আমাকে একটি সঠিক% দেয় না (এর সাথে htop তুলনা)
Lepe

1
আপনাকে এটির vmstat 1 2মতো ব্যবহার করতে হবে : echo $[100-$(vmstat 1 2|tail -1|awk '{print $15}')] অন্যথায় আপনার বুট থেকেvmstat মান দেওয়া যাচ্ছে যা সম্ভবত আপনার পরে নয়।
জো

জো আপনাকে ধন্যবাদ এটি কাজ করে। দয়া করে পল, উত্তরটি সম্পাদনা করুন যাতে প্রত্যেকে সঠিক কমান্ড লাইনটি দেখতে পায়
পাভলোস থিওডোরো

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

9

এটি একটি জ্ঞাত সমস্যা topএখানে বর্ণিত হিসাবে , 1 ম পুনরাবৃত্তি top -bবুট হওয়ার পর থেকে শতাংশগুলি প্রদান করে, সুতরাং -n 2আমাদের বর্তমান শতাংশ পেতে কমপক্ষে দুটি পুনরাবৃত্তি ( ) প্রয়োজন। জিনিসগুলি গতি বাড়ানোর জন্য, আপনি dপুনরাবৃত্তির মধ্যে elay সেট করতে পারেন 0.01topব্যবহারকারী, সিস্টেম প্রক্রিয়া এবং niceপ্রক্রিয়াগুলির মধ্যে সিপিইউ ব্যবহারকে বিভক্ত করে, আমরা তিনটির যোগফল চাই। অবশেষে, আপনি grepসিপিইউ শতাংশযুক্ত লাইন এবং তারপরে gawkব্যবহারকারী, সিস্টেম এবং দুর্দান্ত প্রক্রিয়াগুলির যোগফল ব্যবহার করুন :

    top -bn 2 -d 0.01 | grep '^%Cpu' | tail -n 1 | gawk '{print $2+$4+$6}'
        -----  ------   -----------    ---------   ----------------------
          |      |           |             |             |------> add the values
          |      |           |             |--> keep only the 2nd iteration
          |      |           |----------------> keep only the CPU use lines
          |      |----------------------------> set the delay between runs
          |-----------------------------------> run twice in batch mode

সর, এমপিস্ট্যাট ... ইত্যাদি সহ অন্যান্য প্রতিটি পদ্ধতিতে 2/3% প্রদর্শিত হয় যদিও এই আদেশটি সর্বদা 50% প্রদর্শন করে।
সিএমসিডিগ্রাগনকাই

@ সিএমসিডিআরগনকাই নাম্বারগুলি পরিবর্তন হওয়া উচিত (আমি কেবল এটি যাচাই করেছিলাম) আপনি কি নিশ্চিত যে এটিকে সঠিকভাবে অনুলিপি / পেস্ট করেছেন? এছাড়াও, নোট করুন যে একাধিক সিপিইউযুক্ত সিস্টেমগুলিতে, একক সিপিইউর topশতাংশ হিসাবে% ব্যবহারের রিপোর্ট করবে এর অর্থ আপনি প্রায়শই অনেক বেশি শতাংশ পাবেন। এখানে 9 পয়েন্ট দেখুন ।
টেরডন

আমি মনে করি এই আদেশটি আমার সিস্টেমের সাথে সামঞ্জস্যপূর্ণ নয়। তবে এটি স্পষ্ট যে অন্যান্য যে সমস্ত পদ্ধতিগুলি আমি চেষ্টা করেছি তা আমার 1/2/3% শতাংশ পায় যা আমি হটপ চালাচ্ছি কিনা তা দেখতে পারা যায়, যদিও এই আদেশটি আমাকে একটি অসঙ্গতি দেয়।
সিএমসিডিগ্রাগনকাই

@CMCDragonkai এটি একাধিক সিপিইউগুলির কারণে। আপনি হয় এটির মাধ্যমে ফিরে আসা নম্বরটি পেতে পারেন এবং কোর সংখ্যায় বিভক্ত করতে পারেন বা আপনি topইন্টারেক্টিভ মোডে (কেবল চালানো top) এবং একবার সেখানে গেলে, I(শিফট + i) টিপে কোর দ্বারা বিচ্ছিন্নতা দেখতে ব্যবহার করতে পারেন।
তেরডন

আমার কাছে মাত্র 1 সিপিইউ আছে।
সিএমসিডিগ্রাগনকাই

7

আমি বেশ কয়েকটি উপায়ে চেষ্টা করেছি, তবে এটি আমার কাছে সবচেয়ে সঠিক বলে মনে হচ্ছে:

cat <(grep 'cpu ' /proc/stat) <(sleep 1 && grep 'cpu ' /proc/stat) | awk -v RS="" '{print ($13-$2+$15-$4)*100/($13-$2+$15-$4+$16-$5)}'

এখান থেকে পেয়েছি


আমার লিনাক্স (লিনাক্স মেশিন_নাম 4.4.0-127-জেনেরিক # 153-উবুন্টু এসএমপি শনিবার মে 19 10:58:46 ইউটিসি 2018 x86_64 x86_64 x86_64 জিএনইউ / লিনাক্স) কলাম $ 15 (/ proc / স্টেট ফাইলের সিপিইউ লাইন) নেই : সিপু 17411187 27478 594887 646652526 585551 0 31838 0 0 0
কেমিন ঝো

1
সেরা উত্তর! ধন্যবাদ! আমার প্রকরণ: বিড়াল <(গ্রেপ 'সিপিইউ' / প্রোক / স্ট্যাট) <(ঘুম 0.1 && গ্রেপ 'সিপিইউ' / প্রো / স্ট্যাট) | awk -v আরএস = "" '{প্রিন্টফ "% .1f", ($ 13- $ 2 + $ 15- $ 4) * 100 / ($ 13- $ 2 + $ 15- $ 4 + $ 16- $ 5)
ম্যাক্সপ

ম্যাক্স পার্থক্যটি হ'ল এটির মুদ্রণটি একটি একক দশমিকের সাথে গোলাকার: %.1fযা আমার মতে আপনি যদি অন্য স্ক্রিপ্টগুলিতে সেই আউটপুটটি ব্যবহার করেন তবে এটি মানুষের পাঠযোগ্য এবং দরকারী useful
Lepe

0

ব্যবহার -n2। এটি দুটি লাইন আউটপুট দেবে। প্রথমবারের মতো topলাইনটি প্রিন্ট করে যে সময়টিতে সেই সময়ে রাষ্ট্রের জন্য যোগ্যতা অর্জন করে না। তারপরে প্রথম লাইনটি উপেক্ষা করতে আপনার স্ক্রিপ্টটি সামঞ্জস্য করুন।

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