Throughput is a measure of how many units of information a system can process in a given amount of time. It is applied broadly to systems ranging from various aspects of computer and network systems to organizations. Related measures of system productivity include the speed with which some specific workload can be completed, and response time, the amount of time between a single interactive user request and receipt of the response.
Types of throughput
Historically, throughput has been a measure of the comparative effectiveness of large commercial computers that run many programs concurrently. An early throughput measure was the number of batch jobs completed in a day. More recent measures assume either a more complicated mixture of work or focus on some particular aspect of computer operation. Units like "trillion floating-point operations per second (TeraFLOPs or TFLOPS)" provide a metric for comparing the cost of raw computing over time or by manufacturer. A benchmark can be used to measure throughput. In data transmission, network throughput is the amount of data moved successfully from one place to another in a given time period, and typically measured in bits per second (bps), as in megabits per second (Mbps) or gigabits per second (Gbps).
Likewise, in storage systems, throughput refers to either the amount of data that can be received and written to the storage medium or read from media and returned to the requesting system, typically measured in bytes per second (Bps). It can also refer to the number of discrete input or output (I/O) operations responded to in a second (IOPS).
Throughput applies at higher levels of the IT infrastructure as well. Databases or other middleware can be discussed in terms of "transactions per second" (TPS); Web servers can be discussed in terms of page-views per minute.
Throughput also applies to the people and organizations using these systems: Independent of the TPS rating of its help desk software, for example, a help desk has its own throughput rate that includes the time staff spend on developing responses to requests.
Throughput, bandwidth and latency
Several related terms -- throughput, bandwidth and latency -- are sometimes mistakenly interchanged. In a nutshell, network bandwidth refers to the capacity of the network for data to be moved at one time; throughput expresses the amount of data; and latency refers to the speed at which data is transmitted, as described below. Network throughput and latency together reflect a network's performance.
Throughput vs network bandwidth
Bandwidth is the capacity of a wired or wireless network communications link to transmit the maximum amount of data from one point to another over a computer network or internet connection in a given amount of time -- usually one second. Synonymous with capacity, bandwidth describes the data transfer rate. Bandwidth is not a measure of network speed -- a common misconception.
While bandwidth is traditionally expressed in bits per second (bps), modern network links have greater capacity, which is typically measured in millions of bits per second (megabits per second, or Mbps) or billions of bits per second (gigabits per second, or Gbps).
Throughput is necessarily lower than bandwidth because bandwidth represents the maximum capabilities of your network rather than the actual transfer rate.
Throughput vs. network latency
Network latency is an expression of how much time it takes for a data packet to get from one designated point to another. In some environments (for example, AT&T), latency is measured by sending a packet that is returned to the sender; the round-trip time is considered the latency. Ideally, latency is as close to zero as possible.
Contributors to degraded network throughput include:
- Hardware issues: if routers and other devices are antiquated or experiencing faults
- Traffic: If networks traffic is heavy, it can result in packet loss.
The contributors to network latency include:
- Propagation: This is simply the time it takes for a packet to travel between one place and another at the speed of light.
- Transmission: The medium itself (whether optical fiber, wireless, or some other) introduces some delay, which varies from one medium to another. The size of the packet introduces delay in a round trip since a larger packet will take longer to receive and return than a short one. Also, when signals must be boosted by a repeater, this too introduces additional latency.
- Router and other processing: Each gateway node takes time to examine and possibly change the header in a packet (for example, changing the hop count in the time-to-live field).
- Other computer and storage delays: Within networks at each end of the journey, a packet may be subject to storage and hard disk access delays at intermediate devices such as switches and bridges. (In backbone statistics, however, this kind of latency is probably not considered.)
Measuring and monitoring network throughput
SNMP is an application-layer protocol used to manage and monitor network devices and their functions. SNMP provides a common language for network devices to relay management information within single- and multivendor environments in a local area network (LAN) or wide area network (WAN). The most recent iteration of SNMP, version 3, includes security enhancements that authenticate and encrypt SNMP messages as well as protect packets during transit.
WMI is a set of specifications from Microsoft for consolidating the management of devices and applications in a network from Windowscomputing systems. WMI provides users with information about the status of local or remote computer systems. It also supports such actions as the configuration of security settings, setting and changing system properties, setting and changing permissions for authorized users and user groups, assigning and changing drive labels, scheduling processes to run at specific times, backing up the object repository, and enabling or disabling error logging.
Tcpdump is an open source command-line tool for monitoring (sniffing) network traffic. Tcpdump works by capturing and displaying packet headers and matching them against a set of criteria. It understands boolean search operators and can use host names, IP addresses, network names, and protocols as arguments.