Apache Benchmark + GNUPlot: Đo lường và vẽ biểu đồ hiệu suất của máy chủ web của bạn

Nó không quan trọng nếu nó được sử dụng Nginx, Apache, Lighttpd hoặc khác, bất kỳ quản trị viên mạng nào có máy chủ web sẽ muốn tại một thời điểm nào đó biết máy chủ web phản hồi nhanh như thế nào đối với một số lượng truy vấn nhất định.

Dịch vụ được quản lý-Quản lý máy chủ-e1368625038693

Điểm chuẩn Apache + GNUPlot

Lần này chúng ta sẽ sử dụng một công cụ có tên là Điểm chuẩn Apache, mặc dù nó có 'apache' trong tên của nó, KHÔNG chỉ để đo hiệu suất Apache mà còn có thể được sử dụng cho Nginx và các ứng dụng khác. Trên thực tế, tôi sẽ sử dụng nó để đo lường hiệu suất của Nginx.

Chúng tôi cũng sẽ sử dụng GNUlot, điều này sẽ giúp chúng tôi tạo các biểu đồ như sau với một vài dòng:

các kết quả

Cài đặt Apache Benchmark và GNUPlot

Apache Benchmark là một công cụ mà chúng ta có thể sử dụng sau khi cài đặt gói Apache, GNUPlot sẽ khả dụng sau khi cài đặt gói cùng tên. Vậy thì ...

Trên các bản phân phối như Debian, Ubuntu hoặc tương tự:

sudo apt-get install apache2 gnuplot

Trong các bản phân phối như ArchLinux hoặc các dẫn xuất:

sudo pacman -S apache gnuplot

Chúng ta chỉ cần cài đặt gói Apache, không cần khởi động nó hay cấu hình gì khác, chỉ cần cài đặt là đủ.

Sử dụng Apache Benchmark

Những gì chúng tôi sẽ làm là gửi một số lượng yêu cầu cụ thể (100) theo nhóm vài (từ 20 đến 20) đến một trang web cụ thể. Chúng tôi sẽ lưu kết quả trong tệp .csv (result.csv) và sau đó xử lý nó bằng GNUPloit, dòng sẽ là:

ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/

Điều rất quan trọng là đặt URL cuối cùng / trong URL của trang web cần đo lường.

Đây là đầu ra hoặc nhật ký hiển thị cho tôi khi tôi kiểm tra một trang web trên mạng của mình:

Đây là ApacheBench, Phiên bản 2.3 <$ Bản sửa đổi: 1638069 $> Bản quyền 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Được cấp phép cho Tổ chức Phần mềm Apache, http://www.apache.org/ Đo điểm chuẩn gutl.jovenclub.cu (hãy kiên nhẫn) ..... xong

Phần mềm máy chủ: nginx Tên máy chủ: gutl.jovenclub.cu Cổng máy chủ: 80

Đường dẫn tài liệu: /
Độ dài tài liệu: 206 byte Mức độ đồng thời: 20 Thời gian thực hiện cho các bài kiểm tra: 0.101 giây Hoàn thành yêu cầu: 100 Yêu cầu không thành công: 27 (Kết nối: 0, Nhận: 0, Độ dài: 27, Ngoại lệ: 0) Phản hồi không phải 2xx: 73 Tổng số đã chuyển: 1310933 byte HTML được chuyển: 1288952 byte
Yêu cầu mỗi giây: 993.24 [# / giây] (trung bình)
Thời gian cho mỗi yêu cầu: 20.136 [ms] (trung bình) Thời gian cho mỗi yêu cầu: 1.007 [ms] (trung bình, trên tất cả các yêu cầu đồng thời) Tốc độ truyền: 12715.49 [Kbyte / giây] nhận được Thời gian kết nối (ms) trung bình tối thiểu [+/- sd] tối đa trung bình Kết nối: 0 1 0.2 1 1 Xử lý: 1 17 24.8 4 86 Chờ đợi: 1 15 21.5 4 76 Tổng cộng: 1 18 24.8 5 87 Phần trăm yêu cầu được phục vụ trong một thời gian nhất định (mili giây) 50% 5 66% 6 75% 22 80% 41 90% 62 95% 80 98% 87 99% 87
100% 87 (yêu cầu dài nhất)

Tôi đã đánh dấu màu đỏ vào những gì tôi cho là quan trọng nhất, ít nhiều là:

  1. Dữ liệu của máy chủ chúng tôi đang thử nghiệm, cũng như URL được đề cập.
  2. Số lượng yêu cầu mỗi giây.
  3. Máy chủ mất bao nhiêu mili giây để đáp ứng yêu cầu mất nhiều thời gian nhất, tức là yêu cầu mất nhiều thời gian nhất để được trả lời.

Với thông tin này, họ có thể có ý tưởng về việc máy chủ sẽ mất bao lâu để đáp ứng lượng yêu cầu đó, sau đó họ có thể thêm hệ thống bộ nhớ cache tốt hơn, hủy kích hoạt các mô-đun mà họ không sử dụng, v.v., chạy lại kiểm tra và xem hiệu suất có được cải thiện hay không.

Tôi khuyên bạn nên chạy thử nghiệm 2 hoặc 3 lần, để bạn tạo thứ gì đó giống như một lề, vì hiếm khi kết quả của hai thử nghiệm liên tiếp giống hệt nhau.

Các tùy chọn hoặc thông số Apache Benchmark hữu ích khác:

-k -H 'Chấp nhận-Mã hóa: gzip, deflate' : Với ab này sẽ chấp nhận bộ nhớ cache và nén mà máy chủ đã cấu hình, vì vậy thời gian sẽ thấp hơn.

-f url.txt : Vì vậy, thay vì chỉ kiểm tra chỉ mục của trang web, nó sẽ thực hiện kiểm tra các URL mà chúng tôi chỉ định trong tệp đó.

Dù sao ... hãy xem người đàn ông ab để bạn thấy.

Hiển thị kết quả dưới dạng biểu đồ:

Để đưa đầu ra này dưới dạng hình ảnh, nghĩa là trong một phương tiện trực quan hơn và nhiều lần, đó là mọi thứ mà các nhà quản lý quản lý phải hiểu ... đối với điều này, chúng tôi sẽ sử dụng như tôi đã nói trước đây, GNUlot

Trong cùng một thư mục, nơi chúng tôi có tệp results.csv (hãy nhớ rằng, chúng tôi vừa tạo bằng lệnh trên) chúng tôi sẽ tạo một tệp có tên gnuplot.p:

nano plot.p

Trong đó, chúng tôi sẽ đưa ra những điều sau:

thiết lập đầu cuối png kích thước 600 thiết lập đầu ra "results.png"đặt tiêu đề"100 yêu cầu, 20 yêu cầu đồng thời "đặt tỷ lệ kích thước 0.6 đặt lưới và đặt xlabel"yêu cầu"set ylabel"thời gian phản hồi (mili giây)"âm mưu"results.csv"using 9 Smooth sbezier with lines title"gutl.jovenclub.cu"

Tôi đã đánh dấu màu đỏ những gì bạn nên luôn kiểm tra. Đó là và từ trên xuống dưới:

  1. Tên của tệp hình ảnh sẽ được tạo
  2. Tổng số yêu cầu đồng thời và đồng thời.
  3. Tên của tệp mà chúng tôi vừa tạo.
  4. Miền chúng tôi đang làm việc.

Sau khi đặt nó, chúng tôi lưu và thoátCtrl + O và sau đó Ctrl + X), chúng tôi sẽ thực hiện như sau:

gnuplot plot.p

Và thì đấy, điều đó sẽ tạo ra biểu đồ với tên mong muốn, của tôi là:

kết quả2

Kết thúc!

Apache Benchmark có nhiều tùy chọn hơn, cũng có nhiều cách kết hợp mà chúng tôi có thể sử dụng để làm cho bài kiểm tra hiệu suất của chúng tôi hoàn thiện hơn.

Nhưng này, đây là điều cơ bản 😉

Chúc các bạn luôn vui vẻ!


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Francisco dijo

    Điểm chuẩn apache thú vị, gnuplot không biết là có thể sửa đổi kiểu đầu ra không? Tôi nói như một báo cáo chính thức.

    Lời chào từ Chile.

    1.    KZKG ^ Gaara dijo

      Vâng, có rất nhiều cấu hình trên mạng cho gnuplot, hãy tìm kiếm trên Google để xem bạn có tìm thấy cấu hình nào đủ nghiêm túc hoặc chuyên nghiệp để bạn sử dụng nó không, vì đó là sở thích của mọi người

  2.   Wolf119 dijo

    Ummm Tôi sẽ kiểm tra nó ngay bây giờ trên một máy chủ apache ảo mà tôi đang chạy để xem điều này diễn ra như thế nào, đối với GUTL, vì nó kích hoạt rất nhanh từ 80 yêu cầu, phải không? Hãy xem 100 ms không phải là không có gì, nhưng mức cao cho thêm 10 yêu cầu so với 70 đến 80 với 80 đến 90 khiến tôi chú ý

    1.    KZKG ^ Gaara dijo

      Nó phải do hàng đợi hoặc số luồng tối đa được tham gia đồng thời. Tuy nhiên, tôi đã thực hiện bài kiểm tra mà không có gzip, không có deflate, không có bộ nhớ cache hay bất cứ thứ gì 😉

  3.   Charlie-nâu dijo

    Rất thú vị, đặc biệt là đối với việc sử dụng GNUPlot. Từ những gì tôi thấy, nó có thể được sử dụng để tạo đồ thị từ hầu hết mọi tập dữ liệu, phải không? ...

    1.    KZKG ^ Gaara dijo

      Tất nhiên là có, bạn chuyển dữ liệu vào một tệp được phân tách bằng dấu phẩy hoặc những thứ tương tự, bạn cho nó biết cách xử lý nó trong tệp cấu hình, và thì đấy

  4.   Adolfo dijo

    Xin chào, tôi luôn dành thời gian đọc blog này nhưng tôi chưa bao giờ bình luận về bài báo nào, và đây có vẻ như là một cơ hội tốt.
    Điều tôi muốn chia sẻ với bạn là loại biểu đồ này có thể bị hiểu sai, vì Apache Bench sắp xếp kết quả bằng cách sử dụng ttime (tổng thời gian) thay vì thời gian tuần tự. Mặc dù dữ liệu vẫn đúng, nhưng biểu đồ có lẽ không hiển thị những gì chúng ta muốn.
    Đây là liên kết nơi tôi đọc nó.
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    Chúc mừng.

  5.   Hugo dijo

    Apache Benchmark không phải là công cụ tốt nhất để đo hiệu suất của máy chủ HTTP trong máy tính có nhiều lõi, ngoài ra, chỉ 100 yêu cầu với 20 kết nối đồng thời là một bài kiểm tra rất yếu, một cái gì đó thực tế hơn sẽ là 1,000 hoặc 10,000 yêu cầu với 100 kết nối đồng thời ( Người ta biết rằng Nginx là một trong những ứng dụng có khả năng phục vụ hơn 10,000 yêu cầu mỗi giây) và vì vậy tốt hơn nên sử dụng một công cụ như weighttp, được hình thành cho các nhóm có nhiều lõi và sử dụng epoll nhanh hơn, không giống như Apache Ghế dài sử dụng một luồng đơn và cơ chế xử lý sự kiện kém hiệu quả hơn.

    Để đạt được quan điểm của tôi, giả sử máy chủ chỉ có 4 lõi:

    weighttp -n 10000 -c 100 -t 4 -k "http://our-web-site.com/"

  6.   đức tin dijo

    Hi all,
    Khi vẽ biểu đồ (từ CSV) bằng gnuplot nó cho tôi lỗi sau, bạn có thể cho tôi biết cách giải quyết không?

    "Plot.p", dòng 8: cảnh báo: Bỏ qua tệp dữ liệu không có điểm hợp lệ

    âm mưu «graph.csv» bằng cách sử dụng 9 sbezier mượt mà với các dòng tiêu đề «AB - localhost / web»
    ^
    "Plot.p", dòng 8: phạm vi x không hợp lệ

    Với gnuplot, tôi có thể tạo các trang HTML không?