
5.9 (2016-01-31)
Copyright © 2000 Chris Schlaeger
System Monitor is a network enabled task and system monitor application.
Table of Contents
List of Tables

System Monitor is the Plasma Task and Performance Monitor.
It features a client/server architecture that allows monitoring of local as well as remote hosts. The graphical front end uses so-called sensors to retrieve the information it displays. A sensor can return simple values or more complex information like tables. For each type of information, one or more displays are provided. Displays are organized in worksheets that can be saved and loaded independently from each other. So, System Monitor is not only a simple task manager but also a very powerful tool to control large server farms.

System Monitor can be started from the application launcher menu, using the entry in the → menu. Alternatively, you can start it by typing ksysguard in a terminal.
The System Monitor main window consists of a menu bar, an optional tool bar and status bar, and the work space. Custom worksheets will also show the sensor browser.
By default System Monitor shows two worksheets: Process Table and System Load. The Process Table lists the running processes and lets the user control them. Multiple processes can be selected and controlled at once. The System Load worksheet shows graphs of system utilization: CPU History, Memory and Swap History, and the Network History.
This default setup is sufficient enough for an inexperienced user to do some system management. An experienced user or even a system administrator of a large computer lab has different needs. To address a wide range of users, System Monitor is highly flexible.
Note
You can launch the Process Table using the global shortcut Ctrl+Esc at any time. The process table is displayed in a window titled System Activities.

The Process Table gives you a list of processes on your system. The list can be sorted by each column. Just press the left mouse button at the head of the column.
Use the What's This help for the columns titles to get additional information about the value displayed here.
In the context menu of a process in the list view you find additional actions like changing the priority, sending signals to the process, switching to the application window, showing detailed memory information and killing the process.
The list shows the following information about each process. Please note that not all properties are available on every operating system.
Table 2.1. Default Columns in the Process Table
Name | The name of the executable that started the process |
Username | The user who owns this process |
CPU % | The current total CPU usage of the process, divided by the number of processor cores in the machine |
Memory | This is the amount of real physical memory that this process is using by itself, and approximates the Private memory usage of the process. It does not include any swapped out memory, nor the code size of its shared libraries. This is often the most useful figure to judge the memory use of a program. |
Shared Mem | This is approximately the amount of real physical memory that this process's shared libraries are using. This memory is shared among all processes that use this library |
Window Title | The title of any window that this process is showing |
Table 2.2. Additional Columns in the Process Table
PID | The unique Process ID that identifies this process |
TTY | The controlling terminal on which this process is running |
Niceness | The priority with which this process is being run. For the normal scheduler, this ranges from 19 (very nice, least priority) to -19 (top priority) |
CPU Time | The total user and system time that this process has been running for, displayed as minutes:seconds |
IO Read | The number of bytes read. The Display Units and the Displayed Information can be changed using the context menu of this column header |
IO Write | The number of bytes written. The Display Units and the Displayed Information can be changed using the context menu of this column header |
Virtual Size | This is the amount of virtual memory space that the process is using, included shared libraries, graphics memory, files on disk, and so on. This number is almost meaningless. Use the context menu to select the Display Units |
Command | The command with which this process was launched |
At the top of the table you find three controls which will be described now from left to right.
If you have selected one or more processes you can press the button to kill them. A so called SIGKILL is sent to the processes which causes them to terminate immediately. If these applications still have unsaved data this data will be lost. So use this button with care.
Filter which processes are shown by the text given here. The text can be a partial string match of the Name, Command or Window Title of the process. It can also be a Username or a Process ID number.
The Process Filter can be used to reduce the number of processes displayed in the table. You can filter out processes you are not interested in. Currently you can display All Processes in a flat or tree view, System Processes only, User Processes only, your Own Processes only or Programs Only.
The tree view has been designed to show the relationships between the running processes. A process that is started by another process is called the child of that process. A tree is an elegant way to show this parent-child relationship. The init process is the ancestor of all processes.
If you are not interested in the children of a particular process you can click on the little box to the left of the parent and the subtree will collapse. Another click on that box will unfold the subtree again.

