Comprehensive System Accounting (CSA) job accounting for Linux 2.4.0Jan 25, 2001, 23:15 (0 Talkback[s])
(Other stories by Marlys Kohnke)
Date: Wed, 24 Jan 2001 16:04:52 -0600
Comprehensive System Accounting (CSA) provides the ability to track system resource utilization per job and charge back the cost of those resources to users. Los Alamos National Laboratory (LANL) and SGI worked together to provide this job accounting feature on Linux.
CSA job accounting is now available and can be downloaded from the download link at http://oss.sgi.com/projects/csa. There is a 2.4.0 kernel patch, a module tarball, command binary and source rpms plus a command source tarball and documentation. This has only been tested on i386 systems. An ia64 version will be available soon.
CSA is a set of kernel changes, C programs and shell scripts that provide methods for collecting per-task resource usage data, monitoring disk usage, and charging fees to specific login accounts. CSA takes this per-task accounting information and combines it outside of the kernel by job identifier (jid) within system boot uptime periods. Another project, Process Aggregates (PAGG), is providing the kernel job infrastructure needed by CSA (http://oss.sgi.com/projects/pagg).
Job accounting is important to production sites. As these sites install large Linux systems, they need the enterprise style accounting provided by CSA. Since numerous other Linux sites may not be interested in job accounting, almost all of the kernel code for CSA is contained in a loadable kernel module. Use of this feature is configurable through the kernel configuration menu.
The new resource usage counters can also be used by performance tools like sar and Performance Co-Pilot (PCP). These counters have value outside of CSA and should be available regardless of whether CSA is in use.
The CSA kernel patch is against a 2.4.0 kernel with the pagg patch applied. The "kernel changes" link from http://oss.sgi.com/projects/csa describes the kernel changes in detail. In summary, the CSA patch contains the following changes:
1) added i/o counters (bytes read/written, blocks read/written, number of read/write syscalls, and i/o wait time)
2) added configurable memory integral (memory use over time) counters
3) added physical and virtual highwater memory counters
4) added CONFIG_CSA_JOB_ACCT kernel configuration menu item
5) added CSA wrapper procedures (real work done in loadable module) for writing accounting records at start of job, end of process, end of job, and CSA configuration changes; for processing CSA configuration requests; and for processing CSA module registration and unregistration
6) added acctctl syscall to check status, enable and disable job accounting, set memory and cpu time thresholds (records only written if threshold value is exceeded), provide a daemon accounting record buffer to the kernel (i.e. from a workload management program), and start/stop user job accounting
Thanks for any comments and suggestions regarding Linux job accounting.
---- Marlys Kohnke Silicon Graphics Inc. firstname.lastname@example.org 655F Lone Oak Drive (651)683-5324 Eagan, MN 55121