Education logo

Server Hardware Engineering using Sysbench

An overview about Hardware Engineering and how to Sysbench to benchmark

By Maran KrishnamoorthyPublished about a year ago 10 min read
Like

Hardware engineering is the branch of engineering that deals with the design, development, and maintenance of computer hardware, including physical components such as circuit boards, processors, and memory. It involves the application of electrical engineering and materials science principles to the design of computer systems and related devices. Hardware engineers work on a wide range of projects, including computer systems, smartphones, tablets, and other electronic devices. They may also work on the development of specialized hardware for specific applications, such as medical equipment or aerospace technology.

Engineering the server hardware

Engineering server hardware involves a process that includes several steps, such as planning, design, assembly, testing, and deployment. Here's a general overview of the process:

• Planning: This step involves identifying the requirements for the server hardware, such as the number of users, the expected workload, and the required performance level. It also involves determining the budget and selecting the appropriate hardware components, such as processors, memory, storage, and networking.

• Design: This step involves creating detailed specifications for the server hardware, such as the number of processors, the amount of memory, the type of storage, and the networking configuration. This step also involves selecting the appropriate motherboard, power supply, and cooling system.

• Assembly: This step involves physically assembling the server hardware according to the specifications developed in the design step. This includes installing the processors, memory, storage, and other components onto the motherboard and connecting the various cables and peripherals.

• Testing: This step involves testing the assembled server hardware to ensure that it meets the specifications and performs as expected. This includes running diagnostic tests on the processors, memory, storage, and networking, as well as performing benchmark tests to measure the server's performance.

• Deployment: This step involves installing the server hardware in the appropriate location and configuring it for use. This includes setting up the operating system, installing any necessary software, and configuring the network settings.

• Maintenance: This step involves Regularly maintaining the server hardware to ensure that it continues to perform as expected. This includes monitoring the server's performance, replacing failed components, and upgrading the hardware or software as necessary.

It's also important to note that depending on the server hardware's purpose, there may be specific compliance, security and performance requirements to follow.

Designing the hardware for our needs

Key Components of Hardware

Creating detailed specifications for the server hardware is an important step in the process of engineering server hardware. This step involves determining the specific hardware components that will be used in the server, and how they will be configured to meet the requirements identified in the planning step. Some of the key considerations in creating detailed specifications for server hardware include:

• Processor: The type, number, and speed of processors that will be used in the server. This will depend on the workload and performance requirements of the server, as well as the budget.

• Memory: The type, amount, and speed of memory that will be used in the server. This will also depend on the workload and performance requirements of the server.

• Storage: The type, amount, and configuration of storage that will be used in the server. This may include traditional hard drives, solid-state drives, and/or network storage.

• Networking: The type, number, and configuration of network interfaces that will be used in the server. This may include Ethernet, Fibre Channel, or InfiniBand interfaces, among others.

• Motherboard: The type and configuration of the motherboard that will be used in the server, which is the main circuit board of the server. This will depend on the processors, memory, storage, and networking that are being used.

• Power supply and cooling: The type and configuration of the power supply and cooling system that will be used in the server. This will depend on the power requirements of the server and the environment in which it will be deployed.

• Operating System: The type and version of operating system that will be used on the server, which will depend on the requirements of the workload and the applications being run on the server.

• Additional Hardware: any additional hardware that may be required such as Graphics card, TPM, RAID card, and any other hardware specific to the use case.

It's also important to note that these specifications should be clearly defined, and should be tested and verified before finalizing the design.

Testing the server hardware

Testing the assembled server hardware is an important step in the process of engineering server hardware. This step involves running diagnostic tests and benchmark tests to ensure that the server meets the specifications and performs as expected. Here are some common tests that may be performed when testing server hardware:

• Power-on self-test (POST): This is a basic diagnostic test that is run when the server is first powered on. It tests the basic functionality of the hardware components, such as the processors, memory, storage, and networking.

• Memory test: This test checks the functionality and integrity of the server's memory. This test can include a variety of memory tests such as memory stress, memory bandwidth, and memory latency.

• Processor test: This test checks the functionality and performance of the server's processors. This test can include a variety of processor tests such as processor stress, processor bandwidth, and processor latency.

• Disk test: This test checks the functionality and performance of the server's storage. This test can include a variety of disk tests such as disk stress, disk bandwidth, and disk latency.

• Network test: This test checks the functionality and performance of the server's networking. This test can include a variety of network tests such as network stress, network bandwidth, and network latency.

• Benchmark test: This test measures the server's overall performance by running a standardized set of tests that are designed to simulate real-world workloads. This can include tests such as SPEC CPU, TPC-C, and TPC-E, among others.

• Compliance and security test: This test ensures that the server complies with all relevant regulations and standards and is secure. This can include tests such as SOC2, PCI-DSS, and ISO 27001, among others.

It's also important to note that these tests should be run on the assembled server hardware, as well as on the individual components before assembly, to ensure that everything works as expected.

Benchmarking a server hardware

When benchmarking hardware, several industry standards may be used to ensure that the results are accurate and comparable to other systems. Some of the common standards used for benchmarking include:

• SPEC: The Standard Performance Evaluation Corporation (SPEC) publishes a suite of benchmarking tools that are widely used to measure the performance of computer systems, including processors and memory.

