Điểm:1

Lệnh Curl Gửi yêu cầu không đồng bộ

lá cờ sx

Tôi sử dụng yêu cầu cuộn tròn này để gửi dữ liệu tới API:

curl --location --request POST 'MY_IP' \
--header 'Loại nội dung: văn bản/đơn giản' \
--data-raw ' [{
    "event_id": "123",
}]    
'

Tôi muốn kiểm tra hiệu suất API bằng cách gửi yêu cầu không đồng bộ và đo thời gian tôi đã thử sử dụng xargs -P 10 nói rằng gửi 10 yêu cầu song song nhưng không thể làm như vậy? Bất kỳ trợ giúp và làm thế nào tôi có thể đo thời gian?

Mã của tôi :

#!/bin/bash

Cơ thể ='{
    "event_id": "12",
    "metric_name": "API",
    "giá trị" : "1",
    "thứ nguyên": {  
    },
    "dấu thời gian_ms": 1615552313
}';

tiếp theo 1 2 | xargs -n1 -P10 curl --location --request POST '10.33.137.98:8080' --header 'Content-Type: text/plain' --data-raw "$Body"

Nhưng làm thế nào để tính toán thời gian như P95, P90 vv?

Điểm:1
lá cờ cn

tôi cũng không thể có được xargs -P làm việc khi tôi cần làm điều gì đó tương tự và cuối cùng tôi đã sử dụng &.

Từ người đàn ông bash:

Nếu một lệnh bị kết thúc bởi toán tử điều khiển &, shell sẽ thực thi lệnh ở chế độ nền trong một subshell. Shell không đợi lệnh kết thúc và trạng thái trả về là 0. Đây được gọi là các lệnh không đồng bộ.

Vì vậy, một cái gì đó như thế này, có thể?

#!/bin/bash

Cơ thể ='{
    "event_id": "12",
    "metric_name": "API",
    "giá trị" : "1",
    "thứ nguyên": {  
    },
    "dấu thời gian_ms": 1615552313
}';

chức năng chạy() {
    cho tôi bằng $(seq 1 10); làm
        tiếng vang "đang chạy nhiệm vụ $i"
        curl --location --request POST '10.33.137.98:8080' --header 'Content-Type: text/plain' --data-raw "$Body" &
    xong 

    đợi đã
}

thời gian chạy

giải thích:

  • thời gian được sử dụng để đo tổng thời gian thực hiện, xem thời gian của con người
  • đợi đã đảm bảo rằng tất cả các công việc nền kết thúc trước khi tiếp tục, nếu không thì thời gian sẽ chỉ đo thời gian khởi chạy tất cả các yêu cầu chứ không phải mất bao lâu để nhận được phản hồi
  • song song, tương đông cũng có thể làm việc thay vì &

Để tính toán số liệu thống kê, bạn có thể xuất thời gian của từng yêu cầu, sử dụng giây thời gian gọi trong vòng lặp, sau đó xử lý nó bằng các công cụ phân tích yêu thích của bạn.

Điểm:0
lá cờ ar

Tạo một hàm bash. Gọi nó từ GNU Parallel. Sử dụng --joblog để xem thời gian.

làm đi() {
    curl --location --request POST 'MY_IP' \
    --header 'Loại nội dung: văn bản/đơn giản' \
    --data-raw ' [{
        "event_id": "123",
    }]    
    '
}
xuất khẩu -f doit
thứ tự 10000 | song song -j 10 --joblog my.log doit

Bây giờ hãy nhìn vào my.log.

GNU Parallel có tổng phí hoạt động là 1-10 mili giây cho mỗi công việc, vì vậy nếu bạn Xoăns thực sự ngắn, bạn có thể làm nhiều hơn một:

thứ tự 10000 | song song -j 10 --joblog my.log 'doit;doit;doit;doit;doit;doit;doit;doit;doit;doit'

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.