How to test server performance: a selection of several open source benchmarks

We continue our series of materials dedicated to testing server performance. Today we’ll talk about a couple of time-tested benchmarks that still support and update – NetPerf, HardInfo and ApacheBench.


Photo – Peter Balcerzak – CC BY-SA

Netperf

This is a tool for evaluating network bandwidth. It was developed by engineers from Hewlett-Packard. The tool includes two executables: netserver and netclient. To run the test, you need to run them on different machines. By default, netperf uses port 12865, but it can be replaced with the -p flag. The utility works with TCP and UDP over BSD Sockets, DLPI, Unix Domain Sockets and IPv6.

Today netperf is part of the Flent benchmarking toolkit. It is also used by a fairly large number of IT companies, such as Red Hat. Here is a description of the netperf service in one example for evaluating OpenShift performance:

apiVersion: v1
kind: Service
metadata:
  labels:
    app-name: netperf
  name: netperf
  namespace: your_project
spec:
  ports:
  - port: 12865
    protocol: TCP
    targetPort: 12865
  selector:
    app-name: netperf
  sessionAffinity: ClientIP
  type: ClusterIP

The official repository says netperf is licensed under a special Hewlett-Packard license. However, the author of the utility – Rick Jones (Rick Jones) – claims that it is framed in the best traditions of open source. Also note that recently updates for netperf have come out quite rarely. Perhaps this is due to the maturity of the product.

Netperf has analogues – for example, iperf2 and iperf3. They also allow you to test network bandwidth. The development of iperf3 began after the iperf2 repository fell into disrepair. The new version is written from scratch and is incompatible with the previous implementation, although it contains part of its code. Interestingly, after the release of iperf3, work on iperf2 began to boil again. As a result, the two tools have similar, but at the same time different functionality. For example, iperf2 is multi-threaded, and iperf3 only works with one thread.

Hardinfo

This is a utility for collecting information about hardware and operating system. It displays data on the operation of devices on: PCI, ISA PnP, USB, IDE, SCSI, as well as serial and parallel ports. But it can be used as a benchmark and monitoring tool.

HardInfo offers several tests. For example, CPU Blowfish – evaluates processor performance using cryptographic algorithms block symmetric encryption. There is a CPU N-Queens – a test from combinatorics. The system solves the chess problem of placing N queens on the board of N x N cells. She arranges the pieces so that none of them can attack the others. It is also worth noting the FPU FFT – a test for the fast calculation of the discrete Fourier transform and FPU Raytracing – the calculation of ray tracing when rendering a 3D scene.

The result in most tests is given in seconds and, accordingly, the smaller it is, the better. All reports are shown in HTML and txt formats.

Initially, the utility was developed as part of the BerliOS project. It included a hosting platform for open source applications (such as SourceForge) and several databases for documentation and profiles of open source developers. BerliOS was closed in 2014 due to insufficient funding. Today HardInfo is being developed by enthusiasts in a separate repository on GitHub.

Note that in the system sometimes bugs are encountered. It is known about a periodically occurring segmentation error, problems with displaying USB devices and several others.

Apachebench

Tool for stress testing HTTP servers. ApacheBench (AB) was designed to test Apache, but it can work on any other server. The tool is preinstalled on many Linux distributions.


Photos – Victor Freitas – Unsplash

The utility "bombards" the servers with a large number of requests. To start, enter the following command:

ab -n 100 -c 10 http://www.example.com/

It will send one hundred GET requests (at most ten of them will be transmitted simultaneously) to the test resource. At the output, the system will show the average time for processing requests, the total amount of data transferred, throughput and the number of errors.

Today, a large community has gathered around the utility. Fresh guides on how to configure and use ApacheBench regularly appear on the network.

Note that AB has an analogue – Apache jMeter, but with great features. For example, it allows you to generate requests from multiple computers, controlling the process from one of them. The program also implements authorization mechanisms for virtual users, and user sessions are supported. This tool is used by many IT companies, including cloud providers, such as Qualys.


We at 1cloud provide the Private Cloud service. This is a rental of virtual infrastructure with the ability to quickly customize the fleet of virtual servers.


Our cloud is built on the hardware of Cisco, Dell, NetApp. The equipment is located in several data centers: DataSpace (Moscow), SDN / Xelent (St. Petersburg), Ahost (Alma-Ata).


Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *