Làm thế nào để thực hiện điểm chuẩn hiệu suất máy chủ web?

Bạn có biết thời gian phản hồi trung bình trang web của bạn? Bạn có biết trang web của bạn có thể xử lý bao nhiêu người dùng đồng thời?


Tải thử nghiệm là điều cần thiết cho các ứng dụng web để biết trang web sức chứa. Nếu bạn chọn máy chủ web, thì một trong những điều đầu tiên bạn muốn làm là thực hiện kiểm tra tải và xem cái nào hoạt động tốt cho bạn.

Điểm chuẩn có thể giúp bạn quyết định;

  • Máy chủ web nào hoạt động tốt nhất
  • Số lượng máy chủ bạn cần để phục vụ x số lượng yêu cầu
  • Cấu hình nào mang lại cho bạn kết quả tốt nhất

Có một số công cụ trực tuyến để thực hiện một bài kiểm tra căng thẳng; tuy nhiên, nếu bạn đang tìm kiếm một giải pháp nội bộ hoặc muốn chỉ điểm chuẩn hiệu suất của máy chủ web, thì bạn có thể sử dụng ApacheBench và thay vào đó một số công cụ được liệt kê dưới đây.

Tôi đã sử dụng Apache & Máy chủ web Nginx được lưu trữ trên DigitalOcean để kiểm tra nó.

ApacheBench

ApacheBench (ab) là một chương trình dòng lệnh mã nguồn mở hoạt động với bất kỳ máy chủ web nào. Trong bài đăng này, tôi sẽ giải thích cách cài đặt chương trình nhỏ này và thực hiện kiểm tra tải để đánh giá kết quả.

Apache

Hãy để cài đặt ApacheBench bằng cách sử dụng lệnh yum.

yum cài đặt httpd-tools

Nếu bạn đã có công cụ httpd, thì bạn có thể bỏ qua điều này.

Bây giờ, hãy để Lôi xem cách nó thực hiện cho 5000 yêu cầu với đồng thời là 500.

