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.

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.

A few very high-end models of hardware system monitor are designed 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.

A hardware monitor is a common component of modern motherboards, which can either come as a separate chip, often interfaced through I2C 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. Privacy becomes an issue when someone other than the end-user, such as a system manager, 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.

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" that must involve software.

A further consideration is that a bug in this domain can have severe impact: an extreme case would be "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
 Vigilo NMS (Community Edition)
 vmstat
 Windows Desktop Gadgets
 Windows Task Manager

Distributed:

 Argus (monitoring software)
 Collectd
 Ganglia
 GKrellM
 HP SiteScope
 monit (paid version M/monit)
 NMIS
 Munin
 Nagios
 NetCrunch
 Opmantek
 Pandora FMS
 Performance Monitor (perfmon)
 Prometheus (software)
 symon
 Vigilo NMS (Enterprise Editions)
 Zenoss Core

See also

 Application performance management (APM)
 Application service management (ASM)
 I2C and SMBus
 Network monitoring
 Mean time between failures (MTBF)
 Intelligent Platform Management Interface (IPMI)
 System profiler
 Website monitoring

References

External links
 Monitoring a Linux System with X11/Console/Web-Based Tools

Computer peripherals
Liquid crystal displays
System administration
Utility software types