আমি কীভাবে শেল থেকে শীর্ষের মতো সিপিইউ পরিসংখ্যান পেতে পারি?


12

আমি আমার ব্যবহৃত সিপিইউ (শতাংশে) থেকে সঠিকভাবে পড়ার চেষ্টা করছি top। এই পরীক্ষার জন্য আমি যে আদেশটি চালাচ্ছি:

top -n1 | awk '/Cpu\(s\):/ {print $2}'

এটি ফিরে আসে:

10.7%us,

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

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

আমি চেষ্টা করেছি iostatএবং mpstatতারা বেঠিক এবং "পরিবর্তনের ধীর" মান দিতে বলে মনে হচ্ছে।


2
না। জিজ্ঞাসা করার উপযুক্ত প্রশ্নটি: আমি শেল থেকে শীর্ষের মতো সিপিইউ ব্যবহারের পরিসংখ্যান কীভাবে পাব?
স্টাফেন গিমেনেজ

উত্তর:


12

আমি এই স্ক্রিপ্টটি ব্যবহার করব ( আর্চ বোর্ডগুলির এই থ্রেড থেকে ):

#!/bin/bash
read cpu a b c previdle rest < /proc/stat
prevtotal=$((a+b+c+previdle))
sleep 0.5
read cpu a b c idle rest < /proc/stat
total=$((a+b+c+idle))
CPU=$((100*( (total-prevtotal) - (idle-previdle) ) / (total-prevtotal) ))

লিনাক্সের / প্রোকে / - তে কিছু দুর্দান্ত তথ্য রয়েছে সমস্ত গুডির জন্য লিনাক্স.ডিয়ে.net / ম্যান / 5 / প্রোপকে দেখুন । শুধু সাবধান যে এগুলি কেবল লিনাক্স। আপনি সিগারের মতো লাইব্রেরি ব্যবহার না করা হলে সেই তথ্যটি পাওয়ার কোনও সত্যিকারের কোনও ক্রস প্ল্যাটফর্ম নেই ।
প্যাট নটজ

ধারণাটি ভাল, তবে কিছু বিবরণ ভুল। নিষ্ক্রিয় মানটি 5 ম কলাম এবং যুক্তিসঙ্গত শতাংশ পাওয়ার জন্য আপনার আইওয়েট কলাম (6th ষ্ঠ কলাম) যুক্ত করা উচিত। সম্পূর্ণরূপে সঠিক হতে আপনাকে সমস্ত "বাকী" মানগুলিও যুক্ত করতে হবে তবে সেগুলি প্রায়শই খুব ছোট।
পিটার আইসেন্ট্রাট

নিষ্ক্রিয় মান হ'ল পঞ্চম কলাম, যদি আপনি "সিপিইউ" কলামটি গণনা করেন। অন্যথায়, এটি চতুর্থ।
সানস্পার্ক

6

স্যারও পরীক্ষা করে দেখুন । প্রয়োগগুলি নিক থেকে নিক্সে বিস্তৃতভাবে পরিবর্তিত হতে পারে তবে প্রদত্ত স্ন্যাপশটগুলিতে এটি আপনাকে বেসিক সিস্টেমের পরিসংখ্যানগুলি দেবে। আমি নিশ্চিত কিভাবে সঠিক মান বিন্দু যা AT কম্যান্ড প্রথম সক্রিয়া করা হয় এ নই, কিন্তু আপনি তা কিভাবে তুলনা দেখতে চারপাশে খেলা পারে top, iostatইত্যাদি

আউটপুটটি কলাম-ভিত্তিক, শীর্ষের মতো, যাতে আপনি ফলাফলগুলিতে পাইপ আউট awkবা পাইপ করতে সক্ষম হন cut


আমি sarমিশ্র ফলাফল দিয়ে আগে চেষ্টা করেছি । আমি এখানে @ জেসনওয়ারিয়ান এর উত্তরটি নিয়ে যাচ্ছি কারণ আমি আমার সিপিইউ উভয় কোরের সাথে ব্যবহার উপস্থাপনের জন্য এটি সহজেই সংশোধন করতে পারি।
n0pe

3

আপনি কি তাকিয়েছেন collectl? এটি সুবিধাজনক কারণ আপনি আপনার প্রয়োজন অনুসারে আউটপুটটি তৈরি করতে পারেন। দেখুন: http://collectl.sourceforge.net/


0

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

top -b -n 2 | grep Cpu | tail -1

আমি এটি লোডের জন্য আপটাইম এবং পিএস থেকে নির্বাচিত প্রক্রিয়াগুলির একটি গ্রেপ ফিল্টার, যেমন পোস্টগ্রিজ কোয়েরির সাথে যুক্ত করতে চাই like খুব সাধারণ মনিটরের সাথে ওরফে প্রকাশ করা যেতে পারে:

alias postgresmon="watch -d 'uptime;top -b -n 2 | grep Cpu | tail -1;ps -ef | grep postgres\: | grep -v idle'"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.