# Tracking System Call Volume Per Process

This section illustrates how to determine which processes are performing the highest volume of system calls. In previous sections, we've described how to monitor the top system calls used by the system over time (topsyssect). We've also described how to identify which applications use a specific set of "polling suspect" system calls the most (timeoutssect). Monitoring the volume of system calls made by each process provides more data in investigating your system for polling processes and other resource hogs.

## syscalls_by_proc.stp

syscallsbyprocpid lists the top 20 processes performing the highest number of system calls. It also lists how many system calls each process performed during the time period. Refer to syscallsbyprocpidoutput for a sample output.

## topsys Sample Output

    Collecting data... Type Ctrl-C to exit and display results
    #SysCalls  Process Name
    1577       multiload-apple
    692        synergyc
    408        pcscd
    376        mixer_applet2
    299        gnome-terminal
    293        Xorg
    206        scim-panel-gtk
    95         gnome-power-man
    90         artsd
    85         dhcdbd
    84         scim-bridge
    78         gnome-screensav
    66         scim-launcher
    [...]

To display the process IDs instead of the process names, use the following script instead.

## syscalls_by_pid.stp

As indicated in the output, you need to manually exit the script in order to display the results. You can add a timed expiration to either script by simply adding a `timer.s()` probe; for example, to instruct the script to expire after 5 seconds, add the following probe to the script:

    probe timer.s(5)
    {
    	exit()
    }