Test chịu tải bằng JMeter

Tram Ho

Mở đầu

Với mỗi lần thực thi chịu tải 10.000 request/giây khi chạy mỗi jmeter single unit thì không thể test được khả năng chịu tải cho nên tôi giới thiệu đến các bạn cách test bằng Jmeter cấu hình Cluster
Tham khảo nội dung sau để biết cách chạy test Jmeter local, còn việc tạo file jmeter cơ bản thì không đề cập ở bài viết này.
Test Jmeter trên môi trường local
Basic về test chịu tải

Overview về cấu hình Cluster

Chạy với cơ sở hạ tầng gồm master server, slave server (nhiều máy).
Mình sẽ đặt file setting lên Master server rồi cho chạy, Slave server sẽ tổng hợp log kết quả v.v.. lên cho Master server. Cho nên bên SLave server chỉ cần khởi động Jmeter là được.

Setup Master server

chú yếu thì có

  1. install jmeter
  2. giải nén
  3. setting Slave server

Install jmeter

tại /home/ec2-user

Giải nén

Setting Slave server

Chỉnh sửa property.
đi đến mục bin trong apache-jmeter-5.1.1, mở property bằng vim, nhập DNS name của Slave server vào ô ghi remote host.
Lưu ý chỗ này nếu nhập IP address thì sẽ bị báo error nên phải nhập đúng giá trị nhé các bạn.
Nếu muốn thiết lập nhiều Slave server thì ghi cách nhau bằng dấu phảy , là được.

Setup Slaver server

  1. install jmeter
  2. giải nén
  3. khởi động Jmeter

Khởi động jmeter

check đảm bảo là chưa được khởi động trước khi check process:

Khởi động:

check lại process để thấy jmeter đã được khởi động.

Test chịu tải

Khi Jmeter được Slave server khởi động thành công thì sẽ chuyển sang trạng thái chờ lệnh từ bên Master Server cho nên lúc này sẽ thực hiện test chịu tải.
Để check process lần này nên lúc nãy sau command /home/ec2-user/apache-jmeter-5.1.1/bin/jmeter-server & tôi đã cho cancel rồi, cơ mà bình thường thì cứ để cho nó được khởi động luôn vậy.

chỗ này cần phải sudo.
Command khởi động là /home/ec2-user/apache-jmeter-5.1.1/bin/jmeter, -n là khởi đọng bằng CUI mode, -t là option chỉ định file setting.
Ngoài ra, file setting thì bắt buộc phải chỉ định bằng path tuyệt đối.

Thi thoảng sẽ có xuất hiện Error in NonGUIDriver java.lang.RuntimeException, trường hợp này là có vấn đề gì đó đã xảy ra bên Slaver server, chỉ cần khởi động lại Jmeter là được.
Nếu không thể reboot được thì kill luôn process đi, kill process dưới cùng trong 3 process.

Sau đó khởi động lại

Quay lại Master server, chạy lại

Đến đây có show Waiting for thì là việc test chịu tải đã thành công!!!

Refer

Dùng SpotInstance và JMeter để test chịu tải 4.000.000 req/min

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo