'\" t .\" Title: perf-daemon .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 09/04/2026 .\" Manual: perf Manual .\" Source: perf .\" Language: Persian .\" .TH "PERF\-DAEMON" "1" "09/04/2026" "perf" "perf Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" perf-daemon \- اجرای نشست‌های ضبط در پس‌زمینه .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIperf daemon\fR \fIperf daemon\fR [] \fIperf daemon start\fR [] \fIperf daemon stop\fR [] \fIperf daemon signal\fR [] \fIperf daemon ping\fR [] .fi .SH "توضیحات (DESCRIPTION)" .sp این دستور امکان اجرای یک پردازه دیمن (daemon) ساده را فراهم می‌کند که نشست‌های ضبط (record) پیکربندی‌شده را آغاز کرده و بر آن‌ها نظارت می‌کند\&. .sp می‌توانید \fIperf daemon\fR را به عنوان پردازه‌ای در پس‌زمینه با چندین وظیفه فرزند \fIperf record\fR تصور کنید، مانند: .sp .if n \{\ .RS 4 .\} .nf # ps axjf \&.\&.\&. 1 916507 \&.\&.\&. perf daemon start 916507 916508 \&.\&.\&. \e_ perf record \-\-control=fifo:control,ack \-m 10M \-e cycles \-\-overwrite \-\-switch\-output \-a 916507 916509 \&.\&.\&. \e_ perf record \-\-control=fifo:control,ack \-m 20M \-e sched:* \-\-overwrite \-\-switch\-output \-a .fi .if n \{\ .RE .\} .sp هر نشست \fIperf record\fR برای اجرا تحت دیمن مناسب نیست\&. کاربر به نشستی از perf نیاز دارد که یا بر اساس درخواست داده تولید کند، مانند نشست‌های جعبه‌سیاه (flight recorder) در مثال بالا، یا نشستی که برای تولید دوره‌ای داده‌ها پیکربندی شده باشد، مانند استفاده از پیکربندی \-\-switch\-output برای زمان و اندازه\&. .sp هر نشست با راه‌اندازی کنترلی (با گزینه‌های perf record \-\-control) آغاز می‌شود\&. .sp نشست‌ها از طریق فایل پیکربندی تنظیم می‌شوند؛ بخش «فایل پیکربندی (CONFIG FILE)» را به همراه مثال‌ها ببینید\&. .SH "گزینه‌ها (OPTIONS)" .PP \-v, \-\-verbose .RS 4 نمایش خروجی با جزئیات بیشتر\&. .RE .PP \-\-config= .RS 4 مسیر فایل پیکربندی\&. در صورت مشخص نشدن، perf مسیرهای پیش‌فرض و سیستمی (/etc/perfconfig و $HOME/\&.perfconfig) را بررسی خواهد کرد\&. .RE .PP \-\-base= .RS 4 مسیر دایرکتوری پایه (base)\&. هر نمونه از دیمن بر روی یک دایرکتوری پایه اجرا می‌شود\&. در هر زمان تنها یک نمونه از کارساز (server) می‌تواند بر روی یک دایرکتوری اجرا شود\&. .RE .sp تمام گزینه‌های عمومی در زیردستورها نیز در دسترس هستند\&. .SH "دستور START (START COMMAND)" .sp دستور start پردازه دیمن را ایجاد می‌کند\&. .PP \-f, \-\-foreground .RS 4 پردازه را به پس‌زمینه منتقل نکن\&. .RE .SH "دستور STOP (STOP COMMAND)" .sp دستور stop تمام نشست‌ها و پردازه دیمن را متوقف می‌کند\&. .SH "دستور SIGNAL (SIGNAL COMMAND)" .sp دستور signal سیگنالی را به نشست‌های پیکربندی‌شده ارسال می‌کند\&. .PP \-\-session .RS 4 ارسال سیگنال به یک نشست خاص\&. .RE .SH "دستور PING (PING COMMAND)" .sp دستور ping یک پینگ کنترلی به نشست‌های پیکربندی‌شده ارسال می‌کند\&. .PP \-\-session .RS 4 ارسال پینگ به یک نشست خاص\&. .RE .SH "فایل پیکربندی (CONFIG FILE)" .sp دیمن در فایل پیکربندی استاندارد perf با استفاده از متغیرهای جدید زیر پیکربندی می‌شود: .sp daemon\&.base: مسیر پایه برای داده‌های دیمن\&. داده‌های تمام نشست‌ها در زیر این مسیر ذخیره می‌شوند\&. .sp session\-\&.run: یک نشست ضبط جدید تعریف می‌کند\&. مقدار آن، خط فرمان record بدون کلمه کلیدی \fIrecord\fR است\&. .sp هر نشست perf record در دایرکتوری daemon\&.base/ اجرا می‌شود\&. .SH "مثال‌ها (EXAMPLES)" .sp مثال با ۲ نشست record: .sp .if n \{\ .RS 4 .\} .nf # cat ~/\&.perfconfig [daemon] base=/opt/perfdata .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf [session\-cycles] run = \-m 10M \-e cycles \-\-overwrite \-\-switch\-output \-a .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf [session\-sched] run = \-m 20M \-e sched:* \-\-overwrite \-\-switch\-output \-a .fi .if n \{\ .RE .\} .sp راه‌اندازی دیمن: .sp .if n \{\ .RS 4 .\} .nf # perf daemon start .fi .if n \{\ .RE .\} .sp بررسی نشست‌ها: .sp .if n \{\ .RS 4 .\} .nf # 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 .fi .if n \{\ .RE .\} .sp خط اول اطلاعات پردازه دیمن به همراه دایرکتوری پایه پیکربندی‌شده آن است\&. .sp بررسی نشست‌ها با اطلاعات بیشتر: .sp .if n \{\ .RS 4 .\} .nf # 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 .fi .if n \{\ .RE .\} .sp مسیر \fIbase\fR مسیر پایه دیمن/نشست است\&. فایل \fIlock\fR فایل قفل دیمن است که تضمین می‌کند هیچ دیمن دیگری بر روی این مسیر پایه اجرا نمی‌شود\&. فایل \fIoutput\fR خروجی perf record برای آن نشست خاص است\&. فایل‌های \fIcontrol\fR و \fIack\fR فایل‌های کنترلی perf هستند\&. عدد \fIup\fR تعداد دقایقی را نشان می‌دهد که دیمن/نشست در حال اجرا بوده است\&. .sp اطمینان از فعال بودن نشست کنترلی: .sp .if n \{\ .RS 4 .\} .nf # perf daemon ping OK cycles OK sched .fi .if n \{\ .RE .\} .sp ارسال سیگنال USR2 به نشست \fIcycles\fR برای تولید فایل perf\&.data: .sp .if n \{\ .RS 4 .\} .nf # perf daemon signal \-\-session cycles signal 12 sent to session \*(Aqcycles [603452]\*(Aq .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf # tail \-2 /opt/perfdata/session\-cycles/output [ perf record: dump data: Woken up 1 times ] [ perf record: Dump perf\&.data\&.2020123017013149 ] .fi .if n \{\ .RE .\} .sp ارسال سیگنال USR2 به همه نشست‌ها: .sp .if n \{\ .RS 4 .\} .nf # perf daemon signal signal 12 sent to session \*(Aqcycles [603452]\*(Aq signal 12 sent to session \*(Aqsched [603453]\*(Aq .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf # 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 ] .fi .if n \{\ .RE .\} .sp توقف دیمن: .sp .if n \{\ .RS 4 .\} .nf # perf daemon stop .fi .if n \{\ .RE .\} .SH "همچنین ببینید (SEE ALSO)" .sp \fBperf-record\fR(1), \fBperf-config\fR(1)