1PMLOGGER(1) General Commands Manual PMLOGGER(1)
2
3
4
6 pmlogger - create archive log for performance metrics
7
9 pmlogger [-CLNoPruy?] [-c conffile] [-h host] [-H hostname] [-I ver‐
10 sion] [-K spec] [-l logfile] [-m note] [-n pmnsfile] [-p pid] [-s end‐
11 size] [-t interval] [-T endtime] [-U username] [-v volsize] [-V ver‐
12 sion] [-x fd] archive
13
15 pmlogger creates the archive logs of performance metric values that may
16 be ``played back'' by other Performance Co-Pilot (see PCPIntro(1))
17 tools. These logs form the basis of the VCR paradigm and retrospective
18 performance analysis services common to the PCP toolkit.
19
20 The mandatory argument archive is the base name for the physical files
21 that constitute an archive log. The archive argument may contain strf‐
22 time(3) meta-characters, which will be substituted prior to creating
23 the archive log files. When pmlogger is run as a service (see pmlog‐
24 ger_daily(1)), the standard archive base name template is %Y%m%d.%H.%M.
25
26 The -V option specifies the version for the archive that is generated.
27 By default the archive version $PCP_ARCHIVE_VERSION (set to 2 in cur‐
28 rent PCP releases) is used, and the only values currently supported for
29 version are 2 or 3.
30
31 Unless directed to another host by the -h option or when directly using
32 PMDAs via the -o option, pmlogger will contact the Performance Metrics
33 Collector Daemon (PMCD) on the local host and use that as the source of
34 the metric values to be logged.
35
36 To support the required flexibility and control over what is logged and
37 when, pmlogger maintains an independent two level logging state for
38 each instance of each performance metric. At the first (mandatory)
39 level, logging is allowed to be on (with an associated interval between
40 samples), or off or maybe. In the latter case, the second (advisory)
41 level logging is allowed to be on (with an associated interval between
42 samples), or off.
43
44 The mandatory level allows universal specification that some metrics
45 must be logged, or must not be logged. The default state for all in‐
46 stances of all metrics when pmlogger starts is mandatory maybe and ad‐
47 visory off.
48
49 Use pmlc(1) to interrogate and change the logging state once pmlogger
50 is running.
51
52 If a metric's state is mandatory (on or off) and a request is made to
53 change it to mandatory maybe, the new state is mandatory maybe and ad‐
54 visory off. If a metric's state is already advisory (on or off) and a
55 request is made to change it to mandatory maybe, the current state is
56 retained.
57
58 It is not possible for pmlogger to log specific instances of a metric
59 and all instances of the same metric concurrently. If specific in‐
60 stances are being logged and a request to log all instances is made,
61 then all instances of the metric will be logged according to the new
62 request, superseding any prior logging request for the metric. A re‐
63 quest to log all instances of a metric will supersede any previous re‐
64 quest to log all instances. A request to log specific instances of a
65 metric when all instances are already being logged is refused. To do
66 this one must turn off logging for all instances of the metric first.
67 In each case, the validity of the request is checked first; for example
68 a request to change a metric's logging state to advisory on when it is
69 currently mandatory off is never permitted (it is necessary to change
70 the state to mandatory maybe first).
71
72 Optionally, each system running pmcd(1) may also be configured to run a
73 ``primary'' pmlogger instance. This pmlogger instance is launched by
74 $PCP_RC_DIR/pmlogger, and is affected by the files $PCP_SYSCONF_DIR/pm‐
75 logger/control, $PCP_SYSCONF_DIR/pmlogger/control.d (use chkconfig(8),
76 systemctl(1) or similar platform-specific commands to activate or dis‐
77 able the primary pmlogger instance), $PCP_SYSCONFIG_DIR/pmlogger (envi‐
78 ronment variable settings for the primary pmlogger)
79 $PCP_SYSCONF_DIR/pmlogger/pmlogger.options (command line options passed
80 to the primary pmlogger) and $PCP_VAR_DIR/config/pmlogger/config.de‐
81 fault (the default initial configuration file for the primary pmlog‐
82 ger).
83
84 The primary pmlogger instance is identified by the -P option. There
85 may be at most one ``primary'' pmlogger instance on each system. The
86 primary pmlogger instance (if any) must be running on the same host as
87 the pmcd(1) to which it connects (if any), so the -h and -P options are
88 mutually exclusive.
89
90 Logging of some metrics is possible even in the absence of a local
91 pmcd(1), using the "local context" mode of operation. This is acti‐
92 vated using the -o option, and causes pmlogger to make use of local DSO
93 PMDAs instead of communicating with pmcd(1). When operating using a
94 local context, the -K option may be used to control the DSO PMDAs that
95 should be made accessible. The spec argument conforms to the syntax
96 described in pmSpecLocalPMDA(3). More than one -K option may be used.
97
98 When launched as a non-primary instance, pmlogger will exit immediately
99 if the configuration file causes no metric logging to be scheduled.
100 The -L option overrides this behavior, and causes a non-primary pmlog‐
101 ger instance to ``linger'', presumably pending some future dynamic re-
102 configuration and state change via pmlc(1). pmlogger will also linger
103 without the -L option being used if all the metrics to be logged are
104 logged as once only metrics. When the once only metrics have been
105 logged, a warning message will be generated stating that the event
106 queue is empty and no more events will be scheduled.
107
108 By default all diagnostics and errors from pmlogger are written to the
109 file pmlogger.log in the directory where pmlogger is launched. The -l
110 option may be used to override the default behavior. If the log file
111 cannot be created or is not writable, output is written to standard er‐
112 ror instead. If the logfile for the -l option is "-" (i.e. -l-) then
113 log messages are written to the standard output stream. This can be
114 particularly useful when running pmlogger manually, rather than as a
115 service daemon.
116
117 The -N option directs pmlogger to notify a service manager, typically
118 systemd(1), when it has started and is about to begin writing PCP ar‐
119 chive logs. This option would only normally be used when pmlogger is
120 run as a daemon service under the control of a service manager. For
121 more details, see __pmServerNotifyServiceManagerReady(3) and sys‐
122 temd(1). On platforms that do not use a service manager that supports
123 notifications, the -N option is basically a no-op.
124
125 If specified, the -s option instructs pmlogger to terminate after a
126 certain size in records, bytes or time units has been accumulated. If
127 endsize is an integer then endsize records will be written to the log.
128 If endsize is an integer suffixed by b or bytes then endsize bytes of
129 the archive data will be written out (note, however, that archive log
130 record boundaries will not be broken and so this limit may be slightly
131 surpassed). Other viable file size units include: K, Kb, KiB, Kbyte,
132 Kilobyte for kilobytes and M, Mb, MiB, Mbyte, Megabyte for megabytes
133 and G, Gb, GiB, Gbyte, Gigabyte for gigabytes. These units may be op‐
134 tionally suffixed by an s and may be of mixed case. Alternatively end‐
135 size may be an integer or a floating point number suffixed using a time
136 unit as described in PCPIntro(1) for the interval argument (to the
137 standard PCP -t command line option).
138 Some examples of different formats:
139 -s 100
140 -s 100bytes
141 -s 100K
142 -s 100Mb
143 -s 10Gbyte
144 -s 10mins
145 -s 1.5hours
146 The default is for pmlogger to run forever.
147
148 The -r option causes the size of the physical record(s) for each group
149 of metrics and the expected contribution of the group to the size of
150 the PCP archive for one full day of collection to be reported in the
151 log file. This information is reported the first time each group is
152 successfully written to the archive.
153
154 The -U option specifies the user account under which to run pmlogger.
155 The default is the current user account for interactive use. When run
156 as a daemon, the unprivileged "pcp" account is used in current versions
157 of PCP, but in older versions the superuser account ("root") was used
158 by default.
159
160 The log file is potentially a multi-volume data set, and the -v option
161 causes pmlogger to start a new volume after a certain size in records,
162 bytes, or time units has been accumulated for the current volume. The
163 format of this size specification is identical to that of the -s option
164 (see above). The default is for pmlogger to create a single volume
165 log. Additional volume switches can also be forced asynchronously by
166 either using pmlc(1) or sending pmlogger a SIGHUP signal (see below).
167 Note, if a scheduled volume switch is in operation due to the -v op‐
168 tion, then its counters will be reset after an asynchronous switch.
169
170 Independent of any -v option, each volume of an archive is limited to
171 no more than 2^31 bytes, so pmlogger will automatically create a new
172 volume for the archive before this limit is reached.
173
174 Normally pmlogger operates on the distributed Performance Metrics Name
175 Space (PMNS), however if the -n option is specified an alternative lo‐
176 cal PMNS is loaded from the file pmnsfile.
177
178 Under normal circumstances, pmlogger will run forever (except for a -s
179 option or a termination signal). The -T option may be used to limit
180 the execution time using the format of time as prescribed by PCPIn‐
181 tro(1). The time is interpreted within the time zone of the PMCD
182 server, unless the -y option is given, within which case the time zone
183 at this logger host is used.
184 Some examples of different formats:
185 -T 10mins
186 -T '@ 11:30'
187 From this it can be seen that -T 10mins and -s 10mins perform identical
188 actions.
189
190 Alternatively, pmlogger runtime may be limited to the lifetime of an‐
191 other process by using the -p or --PID option to nominate the PID of
192 the process of interest. In this case the pmlogger will exit when the
193 other process no longer exists.
194
195 When pmlogger receives a SIGHUP signal, the current volume of the log
196 is closed, and a new volume is opened. This mechanism (or the alterna‐
197 tive mechanism via pmlc(1)) may be used to manage the growth of the log
198 files - once a log volume is closed, that file may be archived without
199 ill-effect on the continued operation of pmlogger. See also the -v op‐
200 tion above.
201
202 When pmlogger receives a SIGUSR2 signal, the current archive log is
203 closed, and a new archive is opened. For this to succeed, the original
204 archive argument must include strftime(3) meta characters (e.g.
205 %Y%m%d.%H.%M), otherwise pmlogger will exit because the archive files
206 will already exist and pmlogger will not over-write existing archive
207 files. Note that SIGUSR2 triggers pmlogger to re-exec itself and re-
208 parse all original arguments. This means that any relative time limits
209 placed on it's termination time or sampling limit are reset and begin
210 again. This only affects relative termination times, not absolute
211 times e.g. -T 5s is affected, but -T 5pm is not.
212
213 Historically the buffers for the current log may be flushed to disk us‐
214 ing the flush command of pmlc(1), or by using the -u option. The cur‐
215 rent version of pmlogger and the libpcp routines that underpin pmlogger
216 unconditionally use unbuffered writes and a single fwrite(3) for each
217 logical record written, and so ``flushing'' does not force any addi‐
218 tional data to be written to the file system. The -u option and the
219 pmlc(1) flush command are retained for backwards compatibility.
220
221 When launched with the -x option, pmlogger will accept asynchronous
222 control requests on the file descriptor fd. This option is only ex‐
223 pected to be used internally by PCP applications that support ``live
224 record mode''.
225
226 The -m option allows the string note to be appended to the map file for
227 this instance of pmlogger in the $PCP_TMP_DIR/pmlogger directory. This
228 is currently used internally to document the file descriptor (fd) when
229 the -x option is used, or to indicate that this pmlogger instance was
230 started under the control of pmlogger_check(1), (-m pmlogger_check) or
231 was re-exec'd (see execvp(3)) due to a SIGUSR2 signal being recieved as
232 described above (-m reexec).
233
234 The -H option allows the hostname written into the archive label to be
235 overridden. This mirrors the -H option of pmcd(1) , but allows it to
236 be specified on the pmlogger process. Without this option, the value
237 returned from the logged pmcd(1) is used.
238
239 The -C option will cause the configuration file to be parsed and pmlog‐
240 ger will then exit without creating an output archive, so when -C is
241 specified, the archive command line argument is not required. Any er‐
242 rors in the configuration file are reported.
243
245 The configuration file may be specified with the -c option. If it is
246 not, configuration specifications are read from standard input.
247
248 If conffile does not exist, then a search is made in the directory
249 $PCP_VAR_DIR/config/pmlogger for a file of the same name, and if found
250 that file is used, e.g. if config.mumble does not exist in the current
251 directory and the file $PCP_VAR_DIR/config/pmlogger/config.mumble does
252 exist, then -c config.mumble and -c $PCP_VAR_DIR/config/pmlogger/con‐
253 fig.mumble are equivalent.
254
255 The syntax for the configuration file is as follows.
256
257 1. Words are separated by white space (space, tab or newline).
258
259 2. The symbol ``#'' (hash) introduces a comment, and all text up to
260 the next newline is ignored.
261
262 3. Keywords (shown in bold below) must appear literally (i.e. in
263 lower case).
264
265 4. Each specification begins with the optional keyword log, followed
266 by one of the states mandatory on, mandatory off, mandatory maybe,
267 advisory on or advisory off.
268
269 5. For the on states, a logging interval must follow using the syntax
270 ``once'', or ``default'', or ``every N timeunits'', or simply ``N
271 timeunits'' - N is an unsigned integer, and timeunits is one of
272 the keywords msec, millisecond, sec, second, min, minute, hour or
273 the plural form of one of the above.
274 Internal limitations require the interval to be smaller than (ap‐
275 proximately) 74 hours. An interval value of zero is a synonym for
276 once. An interval of default means to use the default logging in‐
277 terval of 60 seconds; this default value may be changed to inter‐
278 val with the -t command line option.
279
280 The interval argument follows the syntax described in PCPIntro(1),
281 and in the simplest form may be an unsigned integer (the implied
282 units in this case are seconds).
283
284 6. Following the state and possible interval specifications comes a
285 ``{'', followed by a list of one or more metric specifications and
286 a closing ``}''. The list is white space (or comma) separated.
287 If there is only one metric specification in the list, the braces
288 are optional.
289
290 7. A metric specification consists of a metric name optionally fol‐
291 lowed by a set of instance names. The metric name follows the
292 standard PCP naming conventions, see PMNS(5), and if the metric
293 name is a non-leaf node in the PMNS (see PMNS(5)), then pmlogger
294 will recursively descend the PMNS and apply the logging specifica‐
295 tion to all descendent metric names that are leaf nodes in the
296 PMNS. The set of instance names is a ``['', followed by a list of
297 one or more space (or comma) separated names, numbers or strings,
298 and a closing ``]''. Elements in the list that are numbers are
299 assumed to be internal instance identifiers, other elements are
300 assumed to be external instance identifiers - see pmGetInDom(3)
301 for more information.
302
303 If no instances are given, then the logging specification is ap‐
304 plied to all instances of the associated metric.
305
306 8. There may be an arbitrary number of logging specifications.
307
308 9. As of PCP version 4.0 and later, any metric name specification
309 that does not resolve to a leaf node in the PMNS is added to an
310 internal list of possible dynamic subtree roots. PMDAs can dynam‐
311 ically create new metrics below a dynamic root node in their PMNS,
312 and send a notification to clients that the PMNS has changed, see
313 pmdaExtSetFlags(3) and in particular the METRIC CHANGES section
314 for API details. This mechanism is currently supported by pm‐
315 daopenmetrics(1) and pmdammv(1). When a fetch issued by pmlogger
316 returns with the PMDA_EXT_NAMES_CHANGE flag set, pmlogger will
317 traverse the internal list of possible dynamic subtree nodes and
318 dynamically discover any new metrics. In effect, as of PCP ver‐
319 sion 4.0 and later, pmlogger can be configured to dynamically log
320 new metrics that appear in the future, after the configuration
321 file is initially parsed.
322
323 10. Following all of the logging specifications, there may be an op‐
324 tional access control section, introduced by the literal token
325 [access]. Thereafter come access control rules that allow or dis‐
326 allow operations from particular hosts or groups of hosts.
327
328 The operations may be used to interrogate or control a running pm‐
329 logger using pmlc(1) and fall into the following classes:
330
331 enquire interrogate the status of pmlogger and the metrics
332 it is logging
333 advisory Change advisory logging.
334 mandatory Change mandatory logging.
335 all All of the above.
336
337 Access control rules are of the form ``allow hostlist : opera‐
338 tionlist ;'' and ``disallow hostlist : operationlist ;''.
339
340 The hostlist follows the syntax and semantics for the access con‐
341 trol mechanisms used by PMCD and are fully documented in pmcd(1).
342 An operationslist is a comma separated list of the operations ad‐
343 visory, mandatory, enquire and all.
344
345 A missing [access] section allows all access and is equivalent to
346 allow * : all;.
347
348 The configuration (either from standard input or conffile) is initially
349 scanned by pmcpp(1) with the options -rs and -I $PCP_VAR_DIR/config/pm‐
350 logger. This extends the configuration file syntax with include file
351 processing (%include), a common location to search for include files
352 ($PCP_VAR_DIR/config/pmlogger), macro definitions (%define), macro ex‐
353 pansion (%name and %{name}) and conditional inclusion of lines (%ifdef
354 name ... %else ... %endif and %ifndef name ... %else ... %endif).
355
357 The available command line options are:
358
359 -c conffile, --config=conffile
360 Specify the conffile file to use.
361
362 -C, --check
363 Parse configuration and exit.
364
365 -h host, --host=host
366 Fetch performance metrics from pmcd(1) on host, rather than from
367 the default localhost.
368
369 -H hostname, --labelhost=hostname
370 Specify the hostname to use instead of the one returned by
371 pmcd(1).
372
373 -I version, --pmlc-ipc-version=version
374 Normally, pmlogger and pmlc(1) will autonegotiate a mutually ac‐
375 ceptable version for their private IPC channel. Use -I to force
376 pmlogger to offer (at most) version as the version to be used.
377 This option may be required if pmlogger needs to be managed by an
378 older version of pmlc(1) that fails to autonegotiate correctly.
379
380 -K spec, --spec-local=spec
381 When fetching metrics from a local context (see -o), the -K option
382 may be used to control the DSO PMDAs that should be made accessi‐
383 ble. The spec argument conforms to the syntax described in pm‐
384 SpecLocalPMDA(3). More than one -K option may be used.
385
386 -l logfile, --log=logfile
387 Write all diagnostics to logfile instead of the default pmlog‐
388 ger.log.
389
390 -L, --linger
391 Run even if not the primary logger instance and nothing to log.
392
393 -m note, --note=note
394 Append note to the port map file for this instance.
395
396 -n pmnsfile, --namespace=pmnsfile
397 Load an alternative Performance Metrics Name Space (PMNS(5)) from
398 the file pmnsfile.
399
400 -N, --notify
401 Notify service manager such as systemd(1) as needed.
402
403 -o, --local-PMDA
404 Use a local context to collect metrics from DSO PMDAs on the local
405 host without PMCD. See also -K.
406
407 -p PID, --PID=PID
408 Log specified metrics for the lifetime of the pid PID.
409
410 -P, --primary
411 Run as primary logger instance. See above for more detailed de‐
412 scription of this.
413
414 -r, --report
415 Report record sizes and archive growth rate.
416
417 -s endsize, --size=endsize
418 Terminate after log size exceeds endsize.
419
420 -t interval, --interval=interval
421 Specify the logging interval. The default value is 60 seconds.
422 Please refer to the ENVIRONMENT and FILES sections below regarding
423 the PMLOGGER_INTERVAL environment variable and its impact on the
424 default logging interval.
425
426 -T endtime, --finish=endtime
427 Specify the endtime when to end logging.
428
429 -u Use unbuffered output. This is the default (so this option does
430 nothing).
431
432 -U username, --username=username
433 When in daemon mode, run as user username.
434
435 -v volsize, --volsize=volsize
436 Switch log volumes after reaching log volume size volsize.
437
438 -V version, --version=version
439 Specify log archive version. The default and the only accepted
440 value is 2.
441
442 -x fd
443 Allow asynchronous control requests on the file descriptor fd.
444
445 -y Use local timezone instead of the timezone from the pmcd(1) host.
446
447 -?, --help
448 Display usage message and exit.
449
451 For each PCP utility, there is a sample pmlogger configuration file
452 that could be used to create an archive log suitable for replaying with
453 that tool (i.e. includes all of the performance metrics used by the
454 tool). For a tool named foo this configuration file is located in
455 $PCP_VAR_DIR/config/pmlogger/config.foo.
456
457 The following is a simple default configuration file for a primary pm‐
458 logger instance, and demonstrates most of the capabilities of the con‐
459 figuration specification language.
460
461 log mandatory on once { hinv.ncpu hinv.ndisk }
462 log mandatory on every 10 minutes {
463 disk.all.write
464 disk.all.read
465 network.interface.in.packets [ "et0" ]
466 network.interface.out.packets [ "et0" ]
467 nfs.server.reqs [ "lookup" "getattr" "read" "write" ]
468 }
469
470 log advisory on every 30 minutes {
471 environ.temp
472 pmcd.pdu_in.total
473 pmcd.pdu_out.total
474 }
475
476 %include "macros.default"
477
478 %ifdef %disk_detail
479 log mandatory on %disk_detail_freq {
480 disk.dev
481 }
482 %endif
483
484 [access]
485 disallow * : all except enquire;
486 allow localhost : mandatory, advisory;
487
489 The archive logs are sufficiently precious that pmlogger will not trun‐
490 cate an existing physical file. A message of the form
491 ...: "foo.index" already exists, not over-written
492 ...: File exists
493 indicates this situation has arisen. You must explicitly remove the
494 files and launch pmlogger again.
495
496 There may be at most one primary pmlogger instance per monitored host;
497 attempting to bend this rule produces the error:
498 pmlogger: there is already a primary pmlogger running
499
500 Various other messages relating to the creation and/or deletion of
501 files in $PCP_TMP_DIR/pmlogger suggest a permission problem on this di‐
502 rectory, or some feral files have appeared therein.
503
505 archive.meta
506 metadata (metric descriptions, instance domains, etc.) for the ar‐
507 chive log
508
509 archive.0
510 initial volume of metrics values (subsequent volumes have suffixes
511 1, 2, ...)
512
513 archive.index
514 temporal index to support rapid random access to the other files
515 in the archive log
516
517 $PCP_TMP_DIR/pmlogger
518 pmlogger maintains the files in this directory as the map between
519 the process id of the pmlogger instance and the IPC port that may
520 be used to control each pmlogger instance (as used by pmlc(1))
521
522 $PCP_VAR_DIR/config/pmlogger/config.default
523 default configuration file for the primary logger instance
524 launched from $PCP_RC_DIR/pmlogger
525
526 $PCP_VAR_DIR/config/pmlogger/config.*
527 assorted configuration files suitable for creating logs that may
528 be subsequently replayed with the PCP visualization and monitoring
529 tools
530
531 $PCP_ARCHIVE_DIR/<hostname>
532 Default directory for PCP archive files for performance metric
533 values collected from the host <hostname>.
534
535 $PCP_SYSCONFIG_DIR/pmlogger
536 additional environment variables that will be set when the primary
537 pmlogger instance executes. Only settings of the form "PMLOG‐
538 GER_VARIABLE=value" will be honoured.
539
540 ./pmlogger.log
541 (or $PCP_ARCHIVE_DIR/<hostname>/pmlogger.log when started automat‐
542 ically by either $PCP_RC_DIR/pmlogger or one of the pmlogger(1)
543 monitoring scripts such as pmlogger_check(1))
544 all messages and diagnostics are directed here
545
547 Normally pmlogger creates a socket to receive control messages from
548 pmlc(1) on the first available TCP/IP port numbered 4330 or higher.
549 The environment variable PMLOGGER_PORT may be used to specify an alter‐
550 native starting port number.
551
552 If set to the value 1, the PMLOGGER_LOCAL environment variable will
553 cause pmlogger to run in a localhost-only mode of operation, where it
554 binds only to the loopback interface.
555
556 The PMLOGGER_REQUEST_TIMEOUT variable may be set by applications such
557 as pmlc(1) to specify a timeout in seconds for connection requests to
558 the pmlogger control port. If not set, connections may block indefi‐
559 nitely. This variable would not normally be set by pmlogger itself.
560
561 The PMLOGGER_MAXPENDING variable can be set to indicate the maximum
562 length to which the queue of pending pmlc connections may grow.
563
564 The default sampling interval used by pmlogger can be set using the PM‐
565 LOGGER_INTERVAL variable (if not set, 60 seconds will be used). Both
566 the command line and directives in the configuration file will override
567 this value. It is an integer in units of seconds.
568
569 On platforms using systemd(1), and when the -N option is given, the NO‐
570 TIFY_SOCKET environment variable would normally be set by the service
571 manager prior to launching pmlogger.
572
574 Environment variables with the prefix PCP_ are used to parameterize the
575 file and directory names used by PCP. On each installation, the file
576 /etc/pcp.conf contains the local values for these variables. The
577 $PCP_CONF variable may be used to specify an alternative configuration
578 file, as described in pcp.conf(5).
579
581 PCPIntro(1), pmcd(1), pmdumplog(1), pmlc(1), pmlogger_check(1), system‐
582 ctl(1), systemd(1), execvp(3), pmSpecLocalPMDA(3), strftime(3), __pm‐
583 ServerNotifyServiceManagerReady(3), pcp.conf(5), pcp.env(5), pmlog‐
584 ger(5), PMNS(5) and chkconfig(8).
585
586
587
588Performance Co-Pilot PCP PMLOGGER(1)