Hướng dẫn stresstest MariaDB - kiểm tra khả năng chịu tải của DB sử dụng mysqlslap

Hướng dẫn stresstest MariaDB - kiểm tra khả năng chịu tải của DB sử dụng mysqlslap

Hướng dẫn stresstest MariaDB - ​​ kiểm tra khả năng chịu tải của DB​​ sử dụng mysqlslap

1/​​ Giới thiệu:

myslslap là tool được tích hợp sẵn​​ sau khi mariadb.​​ sử dụng mysqlslap rất đơn giản và nhẹ để test DB cài lên phần cứng có khả năng chịu tải được bao nhiêu (load-testing). Bài viết này mình stresstest cho MariaDB.​​ Sử dụng mysqlslap​​ cũng giúp đánh giá được phần cứng làm việc có hiệu quả​​ hay không.

2/​​ Câu lệnh:

2.1/ Test concurrency

mysqlslap --user=root --auto-generate-sql --concurrency=100

concurrency: là kết nối đồng thời đến database, đặt càng cao thì server càng cần phải mạnh​​ mới đáp ứng được.

Trường hợp của mình chạy VPS: 4 cores, ram 4GB, ổ cứng HDD. (Nếu ổ SSD thì càng mạnh)

file binary mysqlslap được lưu trữ tại:​​ /usr/bin/mysqlslap

Kết quả:

Benchmark

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Average number of seconds to run all queries: 9.998 seconds

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Minimum number of seconds to run all queries: 9.998 seconds

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Maximum number of seconds to run all queries: 9.998 seconds

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Number of clients running queries: 100

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Average number of queries per client: 0

Thử test với concurrency lớn hơn xem sao:

mysqlslap --user=root --auto-generate-sql --concurrency=200

.

.

.

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

Benchmark

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Average number of seconds to run all queries: 10.145 seconds

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Minimum number of seconds to run all queries: 10.145 seconds

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Maximum number of seconds to run all queries: 10.145 seconds

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Number of clients running queries: 200

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Average number of queries per client: 0

  • Như vậy VPS của mình chỉ có thể chịu được ngưỡng concurrency từ​​ 100 đến dưới 200

2.2/ Test​​ querries

 

mysqlslap --user=root --auto-generate-sql --concurrency=100 --number-of-queries=10000  ​​ ​​​​ 

Benchmark

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Average number of seconds to run all queries: 93.592 seconds

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Minimum number of seconds to run all queries: 93.592 seconds

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Maximum number of seconds to run all queries: 93.592 seconds

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Number of clients running queries: 100

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Average number of queries per client: 100

khi thêm querries sẽ xác định được client. lấy số querries/concurrency = client.

như test trên thì 100 client đồng thời​​ truy vấn 100 lần đến DB thì mất trung bình 93.592 seconds

3/​​ Lỗi khi test:

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Error when connecting to server: 1040 Too many connections

mysqlslap: Cannot run query INSERT INTO t1 VALUES (364531492,'qMa5SuKo4M5OM7ldvisSc6WK9rsG9E8sSixocHdgfa5uiiNTGFxkDJ4EAwWC2e4NL1BpAgWiFRcp1zIH6F1BayPdmwphatwnmzdwgzWnQ6SRxmcvtd6JRYwEKdvuWr') ERROR : Table 'mysqlslap.t1' doesn't exist

Xử lý: bỏ qua đi và test với concurrency thấp hơn.

5/​​ Kết luận:​​ 

mysqlslap thực sự thuận tiện và đơn giản.

6/Link tham khảo:

https://www.techrepublic.com/blog/how-do-i/how-do-i-stress-test-mysql-with-mysqlslap/

https://mariadb.com/kb/en/mysqlslap/

 

cảm ơn các bạn đã quan tâm theo dõi.

 

 

 

 

 

 

 

 

BÀI VIẾT CÙNG CHUYÊN MỤC

Hướng dẫn nâng cấp CyberPanel 3.0.6 trên Ubuntu 22.04
Hướng dẫn nâng cấp CyberPanel 3.0.6 trên Ubuntu 22.04

Hướng dẫn nâng cấp CyberPanel 3.0.6 trên Ubuntu 22.04

Kết hợp Let’s Encrypt SSL với Cloudflare Proxy: Mô hình HTTPS an toàn cho website
Kết hợp Let’s Encrypt SSL với Cloudflare Proxy: Mô ...

Kết hợp Let’s Encrypt SSL với Cloudflare Proxy: Mô hình HTTPS an toàn cho ...

Hướng dẫn nâng cấp GitLab EE 19.2.4 lên 19.3.2 an toàn trên Ubuntu 24.04
Hướng dẫn nâng cấp GitLab EE 19.2.4 lên 19.3.2 an toàn ...

Hướng dẫn nâng cấp GitLab EE 19.2.4 lên 19.3.2 an toàn trên Ubuntu 24.04

Mẫu nhúng HTML cho khóa học – Course trên Canvas LMS tại CloudX
Mẫu nhúng HTML cho khóa học – Course trên Canvas LMS ...

Mẫu nhúng HTML cho khóa học – Course trên Canvas LMS tại CloudX

Telegram biến mất khỏi App Store: Người dùng iPhone tải và cài đặt thế nào cho an toàn?
Telegram biến mất khỏi App Store: Người dùng iPhone ...

Telegram biến mất khỏi App Store: Người dùng iPhone tải và cài đặt thế nào cho ...

CẢNH BÁO BẢO MẬT: Lỗ Hổng Nghiêm Trọng CVE-2026-42533 Trên NGINX – Cập Nhật Ngay Để Tránh Rủi Ro Bị Tấn Công
CẢNH BÁO BẢO MẬT: Lỗ Hổng Nghiêm Trọng CVE-2026-42533 ...

CẢNH BÁO BẢO MẬT: Lỗ Hổng Nghiêm Trọng CVE-2026-42533 Trên NGINX – Cập Nhật ...