লিনাক্সে রিবুট হওয়ার পর থেকে জিফির বর্তমান সংখ্যা কীভাবে পাবেন?


6

লিনাক্সের /proc/PID/statকয়েকটি মেট্রিকের তালিকা রয়েছে যা জিফিতে পরিমাপ করা হয়। রিবুট হওয়ার পর থেকে জিফির বর্তমান # পাওয়ার কী উপায় আছে ? জিফিজ আমি USER_HZ মানের থেকে কয়েক সেকেন্ডও ধরে নিয়েছি।

আমি cpuলাইনে প্রথম 4 টি যুক্তি সংক্ষিপ্ত করে এটি পেতে পারি /proc/stat?


আপডেট :

$ date +"%s.%N" && grep '^jiffies' timer_list
1262103103.162169230
jiffies: 1007865965
jiffies: 1007865965
jiffies: 1007865965
jiffies: 1007865965
$ date +"%s.%N" && grep '^jiffies' timer_list
1262103108.706475051
jiffies: 1007867351
jiffies: 1007867351
jiffies: 1007867351
jiffies: 1007867351

এগুলির মধ্যে ব-দ্বীপটি প্রায় 250 টি জিফি / সেকেন্ড। প্রদর্শিত হবে যদিও সিপিইউতে সমস্ত জিফি রেখাগুলি সমতুল্য (যদিও আমি অনুমান করি যে তারা যদি গরম | অনেমান্ড সিপিইউ সরবরাহ করা / প্রতিস্থাপন করা হত তবে তা নাও হতে পারে)। আমি মনে করি এটি একটি সুসংগত জিফিজ কাউন্টারে টানতে আমার সেরা স্থান দেয়।

উত্তর:


4

কম্পিউটার পার্লেন্সে টেকনিক্যালি জিফ্ফাই হ'ল সিস্টেম টাইমার বিঘ্নিত হওয়ার 1 টিকের সময়কাল। যদিও এটি নিখুঁত নয়। লিনাক্স 2.6.13+ এর জন্য ইন্টেল x86 জিফ্ফিতে 4 মিমি, তবে আর্কিটেকচার এবং কার্নেল সংস্করণের উপর নির্ভর করে 1 মিমি থেকে 10 মিমি পর্যন্ত হতে পারে।

থেকে কার্নেল টাইমার সিস্টেম পৃষ্ঠা:

.তিহাসিকভাবে, কার্নেলটি এইচজেডের মান হিসাবে 100 ব্যবহার করেছে, এটি 10 ​​এমএসের একটি মাপের ব্যবধান দেয়। ২.৪ দিয়ে, আই 386-র জন্য এইচজেড মানটি 1000 তে পরিবর্তিত হয়েছিল, 1 এমএসের মাপের ব্যবধানকে ছাঁটাই করে। সম্প্রতি (২.6.১৩) কার্নেলটি এইচজেডকে আই 386-তে 250-এ পরিবর্তন করেছে 1000

এটি তালিকা /proc/timer_listএবং /proc/timer_stats

বুট করার সময় আপনি টাইমার_স্ট্যাটগুলি সক্রিয় করতে পারেন, তারপরে পরিসংখ্যান মুদ্রণের জন্য এই ফাইলটিকে বিড়াল করুন।


একজন কীভাবে টাইমার_স্ট্যাটগুলি সক্রিয় করে? ঠিক আছে, যতক্ষণ না বিভিন্ন /proc/PID/statফাইল কোনও মেট্রিকের প্রতিবেদন করে যতক্ষণ না আপেক্ষিক% s গণনা করতে পারি তার মোট পরিমাণের সমান হিসাবে এই ক্ষেত্রে 'জিফিজ' একটি স্বেচ্ছাসেবী বৃদ্ধি । ঠিক আছে, সুতরাং একটি "জিফিজ" লাইন আছে /proc/timer_list, আমি আসল পোস্টটি আপডেট করব।
Jé ক্যু

1
"প্রতিধ্বনি 1> / proc / টাইমার_স্ট্যাটস" এর পরিসংখ্যান সংগ্রহ শুরু করতে, যা আপনি আপনার চক্রের শুরুতে রাখতে পারেন।
ড্যারেন হল

2

না, আপনার কেবল প্রথম লাইনের প্রয়োজন। প্রথম লাইনটি অন্য সিপিইউ লাইনের সমস্ত কিছুকে একত্রিত করে।

উদাহরণ আউটপুট:

