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.

 

 

 

 

 

 

 

 

SaKuRai

Xin chào, Mình là Sakurai. Blog này là nơi để note lại và chia sẻ những kiến thức, kinh nghiệm mà mình và anh em trong Team. Cảm ơn các bạn đã quan tâm theo dõi!

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *