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.