• TPC: The Transaction Processing Performance Council (TPC) publishes a set of benchmarking tools that are used to measure the performance of databases and other transaction-processing systems.

• Sysbench: Sysbench is an open-source benchmarking tool that is commonly used to measure the performance of systems running Linux, including processors and memory.

• Linpack: Linpack is a benchmarking tool that is widely used to measure the performance of high-performance computing systems, including processors and memory.

• Geekbench: Geekbench is a benchmarking tool that is commonly used to measure the performance of processors and memory in personal computers and mobile devices.

• PCMark: PCMark is a benchmarking tool that is commonly used to measure the performance of personal computers and mobile devices, including processors and memory.

• GPGPU-Sim: GPGPU-Sim is a benchmarking tool that is commonly used to measure the performance of processors and memory in systems that use Graphics Processing Units (GPUs) to accelerate computation.

It is important to note that the specific industry standards used will depend on the type of hardware being benchmarked and the intended use of the system.

About Sysbench

Sysbench is a widely used open-source tool that can be used to test and benchmark various aspects of server hardware, including memory, processors, and disk performance. By using sysbench, engineers can run tests to identify bottlenecks, measure performance, and validate that the hardware meets the specifications and requirements of the workload.

To use sysbench for server hardware engineering, the process would involve several steps such as planning and creating detailed specifications for the server hardware, assembling the hardware, and testing and benchmarking the hardware using sysbench. The engineer would also need to follow industry standards and best practices during the process.

As part of the testing process, sysbench can be used to conduct various tests such as memory tests, processor tests, disk tests, and benchmark tests. This can help identify any issues or bottlenecks in the hardware and ensure that it meets the performance requirements of the workload.

Sysbench is a versatile benchmarking tool that can be used to test various aspects of a system's performance. Here are some of the test cases that can be performed using sysbench:

• Memory: The memory test measures the performance of the system's memory subsystem by performing a series of memory allocation and access operations.

• Processor: The CPU test measures the performance of the system's processors by performing a series of mathematical operations, such as prime number generation and trigonometric calculations.

• Disk: The fileio test measures the performance of the system's disk subsystem by performing a series of file read and write operations. The OLTP test measures the performance of the system's disk subsystem by performing a series of read and write operations on a small number of large files.

• Database: The OLTP test can also be used to measure the performance of the system's database by performing a series of read and write operations on a database schema.

• Threads: The threads test measures the performance of the system's ability to handle multiple concurrent threads.

• Mutex: The mutex test measures the performance of the system's ability to handle mutual exclusion locks.

• Timers: The timers test measures the performance of the system's timer implementation.

• Lua: The Lua test measures the performance of the Lua interpreter.

• Locking: The locking test measures the performance of the system's ability to handle locks.

• Latency: The latency test measures the performance of the system's ability to handle latency.

It is important to note that sysbench can be configured to run these tests with different parameters and settings, such as the number of threads or the size of the test data, to measure the performance of the system under different workloads.

Sample Report of Sysbench Testing

A sample report of sysbench would typically include information about the system's hardware and software configuration, as well as the results of the benchmarking tests. Here is an example of what a sysbench report might look like:

System Information:

Operating System: Ubuntu 20.04 LTS

CPU: Intel Core i7-8700K (6 cores, 12 threads)

Memory: 16 GB DDR4-2400

Disk: 512 GB NVMe SSD

Test Results:

Memory Test:

Total operations: 1000000

Allocation size: 16384 bytes

Execution time: 15.7234 seconds

Memory operations per second: 63827.54

CPU Test:

Number of threads: 12

Execution time: 35.1234 seconds

Prime numbers generated per second: 84812.54

File I/O Test:

Test file size: 100 GB

Block size: 8192 bytes

Execution time: 45.1234 seconds

Read operations per second: 2200.54

Write operations per second: 3200.54

OLTP Test:

Number of tables: 8

Number of rows per table: 1000000

Number of read/write operations: 1000000

Execution time: 30.1234 seconds

Read operations per second: 33333.33

Write operations per second: 44444.44

It is important to note that this is a fictional sample and the actual results may vary depending on the system that you are benchmarking. The report should also include the version of Sysbench used, the test parameters and configuration used while running the test.

It's important to note that while sysbench is a powerful tool for testing and benchmarking server hardware, it is not a substitute for other testing and validation processes. It should be used in conjunction with other tools and processes to ensure that the hardware is fully tested and validated before deployment.

In conclusion, sysbench is a valuable tool for engineers who are involved in server hardware engineering and can be used to test and benchmark various aspects of server hardware, including memory, processors, and disk performance, to ensure that the hardware meets the specifications and requirements of the workload.

product reviewhow tocourses
Like

About the Creator

Maran Krishnamoorthy

Technologist and with Infrastructure Domain for more than a decade. Wish to share what I have learnt over a period of time.

Reader insights

Be the first to share your insights about this piece.

How does it work?

Add your insights

Comments

Maran Krishnamoorthy is not accepting comments at the moment

Want to show your support? Send them a one-off tip.

Find us on social media

Miscellaneous links

  • Explore
  • Contact
  • Privacy Policy
  • Terms of Use
  • Support

© 2024 Creatd, Inc. All Rights Reserved.