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

Critical - CVE 2026 98432 - Nguy cơ tấn công từ xa vào Linux - Ubuntu, Centos, Debian
Critical - CVE 2026 98432 - Nguy cơ tấn công từ xa vào ...

Critical - CVE 2026 98432 - Nguy cơ tấn công từ xa vào Linux - Ubuntu, Centos, ...

CXMT và DRAM 4F² cho thấy Trung Quốc tiến nhanh nhưng chưa thể kết luận Mỹ thua cuộc
CXMT và DRAM 4F² cho thấy Trung Quốc tiến nhanh nhưng ...

CXMT và DRAM 4F² cho thấy Trung Quốc tiến nhanh nhưng chưa thể kết luận Mỹ thua ...

Cảnh báo NAS Synology, XPEnology bị mã hóa dữ liệu: Vì sao bị tấn công và cách xử lý?
Cảnh báo NAS Synology, XPEnology bị mã hóa dữ liệu: Vì ...

Cảnh báo NAS Synology, XPEnology bị mã hóa dữ liệu: Vì sao bị tấn công và cách ...

Cảnh báo Telegram trên iPhone: Nguy cơ bị hacker tấn công qua sticker và cách phòng tránh
Cảnh báo Telegram trên iPhone: Nguy cơ bị hacker tấn ...

Cảnh báo Telegram trên iPhone: Nguy cơ bị hacker tấn công qua sticker và cách ...

PHP2Shell làm Nhật Bản “khốn đốn”: Vì sao nhiều dịch vụ tạm dừng, còn thế giới chịu ảnh hưởng ra sao?
PHP2Shell làm Nhật Bản “khốn đốn”: Vì sao nhiều dịch ...

PHP2Shell làm Nhật Bản “khốn đốn”: Vì sao nhiều dịch vụ tạm dừng, còn thế giới ...

PHP2Shell: Hai lỗ hổng nghiêm trọng đe dọa hàng triệu website – Cách kiểm tra và khắc phục
PHP2Shell: Hai lỗ hổng nghiêm trọng đe dọa hàng triệu ...

PHP2Shell: Hai lỗ hổng nghiêm trọng đe dọa hàng triệu website – Cách kiểm tra ...