Score:1

คำสั่ง Curl ส่งคำขอแบบอะซิงโครนัส

ธง sx

ฉันใช้คำขอ curl นี้เพื่อส่งข้อมูลไปยัง API :

ขด --location --request POST 'MY_IP' \
--ส่วนหัว 'ประเภทเนื้อหา: ข้อความ/ธรรมดา' \
--ข้อมูลดิบ ' [{
    "event_id": "123",
}]    
'

ฉันต้องการตรวจสอบประสิทธิภาพของ API โดยส่งคำขอแบบอะซิงโครนัสและวัดเวลาที่ฉันพยายามใช้ xargs -P 10 ไหนบอกว่าส่ง 10 request Parallel แต่ไม่สามารถทำได้ ? ความช่วยเหลือใด ๆ และฉันจะวัดเวลาได้อย่างไร ?

รหัสของฉัน :

#!/bin/bash

ร่างกาย='{
    "event_id": "12",
    "metric_name": "API",
    "มูลค่า" : "1",
    "มิติข้อมูล": {  
    },
    "timestamp_ms": 1615552313
}';

ภาค 1 2 | xargs -n1 -P10 curl --location --request POST '10.33.137.98:8080' --header 'Content-Type: text/plain' --data-raw "$Body"

แต่จะคำนวณเวลาอย่างไร เช่น P95 , P90 เป็นต้น ?

Score:1
ธง cn

ฉันยังรับไม่ได้ xargs -P ทำงานเมื่อฉันต้องการทำสิ่งที่คล้ายกัน และสุดท้ายฉันก็ใช้ &.

จาก ผู้ชายทุบตี:

หากคำสั่งถูกยกเลิกโดยผู้ดำเนินการควบคุม & เชลล์จะดำเนินการคำสั่งในเบื้องหลังในเชลล์ย่อย เชลล์ไม่รอให้คำสั่งเสร็จสิ้น และสถานะการส่งคืนคือ 0 สิ่งเหล่านี้เรียกว่าคำสั่งแบบอะซิงโครนัส

อะไรแบบนี้อาจจะ?

#!/bin/bash

ร่างกาย='{
    "event_id": "12",
    "metric_name": "API",
    "มูลค่า" : "1",
    "มิติข้อมูล": {  
    },
    "timestamp_ms": 1615552313
}';

เรียกใช้ฟังก์ชัน () {
    สำหรับฉันใน $(seq 1 10); ทำ
        echo "กำลังเรียกใช้งาน $i"
        curl --location --request POST '10.33.137.98:8080' --header 'Content-Type: text/plain' --data-raw "$Body" &
    เสร็จแล้ว 

    รอ
}

เวลาทำงาน

คำอธิบาย:

  • เวลา ใช้ในการวัดเวลาดำเนินการทั้งหมด ดู เวลาผู้ชาย
  • รอ ตรวจสอบให้แน่ใจว่างานพื้นหลังทั้งหมดเสร็จสิ้นก่อนที่จะดำเนินการต่อ มิฉะนั้น เวลา จะวัดเพียงระยะเวลาที่จะเริ่มคำขอทั้งหมด ไม่ใช่ระยะเวลาที่จะได้รับการตอบสนอง
  • ขนาน อาจใช้ได้เช่นกัน แทน &

ในการคำนวณสถิติ คุณสามารถส่งออกเวลาของแต่ละคำขอโดยใช้วินาที เวลา โทรเข้ามา สำหรับ วนซ้ำแล้วประมวลผลโดยใช้เครื่องมือวิเคราะห์ที่คุณชื่นชอบ

Score:0
ธง ar

สร้างฟังก์ชันทุบตี เรียกมันจาก GNU Parallel ใช้ --บันทึกงาน เพื่อดูเวลา

ทำมัน() {
    ขด --location --request POST 'MY_IP' \
    --ส่วนหัว 'ประเภทเนื้อหา: ข้อความ/ธรรมดา' \
    --ข้อมูลดิบ ' [{
        "event_id": "123",
    }]    
    '
}
ส่งออก -f doit
วินาที 10,000 | ขนาน -j 10 --joblog my.log doit

ตอนนี้ดูที่ my.log

GNU Parallel มีค่าโสหุ้ย 1-10 ms ต่องาน ดังนั้นหากคุณ ขดs สั้นมาก คุณสามารถทำได้มากกว่าหนึ่งอย่าง:

วินาที 10,000 | ขนาน -j 10 --joblog my.log 'doit;doit;doit;doit;doit;doit;doit;doit;doit;doit'

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา