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

Không copy được giữa máy Windows và máy ảo qua mRemoteNG/RDP: Nguyên nhân và cách sửa
Không copy được giữa máy Windows và máy ảo qua ...

mRemoteNG Remote Desktop RDP Clipboard Redirection rdpclip.exe VPS Windows ...

Hướng dẫn bật Nested Virtualization trên ESXi để chạy Android Studio Emulator trong máy ảo Windows
Hướng dẫn bật Nested Virtualization trên ESXi để chạy ...

Nested Virtualization ESXi VMware Android Studio Android Emulator WHPX Hyper-V ...

PITR (Point In Time Recovery) là gì? Khôi phục Database về đúng thời điểm cần thiết
PITR (Point In Time Recovery) là gì? Khôi phục ...

PITR, Point In Time Recovery, PITR là gì, Database Recovery, PostgreSQL PITR, ...

Backup Database Full, Incremental, Differential khác nhau thế nào?
Backup Database Full, Incremental, Differential khác ...

Backup Database, Full Backup, Incremental Backup, Differential Backup, Backup ...

Database Cluster là gì? High Availability, Failover và Cluster Database hoạt động như thế nào?
Database Cluster là gì? High Availability, Failover và ...

Database Cluster, Database Cluster là gì, High Availability Database, Database ...