Kiểm tra sức mạnh CPU của VPS bằng sysbench

Chào các bạn, hôm nay chúng ta tiếp tục làm quen với sysbench. Ở bài trước chúng ta đã thực hành với việc kiểm tra ngưỡng đọc ghi database của VPS thông qua sysbench, đây là tính năng quan trọng hàng đầu của công cụ này. Tính năng khác mà nó cũng rất nổi bật là kiểm tra sức mạnh tính toán của CPU.

Nếu Geekbench6 (mà chúng ta thường dùng nó qua YABS để kiểm tra) nghiêng về chấm điểm tổng hợp các nhiệm vụ, ở đó CPU sẽ chiếm trách nhiệm chính nhưng RAM & ổ lưu trữ cũng ảnh hưởng nhất định thì bài chấm điểm CPU của sysbench có tính cô lập nhiều hơn, nó hoàn toàn chỉ tập trung vào sức tính toán của CPU mà thôi.

Bây giờ chúng ta sẽ đi vào câu lệnh.

Môi trường demo:

  • 1 VPS Vultr HP, CPU 1 lõi, 1GB RAM, AMD64 (giá 6$/tháng).
  • 1 VPS Vultr HP, CPU 2 lõi, 2GB RAM, AMD64 (giá 18$/tháng).
  • OS: Ubuntu LTS 24.04
  • Location: Nhật Bản.

Lưu ý: Chỉ test trên môi trường demo, không test trên VPS đã có website chính thức của bạn.

Hầu hết các bài kiểm tra được thực hiện trên VPS 1 lõi, 1GB RAM. Trừ bài test đa lõi (cần VPS có CPU từ 2 lõi trở lên thì mới có thông tin cần thiết).


1. Cài đặt sysbench

Nếu bạn nào cài rồi thì thôi, chưa cài thì làm theo các bước sau.

Trên Ubuntu, gõ lệnh sau để cập nhật danh sách kho lưu trữ (repositories):

sudo apt update

Tiếp đến là cài sysbench:

sudo apt install sysbench -y

2. Lệnh kiểm tra sức mạnh CPU

sysbench cpu run

Kết quả của lệnh trên: 4176,34 sự kiện (event) mỗi giây.

Kiểm tra CPU bằng sysbench lần 1

Ở đây sysbench giao cho CPU nhiệm vụ tính toán, đó là tìm tất cả các số nguyên tố từ 1 đến 10 ngàn, mỗi lần hoàn thành nhiệm vụ này thì được tính là xong một sự kiện (event).

Sysbench sẽ kiểm tra CPU trong khoảng thời gian 10s sẽ xử lý được bao nhiêu sự kiện, sau đó chia trung bình để biết tốc độ tính toán trên giây của CPU.


3. Hiểu về latency

Cột kết quả quan trọng khác mà bạn cần để ý là latency, nó cho biết mỗi sự kiện cần bao nhiêu thời gian để xử lý xong. Đơn vị chung là ms (1 giây = 1000ms)

  • min: thời gian tối thiểu để xử lý một sự kiện, kết quả trên là 0,22ms
  • avg: thời gian trung bình của tất cả các sự kiện, kết quả trên là 0,24ms
  • max: thời gian tối đa để xử lý một sự kiện, kết quả trên là 101,10 ms
  • 95th percentile: 95% các sự kiện được xử lý trong khoảng thời gian bao lâu? kết quả ở trên là 0,27ms
  • sum: tổng thời gian của các sự kiện, ở trên là 9984,04ms (~10s)

Cái min & avg & 95th mà có các giá trị không chênh lệch nhau nhiều (như trong kết quả trên) thường cho thấy là hệ thống hoạt động rất ổn định.


4. Không phải lần kiểm tra nào kết quả cũng giống hệt nhau

Đây là điều bạn cần lưu ý đầu tiên, mặc dù kết quả sẽ khác, nhưng chúng thường không chênh nhiều. Dĩ nhiên cách an toàn là kiểm tra vài lần để xem kết quả, và lấy kết quả ở giữa.

Ví dụ tôi test thêm 2 lần nữa:

Kiểm tra CPU bằng sysbench lần 2
Kiểm tra CPU bằng sysbench lần 3

5. Tăng thời gian kiểm tra để có kết quả ổn định hơn

Mặc định sysbench chỉ test trong 10s, bạn có thể tăng thời gian này lên thành 30s, hoặc 60s, quan sát kéo dài hơn thường được cho là kết quả có tính ổn định tốt hơn. Sử dụng cờ --time=<số giây> để điều chỉnh.

Lệnh:

sysbench cpu --time=30 run

Kết quả:

Tăng thời gian test CPU để kết quả ổn định hơn

6. Bài toán khó hơn

Mặc định bài toán tìm các số nguyên tố từ 1 đến 10 ngàn, nhưng bạn có thể làm bài toán khó hơn bằng cách yêu cầu tìm các số nguyên tố từ 1 đến 20 ngàn. Điều chỉnh điều này thông qua cờ --cpu-max-prime=20000

Câu lệnh:

sysbench cpu --cpu-max-prime=20000 --time=30 run

Kết quả:

Bài toán khó hơn, tìm các số nguyên tố từ 1 đến 20 ngàn

7. Khi so sánh, quan trọng là phải cùng thước đo

Bất kể bạn có tăng thời gian đo hay làm bài toán khó hơn hay không, điều quan trọng khi so sánh giữa các VPS với nhau thì chúng cần phải được đo với cùng kiểu thước.

  • Nếu kiểm tra 30s thì tất cả các VPS đều cần kiểm tra cùng 30s.
  • Nếu nâng bài toán từ mặc định 10 ngàn lên 20 ngàn thì tất cả các VPS cũng phải tương tự.

Đặc biệt chú ý đến cờ --cpu-max-prime vì nó ảnh hưởng mạnh đến kết quả cuối cùng.


8. CPU nhiều lõi

Đối với VPS có CPU nhiều lõi, để tính chính xác sức mạnh tổng hợp của các lõi, bạn cần bổ sung thêm cờ --threads=<số lõi>

PS: nếu không biết VPS có bao nhiêu lõi, bạn hãy sử dụng câu lệnh:

nproc

Ví dụ VPS dưới đây CPU có 2 lõi, để tính toán đúng sức mạnh của nó tôi dùng lệnh sau:

sysbench cpu --threads=2 run

Kết quả:

Kiểm tra CPU có nhiều lõi, cần dùng thêm cờ --threads
Kiểm tra CPU có nhiều lõi, cần dùng thêm cờ –threads

Thử tăng thời gian kiểm tra:

Tăng thời gian kiểm tra của CPU lên 30s

Nếu bạn không sử dụng cờ --threads để chỉ định số lõi CPU đưa vào tính toán thì sysbench mặc định chỉ sử dụng 1 lõi để tính.

Đối với bài kiểm tra sức mạnh đa lõi, ta cần lưu ý thêm chỉ số Threads fairness (mức độ cân bằng của lõi) chỉ đến khả năng phân chia nhiệm vụ đồng đều giữa các lõi.

Như ví dụ ở trên chúng có sự phân chia rất tốt, khi các events có độ lệch chuẩn chưa tới 0,1% giá trị trung bình. Còn phân chia thời gian thì chính xác tuyệt đối giữa 2 lõi.

Với các bài kiểm tra đơn lõi, vì chỉ có 1 lõi, nên thông tin độ lệch chuẩn luôn là 0,00.

Vẫn VPS đó nhưng không chỉ định số lõi CPU:

Không chỉ định số lõi, kết quả sẽ chỉ 1 lõi được tính

Viết một bình luận