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


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.