1d450bc50SJiri Olsaperf-daemon(1) 2d450bc50SJiri Olsa============== 3d450bc50SJiri Olsa 4d450bc50SJiri Olsa 5d450bc50SJiri OlsaNAME 6d450bc50SJiri Olsa---- 7d450bc50SJiri Olsaperf-daemon - Run record sessions on background 8d450bc50SJiri Olsa 9d450bc50SJiri Olsa 10d450bc50SJiri OlsaSYNOPSIS 11d450bc50SJiri Olsa-------- 12d450bc50SJiri Olsa[verse] 13d450bc50SJiri Olsa'perf daemon' 14d450bc50SJiri Olsa'perf daemon' [<options>] 15d450bc50SJiri Olsa'perf daemon start' [<options>] 1623c5831eSJiri Olsa'perf daemon stop' [<options>] 172d6914cdSJiri Olsa'perf daemon signal' [<options>] 18edcaa479SJiri Olsa'perf daemon ping' [<options>] 19d450bc50SJiri Olsa 20d450bc50SJiri Olsa 21d450bc50SJiri OlsaDESCRIPTION 22d450bc50SJiri Olsa----------- 23d450bc50SJiri OlsaThis command allows to run simple daemon process that starts and 24d450bc50SJiri Olsamonitors configured record sessions. 25d450bc50SJiri Olsa 26c0666261SJiri OlsaYou can imagine 'perf daemon' of background process with several 27c0666261SJiri Olsa'perf record' child tasks, like: 28c0666261SJiri Olsa 29c0666261SJiri Olsa # ps axjf 30c0666261SJiri Olsa ... 31c0666261SJiri Olsa 1 916507 ... perf daemon start 32c0666261SJiri Olsa 916507 916508 ... \_ perf record --control=fifo:control,ack -m 10M -e cycles --overwrite --switch-output -a 33c0666261SJiri Olsa 916507 916509 ... \_ perf record --control=fifo:control,ack -m 20M -e sched:* --overwrite --switch-output -a 34c0666261SJiri Olsa 35c0666261SJiri OlsaNot every 'perf record' session is suitable for running under daemon. 36c0666261SJiri OlsaUser need perf session that either produces data on query, like the 37c0666261SJiri Olsaflight recorder sessions in above example or session that is configured 38c0666261SJiri Olsato produce data periodically, like with --switch-output configuration 39c0666261SJiri Olsafor time and size. 40d450bc50SJiri Olsa 416a6d1804SJiri OlsaEach session is started with control setup (with perf record --control 426a6d1804SJiri Olsaoptions). 436a6d1804SJiri Olsa 4413fb3b9fSJiri OlsaSessions are configured through config file, see CONFIG FILE section 4513fb3b9fSJiri Olsawith EXAMPLES. 4613fb3b9fSJiri Olsa 4713fb3b9fSJiri Olsa 48d450bc50SJiri OlsaOPTIONS 49d450bc50SJiri Olsa------- 50d450bc50SJiri Olsa-v:: 51d450bc50SJiri Olsa--verbose:: 52d450bc50SJiri Olsa Be more verbose. 53d450bc50SJiri Olsa 54fc1dcb1eSJiri Olsa--config=<PATH>:: 55fc1dcb1eSJiri Olsa Config file path. If not provided, perf will check system and default 56fc1dcb1eSJiri Olsa locations (/etc/perfconfig, $HOME/.perfconfig). 57fc1dcb1eSJiri Olsa 585631d100SJiri Olsa--base=<PATH>:: 595631d100SJiri Olsa Base directory path. Each daemon instance is running on top 608c98be6cSJiri Olsa of base directory. Only one instance of server can run on 618c98be6cSJiri Olsa top of one directory at the time. 625631d100SJiri Olsa 63d450bc50SJiri OlsaAll generic options are available also under commands. 64d450bc50SJiri Olsa 65d450bc50SJiri Olsa 66d450bc50SJiri OlsaSTART COMMAND 67d450bc50SJiri Olsa------------- 68d450bc50SJiri OlsaThe start command creates the daemon process. 69d450bc50SJiri Olsa 7088adb119SJiri Olsa-f:: 7188adb119SJiri Olsa--foreground:: 7288adb119SJiri Olsa Do not put the process in background. 7388adb119SJiri Olsa 74d450bc50SJiri Olsa 7523c5831eSJiri OlsaSTOP COMMAND 7623c5831eSJiri Olsa------------ 7723c5831eSJiri OlsaThe stop command stops all the session and the daemon process. 7823c5831eSJiri Olsa 7923c5831eSJiri Olsa 802d6914cdSJiri OlsaSIGNAL COMMAND 812d6914cdSJiri Olsa-------------- 822d6914cdSJiri OlsaThe signal command sends signal to configured sessions. 832d6914cdSJiri Olsa 842d6914cdSJiri Olsa--session:: 852d6914cdSJiri Olsa Send signal to specific session. 862d6914cdSJiri Olsa 872d6914cdSJiri Olsa 88edcaa479SJiri OlsaPING COMMAND 89edcaa479SJiri Olsa------------ 90edcaa479SJiri OlsaThe ping command sends control ping to configured sessions. 91edcaa479SJiri Olsa 92edcaa479SJiri Olsa--session:: 93edcaa479SJiri Olsa Send ping to specific session. 94edcaa479SJiri Olsa 95edcaa479SJiri Olsa 96c0666261SJiri OlsaCONFIG FILE 97c0666261SJiri Olsa----------- 98c0666261SJiri OlsaThe daemon is configured within standard perf config file by 99c0666261SJiri Olsafollowing new variables: 100c0666261SJiri Olsa 101c0666261SJiri Olsadaemon.base: 102c0666261SJiri Olsa Base path for daemon data. All sessions data are 103c0666261SJiri Olsa stored under this path. 104c0666261SJiri Olsa 105c0666261SJiri Olsasession-<NAME>.run: 106c0666261SJiri Olsa Defines new record session. The value is record's command 107c0666261SJiri Olsa line without the 'record' keyword. 108c0666261SJiri Olsa 109c0666261SJiri OlsaEach perf record session is run in daemon.base/<NAME> directory. 110c0666261SJiri Olsa 111c0666261SJiri Olsa 11213fb3b9fSJiri OlsaEXAMPLES 11313fb3b9fSJiri Olsa-------- 11413fb3b9fSJiri OlsaExample with 2 record sessions: 11513fb3b9fSJiri Olsa 11613fb3b9fSJiri Olsa # cat ~/.perfconfig 11713fb3b9fSJiri Olsa [daemon] 11813fb3b9fSJiri Olsa base=/opt/perfdata 11913fb3b9fSJiri Olsa 12013fb3b9fSJiri Olsa [session-cycles] 12113fb3b9fSJiri Olsa run = -m 10M -e cycles --overwrite --switch-output -a 12213fb3b9fSJiri Olsa 12313fb3b9fSJiri Olsa [session-sched] 12413fb3b9fSJiri Olsa run = -m 20M -e sched:* --overwrite --switch-output -a 12513fb3b9fSJiri Olsa 12613fb3b9fSJiri Olsa 12713fb3b9fSJiri OlsaStarting the daemon: 12813fb3b9fSJiri Olsa 12913fb3b9fSJiri Olsa # perf daemon start 13013fb3b9fSJiri Olsa 13113fb3b9fSJiri Olsa 13213fb3b9fSJiri OlsaCheck sessions: 13313fb3b9fSJiri Olsa 13413fb3b9fSJiri Olsa # perf daemon 13513fb3b9fSJiri Olsa [603349:daemon] base: /opt/perfdata 13613fb3b9fSJiri Olsa [603350:cycles] perf record -m 10M -e cycles --overwrite --switch-output -a 13713fb3b9fSJiri Olsa [603351:sched] perf record -m 20M -e sched:* --overwrite --switch-output -a 13813fb3b9fSJiri Olsa 13913fb3b9fSJiri OlsaFirst line is daemon process info with configured daemon base. 14013fb3b9fSJiri Olsa 14113fb3b9fSJiri Olsa 14213fb3b9fSJiri OlsaCheck sessions with more info: 14313fb3b9fSJiri Olsa 14413fb3b9fSJiri Olsa # perf daemon -v 14513fb3b9fSJiri Olsa [603349:daemon] base: /opt/perfdata 14613fb3b9fSJiri Olsa output: /opt/perfdata/output 14713fb3b9fSJiri Olsa lock: /opt/perfdata/lock 14813fb3b9fSJiri Olsa up: 1 minutes 14913fb3b9fSJiri Olsa [603350:cycles] perf record -m 10M -e cycles --overwrite --switch-output -a 15013fb3b9fSJiri Olsa base: /opt/perfdata/session-cycles 15113fb3b9fSJiri Olsa output: /opt/perfdata/session-cycles/output 15213fb3b9fSJiri Olsa control: /opt/perfdata/session-cycles/control 15313fb3b9fSJiri Olsa ack: /opt/perfdata/session-cycles/ack 15413fb3b9fSJiri Olsa up: 1 minutes 15513fb3b9fSJiri Olsa [603351:sched] perf record -m 20M -e sched:* --overwrite --switch-output -a 15613fb3b9fSJiri Olsa base: /opt/perfdata/session-sched 15713fb3b9fSJiri Olsa output: /opt/perfdata/session-sched/output 15813fb3b9fSJiri Olsa control: /opt/perfdata/session-sched/control 15913fb3b9fSJiri Olsa ack: /opt/perfdata/session-sched/ack 16013fb3b9fSJiri Olsa up: 1 minutes 16113fb3b9fSJiri Olsa 16213fb3b9fSJiri OlsaThe 'base' path is daemon/session base. 16313fb3b9fSJiri OlsaThe 'lock' file is daemon's lock file guarding that no other 16413fb3b9fSJiri Olsadaemon is running on top of the base. 16513fb3b9fSJiri OlsaThe 'output' file is perf record output for specific session. 16613fb3b9fSJiri OlsaThe 'control' and 'ack' files are perf control files. 16713fb3b9fSJiri OlsaThe 'up' number shows minutes daemon/session is running. 16813fb3b9fSJiri Olsa 16913fb3b9fSJiri Olsa 17013fb3b9fSJiri OlsaMake sure control session is online: 17113fb3b9fSJiri Olsa 17213fb3b9fSJiri Olsa # perf daemon ping 17313fb3b9fSJiri Olsa OK cycles 17413fb3b9fSJiri Olsa OK sched 17513fb3b9fSJiri Olsa 17613fb3b9fSJiri Olsa 17713fb3b9fSJiri OlsaSend USR2 signal to session 'cycles' to generate perf.data file: 17813fb3b9fSJiri Olsa 17913fb3b9fSJiri Olsa # perf daemon signal --session cycles 18013fb3b9fSJiri Olsa signal 12 sent to session 'cycles [603452]' 18113fb3b9fSJiri Olsa 18213fb3b9fSJiri Olsa # tail -2 /opt/perfdata/session-cycles/output 18313fb3b9fSJiri Olsa [ perf record: dump data: Woken up 1 times ] 18413fb3b9fSJiri Olsa [ perf record: Dump perf.data.2020123017013149 ] 18513fb3b9fSJiri Olsa 18613fb3b9fSJiri Olsa 18713fb3b9fSJiri OlsaSend USR2 signal to all sessions: 18813fb3b9fSJiri Olsa 18913fb3b9fSJiri Olsa # perf daemon signal 19013fb3b9fSJiri Olsa signal 12 sent to session 'cycles [603452]' 19113fb3b9fSJiri Olsa signal 12 sent to session 'sched [603453]' 19213fb3b9fSJiri Olsa 19313fb3b9fSJiri Olsa # tail -2 /opt/perfdata/session-cycles/output 19413fb3b9fSJiri Olsa [ perf record: dump data: Woken up 1 times ] 19513fb3b9fSJiri Olsa [ perf record: Dump perf.data.2020123017024689 ] 19613fb3b9fSJiri Olsa # tail -2 /opt/perfdata/session-sched/output 19713fb3b9fSJiri Olsa [ perf record: dump data: Woken up 1 times ] 19813fb3b9fSJiri Olsa [ perf record: Dump perf.data.2020123017024713 ] 19913fb3b9fSJiri Olsa 20013fb3b9fSJiri Olsa 20113fb3b9fSJiri OlsaStop daemon: 20213fb3b9fSJiri Olsa 20313fb3b9fSJiri Olsa # perf daemon stop 20413fb3b9fSJiri Olsa 20513fb3b9fSJiri Olsa 206d450bc50SJiri OlsaSEE ALSO 207d450bc50SJiri Olsa-------- 208d450bc50SJiri Olsalinkperf:perf-record[1], linkperf:perf-config[1] 209