[জন @ অসাধারণ] $ বিড়াল / প্রকোপ / স্ট্যাটাস
সিপিউ 35024984 1771325 94153391 1810948613 2648063 352387 557232
সিপিইউ 13955475 927654 59431476 895791946 1910028 318618 438048
সিপিইউ 21069509 843671 34721915 915156667 738035 33769 119184
আন্ত 1403502159 1138402452 597 0 3 3 0 5 0 1 0 0 12315 0 92119425 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57676632 0 0 0 0 0 0 115290726 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 21043582666
বিটাইম 1252332786
প্রক্রিয়াগুলি 25663823
প্রোকস_রানিং ১
প্রোস_ব্লকড 0

প্রতিটি কলামের অর্থ (বাম থেকে ডান):

  • ব্যবহারকারী: ব্যবহারকারী মোডে কার্যকর প্রক্রিয়াগুলি
  • দুর্দান্ত: ব্যবহারকারী মোডে নিস করা প্রক্রিয়াগুলি
  • সিস্টেম: কার্নেল মোডে সঞ্চালিত প্রক্রিয়াগুলি
  • অলস: অলস সময়
  • iowait: I / O সম্পূর্ণ হওয়ার অপেক্ষায়
  • irq: সার্ভিসিং বাধা rup
  • softirq: সফ্টিমার্ক সার্ভিসিং

যেমন আপনি দেখতে পাচ্ছেন, সিপিইউর পরে প্রথম কলামটি (ব্যবহারকারী মোড প্রক্রিয়াগুলি) এর সাথে একত্রে যুক্ত হওয়া নীচের 2 সংখ্যার সমান।


এটি কি কেবল সিপিইউ নির্ধারিত সময়ের জন্য নয়? অন্যরা কি সুন্দর, সিস্টেম এবং অলস?
Jue Queue

প্রতিটি কলামের অর্থ যুক্ত হয়েছে।
জন টি

ঠিক আছে, তবে শুরু থেকে মোট # জিফির সন্ধান করার জন্য, কেউ কি এমন কিছু করবে না awk '/^cpu/{print $2+$3+$4+$5}' /proc/stat?
Jue Queue

আপনি কেবল ব্যবহারকারী, চমৎকার, সিস্টেম এবং অলস চান? আপনি করতে পারেনawk '/^cpu\>/{print $2+$3+$4+$5}' /proc/stat
জন টি

প্রদর্শিত হয় যেন কোনও প্রদত্ত সময় ব-দ্বীপ জুড়ে কোনও যোগফলের সাথে সামঞ্জস্য নয় /proc/stat!
Jé ক্যু

1

জিফিজ প্রতি সেকেন্ড:

awk 'BEGIN {"cat /proc/timer_list | grep '\''^jiffies'\'' | awk '\''{print $2}'\''" | getline a; "cat /proc/uptime | awk '\''{print $1}'\''" | getline b ;printf "%.4f\n", a/b}'

ব্যাখ্যা: এটি / জিপি / আপটাইম বুট পাওয়া সেকেন্ডের পরে / প্রোম / টাইমার_লিস্টে বুট পাওয়া থেকে জিফিকে বিভক্ত করে


আমি এটি পেয়েছি 75409.1301যা সাধারণ ক্ষেত্রে স্থিতিশীল বলে মনে হয় না। uname -aরিপোর্ট Linux semyol-329-b 3.19.0-33-lowlatency #38~14.04.1-Ubuntu SMP PREEMPT Fri Nov 6 19:30:45 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
মিক্কো রেন্টালাইনেন

1

পরে লিনাক্স কার্নেলগুলিতে আপনি /proc/timer_listসিস্টেমের মধ্যে উপস্থিত প্রতিটি সিপিইউ থেকে রিবুট করার পরে জিফির সংখ্যা জানতে এবং খুঁজে পেতে পারেন । তাদের সবসময় ম্যাচ করা উচিত।

$ grep -E "^cpu|^jiff" /proc/timer_list
cpu: 0
jiffies: 4299690231
cpu: 1
jiffies: 4299690231

আপনি যদি timer_list.cউপরেরটি মুদ্রিত বিটের পিছনে কোডটি একবার দেখে থাকেন :

...
...
        P_ns(iowait_sleeptime);
        P(last_jiffies);
        P(next_timer);
        P_ns(idle_expires);
        SEQ_printf(m, "jiffies: %Lu\n",
               (unsigned long long)jiffies);

লক্ষ্য করুন যে এটি unsigned long long

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