Score:0

Is rate limiting delay included in nginx $request_time?

ธง cn

If requests are delayed by nginx rate limiting (rate limit exceeded, but within burst rate), is this delay included in the nginx $request_time total?

The nginx docs state that $request_time is "time elapsed since the first bytes were read from the client"

If a request is delayed, is that before or after request bytes are read from the client? I assume after, since rate limiting can be based on request headers, etc.

Is there a way to separate total request time and time spent specifically on sending/receiving network communication to/from the client?

Note: I am aware of $upstream_response_time, and am logging that. I specifically am concerned with differentiating specific operations within nginx (caching, rate limiting, etc), and client-side network communications.

Score:0
ธง cn

ดังนั้นในการทดสอบของฉัน nginx $request_time เข้าสู่ระบบ ทำ สะท้อนถึงความล่าช้าเนื่องจากการจำกัดอัตรา

ลูกค้า:

wrk --timeout 20 วินาที -d 20 -t 79 -c 80 https://zapazoid.vistashare.net/Static/jquery.jnotify-1.1.min.js

กำหนดค่า:

โหนดเลย์ ลบออกจากการจำกัดอัตราแบบคงที่ และการจำกัดอัตราเป็น 1r / วินาที, ระเบิดตั้งค่าเป็น 80 รอบ/วินาที.

ผลการทดสอบ:

⯠wrk --timeout 20s -d 20 -t 79 -c 80 https://zapazoid.vistashare.net/Static/jquery.jnotify-1.1.min.js
เรียกใช้การทดสอบ 20 วินาที @ https://zapazoid.vistashare.net/Static/jquery.jnotify-1.1.min.js
  79 เธรดและ 80 การเชื่อมต่อ
  สถิติเธรด ค่าเฉลี่ย Stdev สูงสุด +/- Stdev
    เวลาแฝง 9.97 วินาที 5.97 วินาที 19.93 วินาที 56.10%
    ข้อกำหนด/วินาที 0.27 1.57 10.00 97.56%
  41 คำขอใน 20.10s, 140.14KB อ่าน
คำขอ/วินาที: 2.04
ถ่ายโอน/วินาที: 6.97KB

บันทึก Nginx แสดงคำขอล่าช้า:

29/11/2021 15:40:23 [warn] 2608#2608: *355 คำขอล่าช้า, ส่วนเกิน: 78.992, ตามโซน "static-corp", ลูกค้า: 10.100.2.130, เซิร์ฟเวอร์: zapazoid.vistashare.net, คำขอ: "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1", โฮสต์: "zapazoid.vistashare.net"

การบันทึกการเข้าถึงได้รับการกำหนดค่าเป็น:

    log_format apm '$remote_addr - $remote_user [$time_local]'             
                   '"$คำขอ" $สถานะ $body_bytes_sent '                   
                   '"$http_referer" "$http_user_agent" '                    
                   '$request_time $upstream_response_time'                 
                   '$upstream_cache_status';

และบันทึกการเข้าถึงแสดงให้เห็นการปีนเขา $request_time ค่า (ค่าที่ 3 จากจุดสิ้นสุด) เนื่องจากคำขอมีความล่าช้ามากขึ้นเรื่อยๆ จนเกินขีดจำกัดที่กำหนดค่าไว้:

10.100.2.130 - - [29/พ.ย./2021:15:46:51 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 0.001 0.004 MISS
10.100.2.130 - - [29/พ.ย./2021:15:46:51 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 0.496 0.000 MISS
10.100.2.130 - - [29/พ.ย./2021:15:46:52 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 0.995 0.000 พลาด
10.100.2.130 - - [29/พ.ย./2021:15:46:52 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 1.495 0.000 พลาด
10.100.2.130 - - [29/พ.ย./2021:15:46:53 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 1.999 0.000 พลาด
10.100.2.130 - - [29/พ.ย./2021:15:46:53 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 2.495 0.004 พลาด
...
10.100.2.130 - - [29/พ.ย./2021:15:47:02 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 11.467 0.000 พลาด
10.100.2.130 - - [29/พ.ย./2021:15:47:03 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 11.964 0.000 พลาด
10.100.2.130 - - [29/พ.ย./2021:15:47:03 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 12.466 0.004 MISS
10.100.2.130 - - [29/พ.ย./2021:15:47:04 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 12.963 0.000 พลาด
10.100.2.130 - - [29/พ.ย./2021:15:47:04 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 13.460 0.000 พลาด
10.100.2.130 - - [29/พ.ย./2021:15:47:05 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 13.961 0.000 พลาด
10.100.2.130 - - [29/พ.ย./2021:15:47:05 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 14.452 0.000 พลาด
10.100.2.130 - - [29/พ.ย./2021:15:47:06 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 14.946 0.000 พลาด
10.100.2.130 - - [29/พ.ย./2021:15:47:06 -0500] "GET /Static/jquery.jnotify-1.1.min.js HTTP/1.1" 200 3098 "-" "-" 15.446 0.000 พลาด

โพสต์คำตอบ

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