proc_timer_stats(5) File Formats Manual proc_timer_stats(5)

/proc/timer_stats - آمار زمان‌سنج‌ها

/proc/timer_stats (از لینوکس 2.6.21 تا لینوکس 4.10)
این یک قابلیت اشکال‌زدایی است تا استفاده (یا سوءاستفاده) از زمان‌سنج‌ها در یک سیستم لینوکس را برای توسعه‌دهندگان هسته و فضای کاربری آشکار سازد. این قابلیت می‌تواند توسط توسعه‌دهندگان هسته و فضای کاربری برای اطمینان از اینکه کد آنها استفاده بی‌مورد از زمان‌سنج‌ها نمی‌کند، به کار رود. هدف، جلوگیری از بیدارباش‌های غیرضروری و در نتیجه بهینه‌سازی مصرف انرژی است.
در صورت فعال بودن در هسته (CONFIG_TIMER_STATS)، اما بدون استفاده بودن، سربار زمان اجرای آن تقریباً صفر بوده و سربار ساختار داده نسبتاً اندکی دارد. حتی در صورت فعال بودن جمع‌آوری داده‌ها در زمان اجرا، سربار اندک است: تمام قفل‌گذاری‌ها به ازای هر پردازنده (per-CPU) انجام می‌شود و جست‌وجو به‌صورت درهم‌سازی (هش) است.
فایل /proc/timer_stats هم برای کنترل قابلیت نمونه‌برداری و هم برای خواندن اطلاعات نمونه‌برداری‌شده استفاده می‌شود.
قابلیت timer_stats هنگام راه‌اندازی سیستم غیرفعال است. یک دوره نمونه‌برداری را می‌توان با استفاده از دستور زیر آغاز کرد:

# echo 1 > /proc/timer_stats

دستور زیر یک دوره نمونه‌برداری را متوقف می‌کند:

# echo 0 > /proc/timer_stats

آمارها را می‌توان با دستور زیر دریافت کرد:

$ cat /proc/timer_stats

تا زمانی که نمونه‌برداری فعال است، هر بار خواندن از /proc/timer_stats آمارهای تازه به‌روزرسانی‌شده را نشان خواهد داد. به محض غیرفعال شدن نمونه‌برداری، اطلاعات نمونه‌برداری‌شده تا زمان آغاز یک دوره نمونه‌برداری جدید نگهداری می‌شود. این امر امکان چندین بار خواندن را فراهم می‌سازد.
نمونه خروجی از /proc/timer_stats:

$ cat /proc/timer_stats
Timer Stats Version: v0.3
Sample period: 1.764 s
Collection: active
  255,     0 swapper/3        hrtimer_start_range_ns (tick_sched_timer)
   71,     0 swapper/1        hrtimer_start_range_ns (tick_sched_timer)
   58,     0 swapper/0        hrtimer_start_range_ns (tick_sched_timer)
    4,  1694 gnome-shell      mod_delayed_work_on (delayed_work_timer_fn)
   17,     7 rcu_sched        rcu_gp_kthread (process_timeout)
...
    1,  4911 kworker/u16:0    mod_delayed_work_on (delayed_work_timer_fn)
   1D,  2522 kworker/0:0      queue_delayed_work_on (delayed_work_timer_fn)
1029 total events, 583.333 events/sec

ستون‌های خروجی عبارتند از:
[1]
تعداد رویدادها، که به‌صورت اختیاری (از لینوکس 2.6.23) با حرف 'D' دنبال می‌شود اگر این یک زمان‌سنج قابل تعویق (deferrable) باشد؛
[2]
شناسه فرایند (PID) فرایندی که زمان‌سنج را مقداردهی اولیه کرده است؛
[3]
نام فرایندی که زمان‌سنج را مقداردهی اولیه کرده است؛
[4]
تابعی که زمان‌سنج در آن مقداردهی اولیه شده است؛ و (درون پرانتز) تابع بازخوانی (callback) که با زمان‌سنج مرتبط است.
در طول چرخه توسعه لینوکس 4.11، این فایل به دلیل نگرانی‌های امنیتی حذف شد، زیرا اطلاعات را در سراسر فضاهای نام افشا می‌کرد. علاوه بر این، امکان دستیابی به اطلاعات مشابه از طریق امکانات ردیابی درون‌هسته‌ای مانند ftrace وجود دارد.

proc(5)

2026-02-08 Linux man-pages 6.19