Bilibili Server Basic Performance Tuning and Evaluation Practice – AMD Articles

853f55fadf91c30d1ad5889814a9b7187ce179ec

Author of this issue

SYS team

The System Department (SYS) team of Station B provides infrastructure support for all services of Station B, including data center, network, computing power, system software, and hybrid cloud management.

01 Background

As we all know, Station B has become an Internet company with considerable size without knowing it. Xiaopozhan, which has its own IDC, will select and iterate on hardware devices represented by servers every year. There are many evaluation indicators for server selection, among which performance is one of the most important indicators. Server performance involves server hardware, operating systems, and business applications. In order to accurately evaluate server hardware performance, performance optimization at the server hardware and operating system levels is also an important part of the work of the system team at station B. In this article, the system team of station B is based on the single-socket AMD Milan CPU server, and briefly introduces the basic performance tuning and evaluation of the server. I hope to be able to attract others, learn together, and iteratively update the long-term work of server performance tuning and evaluation.

1.1 Server Performance Benchmarking

Server computing performance is an aspect of measuring server hardware performance, and it is also the most important aspect. Server computing performance is largely determined by CPU performance, and there are many dimensions of CPU performance evaluation: simple architecture and generation, to main frequency and number of cores, to interconnection protocol, number of PCIe lanes, TDP and other values ​​available. The comparison is very intuitive, but there are many practical problems. For example, CPUs of the same generation, such as all Rome, all Milan, or all Ice Lake, are very intuitive to compare with each other. But if you compare Rome and Milan across different generations, or compare AMD Millan and Intel Ice Lake, or even compare x86 architecture and ARM architecture, the performance may be very different under the same frequency and number of cores, not to mention actual production. The environment will also be affected by various aspects such as memory, IO, network, operating system, and business. Therefore, it is not easy to reasonably quantify the computing power of the CPU.

In order to evaluate server computing performance scientifically, objectively and comprehensively, the community has gradually formed some common benchmarking tools, such as common UnixBench, GeekBench, SysBench, etc. We choose the industry-recognized CPU-intensive benchmark suite SPEC CPU to evaluate server computing performance, which is more intuitive, accurate and comprehensive than MFLOPS, IPC and other evaluation indicators. SPEC is the abbreviation of Standard Performance Evaluation Corporation. It is an organization composed of computer manufacturers, system integrators, universities, research institutions, consulting and other companies. The goal of this organization is to establish and maintain a set of evaluation tools. Standards for computer systems. SPEC CPU 2017 is a benchmark performance evaluation suite that includes several benchmark tools, where different tools target different application areas. It mainly includes 4 parts:

  • Integer performance: SPECrate®2017 Integer, SPECspeed®2017 Integer
  • Floating-point arithmetic performance: SPECrate®2017 Floating Point, SPECspeed®2017 Floating Point

where rate represents throughput and speed represents processing speed. There are more than 40 sub-items subdivided under the four major items, and the CPU performance will be comprehensively tested in various load dimensions such as compilation, modeling, compression, AI, and codec. It should be noted that SPEC CPU mainly evaluates server computing performance. The test results are mainly related to CPU, memory, and compiler environment, and have nothing to do with factors such as disk and network. Therefore, SPEC CPU can intuitively evaluate the computing performance benefits brought by various optimizations. . (Note: SPEC CPU results are meaningful to compare with each other in the same environment. Some result data are blurred, and direct comparison with external data is not recommended)

1.2 Server performance optimization direction

The post Bilibili Server Basic Performance Tuning and Evaluation Practice – AMD article first appeared on Lenix Blog .

This article is reprinted from https://blog.p2hp.com/archives/9809
This site is for inclusion only, and the copyright belongs to the original author.