Trong bài blog này, tôi sẽ trình bày cách sử dụng sysbench để kiểm tra hiệu suất CPU, bộ nhớ và lưu trữ của hệ thống Linux. Tôi cũng có cơ hội tiếp cận với một số phần cứng đa dạng (laptop, desktop, máy chủ/server). Vì thế tôi sẽ cung cấp một số kết quả cho bạn để tiện so sánh.
Các nền tảng mà tôi sẽ benchmark là:
- Một máy tính xách tay mới có bộ xử lý Intel di động và SSD;
- Một máy tính để bàn với bộ xử lý Intel và SSD;
- Một máy chủ cũ được trang bị 4 bộ xử lý Xeon, bộ điều khiển RAID và các ổ đĩa quay (ví dụ ổ HDD);
- Một máy chủ với CPU AMD, bộ điều khiển RAID và các ổ SSD.
Cập nhật vào tháng 6/2024: Tôi đã bổ sung thêm một VirualBox VM để so sánh.
1. Cài đặt
Bạn có thể cài đặt sysbench với câu lệnh sau:
sudo apt install sysbench
2. Kiểm tra CPU
Đơn luồng (single thred)
Bạn có thể chạy kiểm tra sysbench cpu với câu lệnh sau:
sysbench cpu run
Kết quả thể hiện bằng “sự kiện mỗi giây” (4040 như ví dụ bên dưới):

Đa luồng (multi-thread)
Theo mặc định, sysbnech chạy kiểm tra cpu với luồng đơn. Để kiểm tra hiệu suất đa luồng của CPU, bạn trước hết cần phải xác định xem số lượng luồng có sẵn:
grep processor /proc/cpuinfo | wc -l
Sau đó bạn có thể chạy sysbench lại lần nữa, chỉ định số luồng muốn kiểm tra:
sysbench cpu run --threads=<threads>
Kết quả:
| Nền tảng | CPU | Đơn luồng [sk/giây] | Luồng | Đa luồng [sk/giây] |
|---|---|---|---|---|
| Laptop | Intel Core i7-1260P | 3354 | 16 | 33283 |
| Desktop | Intel Core i5-12400F | 3773 | 12 | 21730 |
| Server 1 | 4 x Xeon E7-4830 v3 | 834 | 96 | 55604 |
| Server 2 | AMD EPYC 7402P | 1662 | 48 | 42003 |
3. Bộ nhớ (memory)
Bây giờ, bạn có thể đo lường tốc độ của bộ nhớ với câu lệnh:
sysbench memory run
Kết quả là tốc độ truyền dữ liệu đo được, được trình bày với đơn vị MiB/giây (sec).
Nếu bạn muốn so sánh kết quả của bạn với tôi, bạn cũng có thể kiểm tra loại và tốc độ của cài đặt memory bằng lệnh:
sudo dmidecode --type 17
Kết quả:
| Nền tảng | Memory | Tốc độ truyền [MiB/sec] |
|---|---|---|
| Laptop | LPDDR5 6400 MHz | 10691 |
| Desktop | DDR4 2133 MHz | 10000 |
| Server 1 | DDR4 2133 MHz | 4525 |
| Server 2 | DDR4 3200 MHz | 5822 |
4. Storage (lưu trữ)
Bạn cũng có thể sử dụng sysbench để kiểm tra hiệu suất của storage của thiết bị. Điều này cần tiến hành tinh tế hơn một chút vì nhiều lý do khác nhau:
- Kiểm tra hiệu suất storage trước hết yêu cầu tạo một số file kiểm tra;
- SSD và card RAID có trình điều khiển tích hợp (build-in) kèm với cache (bộ nhớ đệm) sẽ ảnh hưởng lớn đến kết quả;
- Các thông số kiểm tra mặc định của sysbench không phản ánh mức sử dụng thực tế của thiết bị lưu trữ.
Vì vậy, điều đầu tiên cần làm là tạo ra các file sẽ được sử dụng để kiểm tra:
sysbench fileio --file-total-size=5G --file-num=5 prepare
Như đã đề cập ở phần trên, tôi sẽ bổ sung thêm các tham số để chạy kiểm tra. Điều này sẽ có tính đại diện tốt hơn cho việc sử dụng thực tế, và cho phép trình điều khiển (controller) và bộ nhớ đệm (cache) được sử dụng trong quá trình kiểm tra:
- Thực hiện kiểm tra với mode
async; - Đồng bộ hóa storage chỉ một lần vào cuối bài kiểm tra.
- Đối với kiểm tra truy cập tuần tự (sequential access), hãy sử dụng các khối lớn hơn 1MB;
- Đối với kiểm tra truy cập ngẫu nhiên (random access), hãy sử dụng các khối nhỏ hơn 4KB;
Để kiểm tra truy cập ngẫu nhiên của storage:
sysbench fileio --file-total-size=5G --file-num=5 --file-io-mode=async --file-fsync-freq=0 --file-test-mode=rndrd --file-block-size=4k run
sysbench fileio --file-total-size=5G --file-num=5 --file-io-mode=async --file-fsync-freq=0 --file-test-mode=rndwr --file-block-size=4k run
Để kiểm tra truy cập tuần tự của storage:
--file-test-mode=seqrd --file-block-size=1M run
sysbench fileio --file-total-size=5G --file-num=5 --file-io-mode=async --file-fsync-freq=0 --file-test-mode=seqwr --file-block-size=1M run
Kết quả:
| Nền tảng | Storage | rnd read [MiB/sec] | rnd write [MiB/sec] | seq read [MiB/sec] | seq write [MiB/sec] |
|---|---|---|---|---|---|
| Laptop | 2TB Samsung SSD 980 PRO NVMe | 4493 | 2853 | 12307 | 4955 |
| Laptop | 2TB Crucial X8 portable SSD | 4428 | 1966 | 12278 | 1616 |
| Desktop | 2TB Samsung SSD 990 PRO NVMe | 4206 | 3403 | 15925 | 8165 |
| Server 1 | RAID controller with a single 15000 rpm SAS spinning disk | 1091 | 48 | 3326 | 418 |
| Server 1 | RAID controller with an array of 15000 rpm SAS spinning disks | 1055 | 22 | 2905 | 490 |
| Server 2 | RAID controller with an array of 3 SATA SSD | 2615 | 1453 | 10472 | 2736 |
Ngoài ra, lưu ý rằng bạn có thể sử dụng câu lệnh sau để kiểm tra kiểu storage trên hệ thống:
sudo lshw -class disk -class storage

5. VirtualBox VM
Để thêm một số yếu tố so sánh, tôi triển khai một máy chủ ảo VirtualBox VM trên Server 2. VM có 4 core (lõi), RAM có 4GB, và một đĩa VDI duy nhất. Dưới đây là các kết quả mà tôi nhận được, so sánh với các kết quả của máy chủ host:
| VM | Host server | Khác biệt | |
| CPU : Single thread [evts/sec] | 1572 | 1662 | -5% |
| CPU : 4 threads [evts/sec] | 5996 | 6631 | -9% |
| Memory : Transfer speed [MiB/sec] | 5111 | 5822 | -12% |
| Storage : rnd read [MiB/sec] | 78 | 2615 | -97% |
| Storage : rnd write [MiB/sec] | 134 | 1453 | -90% |
| Storage : seq read [MiB/sec] | 1187 | 10472 | -88% |
| Storage : seq write [MiB/sec] | 795 | 2736 | -70% |
Như chúng ta có thể dự đoán, có một hình phạt nhỏ khi sử dụng VM đối với CPU và bộ nhớ. Tuy nhiên hình phạt với storage là rất lớn: rơi rụng tới 90% hiệu suất!
Tôi đã kiểm tra lại trên một máy chủ khác và đi đến cùng kết luận: sử dụng virtual disk là nguyên nhân gây suy giảm hiệu suất khoảng 90%.
(Dịch từ bài viết Benchmark Linux systems with sysbench, của Thibault Debatty, bài đăng được cấp phép CC BY-SA 4.0)