[[email được bảo vệ] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Đây là ApacheBench, Phiên bản 2.3 <$ Sửa đổi: 655654 $>
Bản quyền 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Được cấp phép cho Quỹ phần mềm Apache, http://www.apache.org/
Điểm chuẩn localhost (hãy kiên nhẫn)
Hoàn thành 500 yêu cầu
Đã hoàn thành 1000 yêu cầu
Hoàn thành 1500 yêu cầu
Hoàn thành 2000 yêu cầu
Đã hoàn thành 2500 yêu cầu
Đã hoàn thành 3000 yêu cầu
Đã hoàn thành 3500 yêu cầu
Đã hoàn thành 4000 yêu cầu
Đã hoàn thành 4500 yêu cầu
Đã hoàn thành 5000 yêu cầu
Hoàn thành 5000 yêu cầu
Phần mềm máy chủ: Apache / 2.2.15
Tên máy chủ: localhost
Cổng máy chủ: 80
Đường dẫn tài liệu: /
Độ dài tài liệu: 4961 byte
Mức đồng thời: 500
Thời gian thực hiện các bài kiểm tra: 13.389 giây
Hoàn thành yêu cầu: 5000
Yêu cầu thất bại: 0
Viết lỗi: 0
Phản hồi không 2xx: 5058
Tổng số đã chuyển: 26094222 byte
Đã chuyển HTML: 25092738 byte
Yêu cầu mỗi giây: 373,45 [# / giây] (trung bình)
Thời gian cho mỗi yêu cầu: 1338.866 [ms] (trung bình)
Thời gian cho mỗi yêu cầu: 2.678 [ms] (trung bình, trên tất cả các yêu cầu đồng thời)
Tốc độ truyền: 1903.30 [Kbytes / giây] đã nhận được
Thời gian kết nối (ms)
trung bình tối thiểu [+/- sd] trung bình tối đa
Kết nối: 0 42 20.8 41 1000
Đang xử lý: 0 428 2116.5 65 13310
Chờ đợi: 0 416 2117.7 55 13303
Tổng cộng: 51 470 2121.0 102 13378
Tỷ lệ phần trăm của các yêu cầu được phục vụ trong một thời gian nhất định (ms)
50% 102
66% 117
75% 130
80% 132
90% 149
95% 255
98% 13377
99% 13378
100% 13378 (yêu cầu dài nhất)
[[email được bảo vệ] ~] #

Như bạn thấy, Apache đã xử lý 373 yêu cầu mỗi giây, và phải mất tổng cộng 13.389 giây để phục vụ tổng số yêu cầu.

Bây giờ bạn đã biết cấu hình mặc định có thể phục vụ nhiều yêu cầu này, vì vậy khi bạn thực hiện bất kỳ thay đổi cấu hình nào, bạn có thể thực hiện kiểm tra lại để so sánh kết quả và chọn tốt một.

Nginx

Hãy để Hãy thực hiện thử nghiệm những gì chúng tôi đã làm cho Apache để bạn có thể so sánh cái nào hoạt động tốt hơn.

[[email được bảo vệ] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Đây là ApacheBench, Phiên bản 2.3 <$ Sửa đổi: 655654 $>
Bản quyền 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Được cấp phép cho Quỹ phần mềm Apache, http://www.apache.org/
Điểm chuẩn localhost (hãy kiên nhẫn)
Hoàn thành 500 yêu cầu
Đã hoàn thành 1000 yêu cầu
Hoàn thành 1500 yêu cầu
Hoàn thành 2000 yêu cầu
Đã hoàn thành 2500 yêu cầu
Đã hoàn thành 3000 yêu cầu
Đã hoàn thành 3500 yêu cầu
Đã hoàn thành 4000 yêu cầu
Đã hoàn thành 4500 yêu cầu
Đã hoàn thành 5000 yêu cầu
Hoàn thành 5000 yêu cầu
Phần mềm máy chủ: nginx / 1.10.1
Tên máy chủ: localhost
Cổng máy chủ: 80
Đường dẫn tài liệu: /
Độ dài tài liệu: 3698 byte
Mức đồng thời: 500
Thời gian thực hiện các bài kiểm tra: 0,758 giây
Hoàn thành yêu cầu: 5000
Yêu cầu thất bại: 0
Viết lỗi: 0
Tổng số đã chuyển: 19660000 byte
HTML được chuyển: 18490000 byte
Yêu cầu mỗi giây: 6593,48 [# / giây] (trung bình)
Thời gian cho mỗi yêu cầu: 75.832 [ms] (trung bình)
Thời gian cho mỗi yêu cầu: 0.152 [ms] (trung bình, trên tất cả các yêu cầu đồng thời)
Tốc độ truyền: 25317.93 [Kbytes / giây] đã nhận được
Thời gian kết nối (ms)
trung bình tối thiểu [+/- sd] trung bình tối đa
Kết nối: 0 6 11.0 2 53
Chế biến: 5 19 8.2 17 53
Chờ đợi: 0 18 8.2 16 47
Tổng cộng: 10 25 17,4 18 79
Tỷ lệ phần trăm của các yêu cầu được phục vụ trong một thời gian nhất định (ms)
50% 18
66% 21
75% 21
80% 22
90% 69
95% 73
98% 75
99% 76
00% 79 (yêu cầu dài nhất)
[[email được bảo vệ] ~] #

Ôi! Bạn có thấy điều đó không? Nginx xử lý 6593 yêu cầu mỗi giây! Ngươi chiên thăng.

Vì vậy, bạn thấy chỉ cần so sánh với hai máy chủ web, bạn sẽ có ý tưởng nên chọn cái nào cho ứng dụng web của mình.

Thử nghiệm trên là trên CentOS 6.8, 64 bit. Bạn có thể thử nhiều kết hợp HĐH & Phiên bản máy chủ Web cho kết quả tối ưu.

SIEGE

SIEGE là tiện ích kiểm tra tải HTTP được hỗ trợ trên UNIX. Bạn có thể đặt nhiều URL URL trong một tệp văn bản để tải thử nghiệm. Bạn có thể cài đặt bao vây bằng yum.

# yum cài đặt bao vây

Hãy để Lẩu chạy thử nghiệm với 500 yêu cầu đồng thời trong 5 giây.

[[email được bảo vệ] ~] # siege -q -t 5S -c 500 http: // localhost /
Nâng bao vây máy chủ … xong.
Giao dịch: 4323 lượt truy cập
Sẵn có: 100,00%
Thời gian đã trôi qua: 4,60 giây
Dữ liệu được truyền: 15,25 MB
Thời gian đáp ứng: 0,04 giây
Tốc độ giao dịch: 939,78 trans / giây
Thông lượng: 3,31 MB / giây
Đồng thời: 37,97
Giao dịch thành công: 4323
Giao dịch thất bại: 0
Giao dịch dài nhất: 1,04
Giao dịch ngắn nhất: 0,00
[[email được bảo vệ] ~] #

Để phá vỡ các tham số.

-q – để chạy nó một cách lặng lẽ (không hiển thị chi tiết yêu cầu)

-t – chạy trong 5 giây

-c – 500 yêu cầu đồng thời

Vì vậy, như bạn có thể thấy, tính khả dụng là 100% và thời gian phản hồi là 0,04 giây. Bạn có thể điều chỉnh tham số kiểm tra tải dựa trên mục tiêu của mình.

Yêu tinh

Yêu tinh được viết bằng ngôn ngữ Go và tiện ích kiểm tra tải đơn giản để đánh giá hiệu năng của máy chủ web. Nó hỗ trợ hơn 20.000 người dùng đồng thời mà ApacheBench không.

Apache JMeter

JMeter là một trong những công cụ nguồn mở phổ biến nhất để đo lường hiệu suất ứng dụng web. JMeter là ứng dụng dựa trên java và không chỉ máy chủ web, mà bạn có thể sử dụng nó để chống lại PHP, Java. ASP.net, SOAP, REST, v.v..

JMeter có GUI thân thiện khá tốt và phiên bản 3.0 mới nhất yêu cầu Java 7 trở lên để khởi chạy ứng dụng. Bạn phải thử JMeter nếu mục tiêu của bạn là tối ưu hóa hiệu suất ứng dụng web.

quằn quại

quằn quại là một công cụ đo lường hiệu suất hiện đại khác để đặt tải lên máy chủ web của bạn và cung cấp cho bạn độ trễ, yêu cầu mỗi giây, chuyển mỗi giây, v.v..

Với wrk, bạn có thể chỉ định chạy thử nghiệm tải với một số luồng.

Hãy lấy ví dụ về việc chạy thử nghiệm trong 5 phút với 500 người dùng đồng thời với 8 luồng.

wrkTHERt8 hungc500 -d300s http: // localhost

Tải HTTP

Tải trọng có thể đọc nhiều URL từ tệp hoặc bạn có thể chỉ định nó trong đối số lệnh. Phiên bản mới nhất hỗ trợ SSL / TLS có nghĩa là bạn có thể truy vấn URL trang web được bật HTTPS (SSL).

Khi kiểm tra URL hỗ trợ SSL, bạn có một tùy chọn để chỉ định mật mã và lệnh kiểm tra đơn giản sẽ giống như thế này.

httpload -codes AES256-SHA-Champions 200 giây trong 120 URL_LIST.txt

Để hiểu rõ hơn, ở trên sẽ chạy thử nghiệm với 200 người dùng đồng thời trong 2 phút.

Máy xúc lật

cuộn tải được viết bằng C để mô phỏng tải ứng dụng và nó hỗ trợ SSL / TLS. Cùng với kiểm tra trang web, bạn cũng có thể sử dụng công cụ nguồn mở này để thực hiện tải trên các máy chủ FTP.

Bạn có thể tạo gói thử nghiệm với hỗn hợp HTTP, HTTPS, FTP và FTPS trong một cấu hình lô duy nhất.

omeperf

Các omeperf là một công cụ hiệu suất cao tập trung vào điểm chuẩn vi mô và vĩ mô. Nó hỗ trợ các giao thức HTTP / 1.1 và SSL.

Nếu bạn có số lượng người dùng đồng thời dự kiến ​​và muốn kiểm tra xem một số yêu cầu có thể được phục vụ bởi máy chủ web của bạn không thì bạn có thể sử dụng lệnh sau.

omeperf –server localhost –port 80 –num-Conns 1000 –rate 100

Lệnh trên sẽ kiểm tra với 100 yêu cầu mỗi giây cho 1000 yêu cầu HTTP.

Tsung

Tsung là một công cụ kiểm tra căng thẳng phân tán đa giao thức để nhấn mạnh máy chủ HTTP, SOAP, PostgreSQL, LDAP, XAMP, MySQL. Nó hỗ trợ HTTP / 1.0, HTTP / 1.1 và cookie được xử lý tự động.

Tạo một báo cáo là khả thi với Tsung.

Phần kết luận

Tôi hy vọng ở trên công cụ đo điểm chuẩn cung cấp cho bạn ý tưởng về hiệu suất máy chủ web của bạn và giúp quyết định những gì hoạt động tốt nhất cho dự án của bạn.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map