@@ -16,12 +16,15 @@ envelope used by each part of the build of a project, so that
1616developers can know and request the right-sized amount of memory for
1717their needs, and tune the parallel options of their build to reduce
1818the build duration as much as possible without exceeding the available
19- memory (and avoid being killed by the Linux OOM killer).
19+ memory (and avoid being killed by the Linux OOM killer). Basically,
20+ our build tool spawns a process-watcher at startup and kills it at
21+ exit time; it queries it after each possibly-large subjob.
2022
21- As it identifies a process tree by the PID of the top process, it is
22- suitable to identify a particular process tree and not something like
23- "all processes that are named gcc on the system", which would be
24- problematic if several similar jobs may be running at the same time.
23+ As process-watcher identifies a process tree by the PID of the top
24+ process, it is suitable to identify a particular process tree and not
25+ something like "all processes that are named gcc on the system", which
26+ would be problematic if several similar jobs may be running at the
27+ same time.
2528
2629process-watcher is designed to have a very small disk footprint,
2730memory footprint and cpu footprint, which makes its installation and
@@ -62,14 +65,16 @@ https://github.com/ncabatoff/process-exporter (a Prometheus exporter)
6265is a Go program that regularly checks the statistics of processes and
6366exports them to a Prometheus server. It cannot measure a specific
6467process tree if there are multiple process trees matching your
65- matchers, or measuring the memory envelope of a process tree, but is
66- useful for getting statistics over a long time.
67-
68- https://github.com/astrofrog/psrecord is a Python program that can
69- collect memory and CPU stats of a process tree identified by its top
70- PID. It does not compute the envelope memory statistics, and has a
71- larger overall footprint as it relies on CPython. However, it has
72- features that process-tree does not have, such as the CPU stats.
68+ matchers, or measuring the memory envelope of a process tree, and
69+ probably consumes more RAM than process-watcher, but is useful for
70+ getting statistics over a long time.
71+
72+ https://github.com/astrofrog/psrecord is a program that can collect
73+ memory and CPU stats of a process tree identified by its top PID. It
74+ does not compute the envelope memory statistics, and has a larger
75+ overall footprint than process-watcher as it currently relies on
76+ CPython. However, it has features that process-tree does not have,
77+ such as the CPU stats.
7378
7479Building
7580========
0 commit comments