fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 13 different types of I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio, and more), I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, and much more. It can work on block devices as well as files. fio accepts job descriptions in a simple-to-understand text format. Several example job files are included. fio displays all sorts of I/O performance information, including complete IO latencies and percentiles. Fio is in wide use in many places, for both benchmarking, QA, and verification purposes. It supports Linux, FreeBSD, NetBSD, OS X, OpenSolaris, AIX, HP-UX, and Windows.
System and Process Monitor in Java provides a JNI (Java Native Interface) implementation for monitoring global system resources and processes (outside JVM) via a unified (cross-platform) interface. The Java interface and all native libraries are compiled into a single JAR and are loaded transparently on any architecture upon request. It should be easy to embedd this code into your Java applications, either as a separate JAR or as one single application archive.
psinfo shows process information and statistics using the kernel /proc interface. This information includes: process state, environment, arguments and flags; CPU usage; scheduling; I/O usage; virtual memory status; pagefaults; capabilities; and signals. psinfo is useful for providing a detailed view of the current state of an application when diagnosing issues or performance problems.
tstime is a command that is similar to the time(1) command, but in addition to the runtime, it also prints the highwater memory usage (RSS+VMEM) of the controlled process. tsmon is a command that prints the runtime/highwater memory usage of every process that exits on the system until the tsmon is quit. These programs use the taskstats delay accounting interface of the Linux 2.6 kernel.
UnixBench provides a basic indicator of the performance of a Unix-like system. Multiple tests are used to test various aspects of the system's performance. These test results are then compared to the scores from a baseline system to produce an index value, which is generally easier to handle than the raw scores. The entire set of index values is then combined to make an overall index for the system. Some very simple graphics tests are included to measure the 2D and 3D graphics performance of the system. Multi-CPU systems are handled. If your system has multiple CPUs, the default behaviour is to run the selected tests twice: once with one copy of each test program running at a time, and once with N copies, where N is the number of CPUs.
MPIBurn is an MPI unicast benchmark. Modern inter-connect hardware handles broadcast messages with a different algorithm than that used for unicast messages. Just benchmarking broadcasts or N to N+1 messaging may not detect inter-connect malfunctions, so MPIBurn benchmarks any possible unicast connection while assuring to involve as many connections in parallel as possible. After each round, the peers are scrambled to ensure that the next round has completely different connection groups.
sdb is a really simple program to benchmark disks. It only writes/reads data sequentially to/from a file and calculates the performance of this action. A memory buffer is used for input/output to get values close to the real performance of the disk or RAID system. You can use flags like O_DIRECT and O_SYNC to avoid buffering by the operating system. It is similar to dd, but there are some differences, since dd was not created for benchmarking a disk. It is possible to initialize the buffer with random values before writing them to the disk or a file on the disk. It is a simple but effective program to get the maximum speed of a disk. Due to the simplicity, you will get the results much faster than with a more complex benchmark.