PERF-DAEMON(1) perf Manual PERF-DAEMON(1)

perf-daemon - اجرای نشست‌های ضبط در پس‌زمینه

perf daemon
perf daemon [<options>]
perf daemon start  [<options>]
perf daemon stop   [<options>]
perf daemon signal [<options>]
perf daemon ping   [<options>]

این دستور امکان اجرای یک پردازه دیمن (daemon) ساده را فراهم می‌کند که نشست‌های ضبط (record) پیکربندی‌شده را آغاز کرده و بر آن‌ها نظارت می‌کند.

می‌توانید perf daemon را به عنوان پردازه‌ای در پس‌زمینه با چندین وظیفه فرزند perf record تصور کنید، مانند:

# ps axjf
...
     1  916507 ... perf daemon start
916507  916508 ...  \_ perf record --control=fifo:control,ack -m 10M -e cycles --overwrite --switch-output -a
916507  916509 ...  \_ perf record --control=fifo:control,ack -m 20M -e sched:* --overwrite --switch-output -a

هر نشست perf record برای اجرا تحت دیمن مناسب نیست. کاربر به نشستی از perf نیاز دارد که یا بر اساس درخواست داده تولید کند، مانند نشست‌های جعبه‌سیاه (flight recorder) در مثال بالا، یا نشستی که برای تولید دوره‌ای داده‌ها پیکربندی شده باشد، مانند استفاده از پیکربندی --switch-output برای زمان و اندازه.

هر نشست با راه‌اندازی کنترلی (با گزینه‌های perf record --control) آغاز می‌شود.

نشست‌ها از طریق فایل پیکربندی تنظیم می‌شوند؛ بخش «فایل پیکربندی (CONFIG FILE)» را به همراه مثال‌ها ببینید.

-v, --verbose

نمایش خروجی با جزئیات بیشتر.

--config=<PATH>

مسیر فایل پیکربندی. در صورت مشخص نشدن، perf مسیرهای پیش‌فرض و سیستمی (/etc/perfconfig و $HOME/.perfconfig) را بررسی خواهد کرد.

--base=<PATH>

مسیر دایرکتوری پایه (base). هر نمونه از دیمن بر روی یک دایرکتوری پایه اجرا می‌شود. در هر زمان تنها یک نمونه از کارساز (server) می‌تواند بر روی یک دایرکتوری اجرا شود.

تمام گزینه‌های عمومی در زیردستورها نیز در دسترس هستند.

دستور start پردازه دیمن را ایجاد می‌کند.

-f, --foreground

پردازه را به پس‌زمینه منتقل نکن.

دستور stop تمام نشست‌ها و پردازه دیمن را متوقف می‌کند.

دستور signal سیگنالی را به نشست‌های پیکربندی‌شده ارسال می‌کند.

--session

ارسال سیگنال به یک نشست خاص.

دستور ping یک پینگ کنترلی به نشست‌های پیکربندی‌شده ارسال می‌کند.

--session

ارسال پینگ به یک نشست خاص.

دیمن در فایل پیکربندی استاندارد perf با استفاده از متغیرهای جدید زیر پیکربندی می‌شود:

daemon.base: مسیر پایه برای داده‌های دیمن. داده‌های تمام نشست‌ها در زیر این مسیر ذخیره می‌شوند.

session-<NAME>.run: یک نشست ضبط جدید تعریف می‌کند. مقدار آن، خط فرمان record بدون کلمه کلیدی record است.

هر نشست perf record در دایرکتوری daemon.base/<NAME> اجرا می‌شود.

مثال با ۲ نشست record:

# cat ~/.perfconfig
[daemon]
base=/opt/perfdata
[session-cycles]
run = -m 10M -e cycles --overwrite --switch-output -a
[session-sched]
run = -m 20M -e sched:* --overwrite --switch-output -a

راه‌اندازی دیمن:

# perf daemon start

بررسی نشست‌ها:

# perf daemon
[603349:daemon] base: /opt/perfdata
[603350:cycles] perf record -m 10M -e cycles --overwrite --switch-output -a
[603351:sched] perf record -m 20M -e sched:* --overwrite --switch-output -a

خط اول اطلاعات پردازه دیمن به همراه دایرکتوری پایه پیکربندی‌شده آن است.

بررسی نشست‌ها با اطلاعات بیشتر:

# perf daemon -v
[603349:daemon] base: /opt/perfdata
  output:  /opt/perfdata/output
  lock:    /opt/perfdata/lock
  up:      1 minutes
[603350:cycles] perf record -m 10M -e cycles --overwrite --switch-output -a
  base:    /opt/perfdata/session-cycles
  output:  /opt/perfdata/session-cycles/output
  control: /opt/perfdata/session-cycles/control
  ack:     /opt/perfdata/session-cycles/ack
  up:      1 minutes
[603351:sched] perf record -m 20M -e sched:* --overwrite --switch-output -a
  base:    /opt/perfdata/session-sched
  output:  /opt/perfdata/session-sched/output
  control: /opt/perfdata/session-sched/control
  ack:     /opt/perfdata/session-sched/ack
  up:      1 minutes

مسیر base مسیر پایه دیمن/نشست است. فایل lock فایل قفل دیمن است که تضمین می‌کند هیچ دیمن دیگری بر روی این مسیر پایه اجرا نمی‌شود. فایل output خروجی perf record برای آن نشست خاص است. فایل‌های control و ack فایل‌های کنترلی perf هستند. عدد up تعداد دقایقی را نشان می‌دهد که دیمن/نشست در حال اجرا بوده است.

اطمینان از فعال بودن نشست کنترلی:

# perf daemon ping
OK   cycles
OK   sched

ارسال سیگنال USR2 به نشست cycles برای تولید فایل perf.data:

# perf daemon signal --session cycles
signal 12 sent to session 'cycles [603452]'
# tail -2  /opt/perfdata/session-cycles/output
[ perf record: dump data: Woken up 1 times ]
[ perf record: Dump perf.data.2020123017013149 ]

ارسال سیگنال USR2 به همه نشست‌ها:

# perf daemon signal
signal 12 sent to session 'cycles [603452]'
signal 12 sent to session 'sched [603453]'
# tail -2  /opt/perfdata/session-cycles/output
[ perf record: dump data: Woken up 1 times ]
[ perf record: Dump perf.data.2020123017024689 ]
# tail -2  /opt/perfdata/session-sched/output
[ perf record: dump data: Woken up 1 times ]
[ perf record: Dump perf.data.2020123017024713 ]

توقف دیمن:

# perf daemon stop

perf-record(1), perf-config(1)

09/04/2026 perf