UnixBench is a performance testing tool for unix-like (Unix, BSD, Linux) systems, an open source tool, which is widely used to test the performance of linux system hosts. The main test items of Unixbench include: system call, read and write, process, graphical test, 2D, 3D, pipeline, operation, C library and other system benchmark performance to provide test data.
The latest version of UnixBench5.1.3 includes system and graphic tests. If you need to test graphics, you need to modify the Makefile, do not comment out "GRAPHIC_TESTS = defined", and the system needs to provide the x11perf command gl_glibs library.
The script below uses the latest version of UnixBench 5.1.3 to test, annotated the test items about graphics (most VPSs do not have a graphics card or an integrated display, so there is no need to test the graphics performance), after running for 10-30 minutes (according to the CPU core Quantity, operation time varies) to get a score, the higher the better.
testing method:
Test item:
Dhrystone 2 using register variables
This item is used to test string handling, because there is no floating-point operation, it is deeply involved in software and hardware design (hardware and software design), compilation and linking (compiler and linker options), code optimization (code Optimazaton), the impact on memory cache (cache memory), wait states (wait states), and integer data types (integer data types).
Double-Precision Whetstone
This one tests the speed and efficiency of floating-point operations. This test consists of several modules, each of which includes a set of operations for scientific computing. A wide range of c functions: sin, cos, sqrt, exp, log are used for integer and floating-point mathematical operations, array access, conditional branch (conditional branch) and program calls. This test tests both integer and floating-point arithmetic operations.
Execl Throughput
This test examines the number of execl system calls that can be executed per second. The execl system call is a member of the exec family of functions. It is a front end to the execve() function, like some other commands like it.
File copy
tests the rate at which data is transferred from one file to another. Each test uses a different size buffer. This test for file read, write, and copy operations counts the number of file read, write, and copy operations within the specified time (default is 10s).
Pipe Throughput
(pipe) is the simplest way to communicate between processes. Pipe throughput here refers to the number of times a process can write 512 bytes of data to a pipe in one second and then read it back. It should be noted that pipe throughtput has no corresponding real existence in actual programming.
Pipe-based Context Switching
This tests the number of times two processes (per second) exchange an ever-increasing integer through a pipe. This point is very similar to some applications in real programming. This test program first creates a sub-process, and then performs two-way pipeline transmission with this sub-process.
Process Creation
tests the number of times a process can create a child process and then withdraw the child process per second (the child process must exit immediately). The focus of process creation is the creation and memory allocation of the new process process control block (process control block), that is, the focus on memory bandwidth. In general, this test is used to compare different implementations of the operating system process creation system call.
System Call Overhead
tests the cost of entering and leaving the operating system kernel, that is, the cost of a system call. It does this with a small program that repeatedly calls the getpid function.
Shell Scripts
tests the number of times a process can concurrently start n copies of a shell script within one second, and n generally takes the value of 1, 2, 4, and 8. (I take 1, 8 when testing). This script performs a series of transformations on a data file.
The following is the running score of a 512MB, 2-core, OpenVZ VPS of mine: