# System monitor

A system monitor is a hardware or software component used to monitor system resources and performance in a computer system.
Among the management issues regarding use of system monitoring tools are resource usage and privacy. Monitoring can track both input and output values and events of systems.

## Overview

Software monitors occur more commonly, sometimes as a part of a widget engine. These monitoring systems are often used to keep track of system resources, such as CPU usage and frequency, or the amount of free RAM. They are also used to display items such as free space on one or more hard drives, the temperature of the CPU and other important components, and networking information including the system IP address and current rates of upload and download. Other possible displays may include the date and time, system uptime, computer name, username, hard drive S.M.A.R.T. data, fan speeds, and the voltages being provided by the power supply.
Less common are hardware-based systems monitoring similar information. Customarily these occupy one or more drive bays on the front of the computer case, and either interface directly with the system hardware or connect to a software data-collection system via USB. With either approach to gathering data, the monitoring system displays information on a small LCD panel or on series of small analog or LED numeric displays. Some hardware-based system monitors also allow direct control of fan speeds, allowing the user to quickly customize the cooling in the system.
The primary function of a few very high-end models of hardware system monitor is to interface with only a specific model of motherboard. These systems directly utilize the sensors built into the system, providing more detailed and accurate information than less-expensive monitoring systems customarily provide.

## Software monitoring

Software monitoring tools operate within the device they're monitoring.

## Hardware monitoring

Unlike software monitoring tools, hardware measurement tools can either located within the device being measure, or they can be attached and operate from an external location.$^{:p.84}$
A hardware monitor is a common component of modern motherboards, which can either come as a separate chip, often interfaced through I$^2$C or SMBus, or as part of a Super I/O solution, often interfaced through Low Pin Count (LPC). These devices make it possible to monitor temperature in the chassis, voltage supplied to the motherboard by the power supply unit and the speed of the computer fans that are connected directly to one of the fan headers on the motherboard. Many of these hardware monitors also have fan controlling capabilities. System monitoring software like SpeedFan on Windows, lm_sensors on Linux, envstat on NetBSD, and sysctl hw.sensors on OpenBSD and DragonFly can interface with these chips to relay this environmental sensor information to the user.

## Privacy

When an individual user is measuring the performance of a single-user system, whether it is a standalone box or a virtual machine on a multi-user system, access does not impede the privacy of others.$^{:p.114}$ Privacy becomes an issue when someone other than the end-user, such as a system manager,$^{:p.115}$ has legitimate need to access data about other users.

## Resource usage

When events occur faster than a monitor can record them, a workaround is needed, such as replacing event recording with simple counting.$^{:p.89}$
Another consideration is not having major impact on the CPU and storage available for useful work. While a hardware monitor will usually have less impact than a software monitor, there are data items, such as "some descriptive information, such as program names"$^{:p.91}$ that must involve software.
A further consideration is that a bug in this domain can have severe impact: an extreme case would "cause the OS to crash".

## List of software monitors

Single system:
* Activity Monitor
* AIDA64
* CPU-Z
* GPU-Z
* Conky
* htop
* hw.sensors on OpenBSD and DragonFly BSD
* iftop
* iostat
* KDE System Guard (KSysguard)
* lm_sensors
* monit
* Monitorix
* Motherboard Monitor
* Netdata
* nmon
* ntop
* Process Explorer
* Resource Monitor (resmon)
* Samurize
* Sar in UNIX
* SpeedFan
* sysmon/envsys on NetBSD
* systat
* System Monitor (sysmon)
* top
* vmstat
* Windows Desktop Gadgets
* Windows Task Manager
Distributed:
* Argus (monitoring software)
* Collectd
* Ganglia
* GKrellM
* HP SiteScope
* Icinga
* monit (paid version M/monit)
* NMIS
* Munin
* Nagios
* NetCrunch
* Opmantek
* Pandora FMS
* Performance Monitor (perfmon)
* Prometheus (software)
* symon
* Vigilo NMS (Enterprise Editions)
* Zenoss Core