Imbench is a micro-benchmark suite designed to focus on the fundamental building blocks of common system applications, such as databases, simulations, software development, and networking. The suite includes a set of small micro-benchmarks that measure system latency and bandwidth of data movement among the processor, memory, network, file system, and disk. These benchmarks are intended to provide reproducible numbers that can be used to compare different system implementations from various vendors and to uncover previously unknown bugs and design flaws. Imbench has been widely used and has shown a strong correlation between memory system performance and overall system performance. It is portable and can be run on a wide range of Unix systems, including AIX, BSDI, HP-UX, IRIX, Linux, FreeBSD, NetBSD, OSF/1, Solaris, SunOS, and Windows/NT. The benchmarks are written using standard, portable system interfaces and facilities, and they are freely distributed under the Free Software Foundation's General Public License. The suite includes a database of results from systems as of late 1995, which can be used for comparison purposes. Imbench focuses on latency and bandwidth because these are often the root causes of performance issues. The benchmarks are designed to measure the CPU overhead of a single request rather than the capacity of the system as a whole. The suite includes measures of memory bandwidth, interprocess communication bandwidth, cached I/O bandwidth, and various latency measurements, such as memory latency, operating system entry cost, signal handling cost, process creation times, context switching, and file system latency. The results from these benchmarks have been used to identify and correct critical performance problems and to provide insights into the trade-offs in processor cache design.Imbench is a micro-benchmark suite designed to focus on the fundamental building blocks of common system applications, such as databases, simulations, software development, and networking. The suite includes a set of small micro-benchmarks that measure system latency and bandwidth of data movement among the processor, memory, network, file system, and disk. These benchmarks are intended to provide reproducible numbers that can be used to compare different system implementations from various vendors and to uncover previously unknown bugs and design flaws. Imbench has been widely used and has shown a strong correlation between memory system performance and overall system performance. It is portable and can be run on a wide range of Unix systems, including AIX, BSDI, HP-UX, IRIX, Linux, FreeBSD, NetBSD, OSF/1, Solaris, SunOS, and Windows/NT. The benchmarks are written using standard, portable system interfaces and facilities, and they are freely distributed under the Free Software Foundation's General Public License. The suite includes a database of results from systems as of late 1995, which can be used for comparison purposes. Imbench focuses on latency and bandwidth because these are often the root causes of performance issues. The benchmarks are designed to measure the CPU overhead of a single request rather than the capacity of the system as a whole. The suite includes measures of memory bandwidth, interprocess communication bandwidth, cached I/O bandwidth, and various latency measurements, such as memory latency, operating system entry cost, signal handling cost, process creation times, context switching, and file system latency. The results from these benchmarks have been used to identify and correct critical performance problems and to provide insights into the trade-offs in processor cache design.