The work space is organized as worksheets. Select from the menu to create a new worksheet. A dialog will appear where you can set the name, the dimension and the update interval of the worksheet. To remove a worksheet again, select from the menu. Any modifications will be saved to the worksheet file. If a worksheet has never been saved, you will be asked for a file name. Worksheets consist of cells organized as a grid.
Each cell can be filled with a display for one or more sensors. You can fill a cell by dragging a sensor from the sensor browser and dropping it over the cell. If there is more than one type of display available for that type of sensor, a popup menu will appear. You can then select which display you prefer to use. Certain types of displays can display more than one sensor. Add more sensors to a display by dragging them over from the sensor browser and dropping them over the already existing display.
Worksheets can be configured by clicking at the menu. In the appearing dialog you can set the dimension and the update interval.
Displays can be configured by clicking with the right mouse button on them. A popup menu appear where you can select whether you want to change the properties of that display or remove it from the worksheet.
The sensor browser exposes System Monitor's advanced functionality. To use it, you must first go to the menu and create a new worksheet. It is shown whenever a custom worksheet is selected.
The sensor browser displays the registered hosts and their sensors in a tree form. Click on the tree handles to open or close a branch. Each sensor monitors a certain system value.
Tip
After you have configured your custom worksheet use the splitter and move it to the right edge of the window to hide the sensor browser.
If the sensor browser does not appear on a custom worksheet, it is probably hidden. To unhide it, select the right edge of the window and drag it to the left.
The line graph prints samples of one or more sensors over time. If, several sensors are displayed, the values are piled in different colors. If the display is large enough a grid will be displayed to show the range of the plotted samples. By default, the automatic range mode is active so the minimum and maximum values will be set automatically. Sometimes you want fixed minimum and maximum values. In that case, you can deactivate automatic range mode and set the values in the properties dialog.
The multimeter displays the sensor values as a digital meter. In the properties dialog you can specify a lower and upper limit. If the range is exceeded, the display is colored in the alarm color.
The bar graph displays the sensor values as dancing bars. In the properties dialog you can specify minimum and maximum values of range and a lower and upper limit. If the range is exceeded, the display is colored in the alarm color.
The sensor logger does not display any values, but logs them in a file with additional date and time information. For each sensor you can specify a lower and upper limit in the properties dialog. If the range is exceeded, the entry of the sensor table is colored in the alarm color.
The Partition Usage has a special table sensor showing information about all mounted partitions
Note that the menu item is only available on custom tabs.
To connect to a new host use from the menu. A dialog box will appear and allows you to enter the name of the host you want to connect to. Below the name you can choose the connection method. The default is ssh, the secure shell. Alternatively the rsh, the remote shell, the daemon mode or a custom command can be used. Click to establish the connection. Shortly afterwards the new host will appear in the sensor browser and you can browse the list of sensors.
To disconnect from a host, you have to shut down it and restart System Monitor again.
To establish a connection, a program called ksysguardd, that can be started in the following two modes, must be installed on the new host.
- daemon mode
You can start ksysguardd at boot time in Daemon mode by adding
-d
as the argument. In this case, you have to select daemon mode at the connection dialog of ksysguard. A disadvantage of this connection type is that you won't be able to kill or renice a process in the Process Table and the data exchange over network won't be encrypted. As a result, daemon mode is not recommended.- shell mode
In this mode ksysguardd is started at connecting time by ksysguard. To make that possible, its location needs to be included in your
PATH
. Unfortunately the ssh does not source your.profile
file, so your regularPATH
setting will not be available. Instead it uses a defaultPATH
like/bin:/usr/bin
. Since it is very likely that Plasma is not installed in these folders you need to create or update a file in your home folder. The file is calledenvironment
and needs to be in a hidden folder called.ssh
. See the manual page for ssh for more details. The file needs to contain a line similar to:PATH=/bin:/usr/bin:/opt/kde/bin
assuming that ksysguardd can be found under
/opt/kde/bin/ksysguardd
.Tip
When using ssh you should make sure that you have your
identity.pub
installed on the remote machine and the host key of the remote machine is already registered on your machine. If you don't set upidentity.pub
correctly, you will be asked for your password every time you start ksysguard. The easiest way to make sure that everything is working is to run sshremotehost ksysguardd
in a shell. If you are greeted by ksysguardd, then everything is working correctly and you can typequit
to exit ksysguardd.
Note
For experts: ksysguardd is a very small program that is only linked against the libc. So it can also be used on machines that do not have a full blown Plasma installed, such as servers. Many major distributions provide a separate ksysguardd package for your convenience. If you choose the custom command option in the host connector you need to specify the complete command to start ksysguardd.

The graphical front-end is available on any platform that Plasma runs on. The back-end is at the moment available on the following flavors of UNIX®:
- Linux®
For ksysguardd to work it is necessary to compile the Linux® Kernel with the
/proc
File system enabled. This is the default setting and most Linux® Distributions have it already.- FreeBSD
The ksysguardd program needs to be owned by the
kmem
group and needs to have the setgid bit set.- Solaris™
To be written
Support for other platforms is in progress. Your help is greatly appreciated.

System Monitor is currently developed and maintained by John Tapsell
(john.tapsell AT kde.org)
. System Monitor is a rewrite of
KTop, the KDE 1.x task manager. Several other people
have worked on KTop:
A. Sanda
(alex AT darkstar.ping.at)
Ralf Mueller
(ralf AT bj-ig.de)
Bernd Johannes Wuebben
(wuebben AT math.cornell.edu)
Nicolas Leclercq
(nicknet AT planete.net)
The porting to other platforms than Linux® was done by:
FreeBSD: Hans Petter Bieker
(zerium AT traad.lavvu.no)
This documentation is licensed under the terms of the GNU Free Documentation License.
This program is licensed under the terms of the GNU General Public License.