ab - คู่มืออ้างอิง ตัวเลือก ตัวอย่างคำสั่ง


ชื่อ

ab - เครื่องมือเปรียบเทียบเซิร์ฟเวอร์ Apache HTTP

เรื่องย่อ

ab [ -A auth-username:password ] [ -b windowsize ] [ -B local-address ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -E client-certificate file ] [ -f protocol ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -l ] [ -m HTTP-method ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -r ] [ -s timeout ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -u PUT-file ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [ -Z ciphersuite ] [http[s]://]hostname[:port]/path

สรุป

ab เป็นเครื่องมือสำหรับการเปรียบเทียบเซิร์ฟเวอร์ Apache Hypertext Transfer Protocol (HTTP) ของคุณ ได้รับการออกแบบมาเพื่อให้คุณเข้าใจว่าการติดตั้ง Apache ปัจจุบันของคุณมีประสิทธิภาพเพียงใด โดยเฉพาะอย่างยิ่งจะแสดงให้คุณเห็นว่าการติดตั้ง Apache ของคุณสามารถให้บริการได้กี่คำขอต่อวินาที

ตัวเลือก

-A auth-username:password

จัดหาข้อมูลรับรองการรับรองความถูกต้องพื้นฐานไปยังเซิร์ฟเวอร์ ชื่อผู้ใช้และรหัสผ่านถูกคั่นด้วย : เดียว และส่งใน wire base64 ที่เข้ารหัส สตริงจะถูกส่งโดยไม่คำนึงว่าเซิร์ฟเวอร์ต้องการหรือไม่ (เช่น ส่งการตรวจสอบสิทธิ์ 401 ที่จำเป็น)

-b windowsize

ขนาดของบัฟเฟอร์รับ/ส่ง TCP หน่วยเป็นไบต์

-B local-address

ที่อยู่ที่จะผูกเมื่อทำการเชื่อมต่อขาออก

-c concurrency

จำนวนคำขอหลายรายการในแต่ละครั้ง ค่าเริ่มต้นคือหนึ่งคำขอต่อครั้ง

-C cookie-name=value

เพิ่มบรรทัด คุกกี้: ในคำขอ อาร์กิวเมนต์มักจะอยู่ในรูปของคู่ ชื่อ=ค่า ฟิลด์นี้สามารถทำซ้ำได้

-d

ไม่แสดง "เปอร์เซ็นต์ที่แสดงภายในตาราง XX [ms]" (การสนับสนุนเดิม).

-e csv-file

เขียนไฟล์ค่าที่คั่นด้วยเครื่องหมายจุลภาค (CSV) ซึ่งมีค่าสำหรับแต่ละเปอร์เซ็นต์ (ตั้งแต่ 1% ถึง 100%) ของเวลา (หน่วยเป็นมิลลิวินาที) ที่ใช้ในการแสดงเปอร์เซ็นต์ของคำขอนั้น ซึ่งมักจะมีประโยชน์มากกว่าไฟล์ 'gnuplot' เนื่องจากผลลัพธ์ถูก 'binned' แล้ว

-E client-certificate-file

เมื่อเชื่อมต่อกับเว็บไซต์ SSL ให้ใช้ใบรับรองไคลเอ็นต์ที่ให้ไว้ในรูปแบบ PEM เพื่อรับรองความถูกต้องกับเซิร์ฟเวอร์ ไฟล์นี้คาดว่าจะมีใบรับรองไคลเอ็นต์ ตามด้วยใบรับรองระดับกลาง ตามด้วยคีย์ส่วนตัว พร้อมใช้งานใน 2.4.36 และใหม่กว่า

-f protocol

ระบุโปรโตคอล SSL/TLS (SSL2, SSL3, TLS1, TLS1.1, TLS1.2 หรือ ALL) รองรับ TLS1.1 และ TLS1.2 ใน 2.4.4 และใหม่กว่า

-g gnuplot-file

เขียนค่าที่วัดได้ทั้งหมดออกมาเป็นไฟล์ 'gnuplot' หรือ TSV (ค่าที่แยกจากแท็บ) ไฟล์นี้สามารถนำเข้าได้อย่างง่ายดายในแพ็คเกจเช่น Gnuplot, IDL, Mathematica, Igor หรือแม้แต่ Excel ป้ายกำกับอยู่ที่บรรทัดแรกของไฟล์

-h

แสดงข้อมูลการใช้งาน

-H custom-header

เพิ่มส่วนหัวเพิ่มเติมในคำขอ อาร์กิวเมนต์มักจะอยู่ในรูปของบรรทัดส่วนหัวที่ถูกต้อง ซึ่งมีคู่ค่าฟิลด์ที่คั่นด้วยโคลอน (เช่น, "Accept-Encoding: zip/zop;8bit" ).

-i

ทำคำขอ HEAD แทน GET

-k

เปิดใช้งานคุณลักษณะ HTTP KeepAlive เช่น ดำเนินการหลายคำขอภายในเซสชัน HTTP เดียว ค่าเริ่มต้นคือไม่มี KeepAlive

-l

อย่ารายงานข้อผิดพลาดหากความยาวของการตอบกลับไม่คงที่ สิ่งนี้มีประโยชน์สำหรับเพจไดนามิก พร้อมใช้งานใน 2.4.7 และใหม่กว่า

-m HTTP-method

วิธี HTTP ที่กำหนดเองสำหรับคำขอ พร้อมใช้งานใน 2.4.10 และใหม่กว่า

-n requests

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

-p POST-file

ไฟล์ที่มีข้อมูลไปยัง POST อย่าลืมตั้งค่า -T ด้วย

-P proxy-auth-username:password

ระบุข้อมูลรับรองการรับรองความถูกต้องพื้นฐานให้กับพร็อกซีระหว่างทาง ชื่อผู้ใช้และรหัสผ่านถูกคั่นด้วย : เดียว และส่งใน wire base64 ที่เข้ารหัส สตริงจะถูกส่งโดยไม่คำนึงว่าพร็อกซีต้องการหรือไม่ (กล่าวคือ ได้ส่งการตรวจสอบความถูกต้องของพร็อกซี 407 แล้ว)

-q

เมื่อประมวลผลคำขอมากกว่า 150 รายการ ab จะแสดงจำนวนความคืบหน้าใน stderr ทุกๆ 10% หรือ 100 คำขอหรือมากกว่านั้น แฟล็ก -q จะระงับข้อความเหล่านี้

-r

อย่าออกจากซ็อกเก็ตที่ได้รับข้อผิดพลาด

-s timeout

จำนวนวินาทีสูงสุดที่จะรอก่อนที่ซ็อกเก็ตจะหมดเวลา ค่าเริ่มต้นคือ 30 วินาที มีให้ใน 2.4.4 และใหม่กว่า

-S

ไม่แสดงค่ามัธยฐานและค่าเบี่ยงเบนมาตรฐาน และไม่แสดงข้อความเตือน/ข้อผิดพลาดเมื่อค่าเฉลี่ยและค่ามัธยฐานห่างกันมากกว่าหนึ่งหรือสองเท่าของค่าเบี่ยงเบนมาตรฐาน และตั้งค่าเริ่มต้นเป็นค่าต่ำสุด/เฉลี่ย/สูงสุด (การสนับสนุนเดิม).

-t timelimit

จำนวนวินาทีสูงสุดที่จะใช้สำหรับการเปรียบเทียบ ซึ่งแสดงถึง -n 50000 ภายใน ใช้สิ่งนี้เพื่อเปรียบเทียบเซิร์ฟเวอร์ภายในระยะเวลารวมที่แน่นอน ตามค่าเริ่มต้นจะไม่มีการจำกัดเวลา

-T content-type

ส่วนหัวของประเภทเนื้อหาที่จะใช้สำหรับข้อมูล POST/PUT เช่น application/x-www-form-urlencoded ค่าเริ่มต้นคือ ข้อความ/ธรรมดา

-u PUT-file

ไฟล์ที่มีข้อมูลไปยัง PUT อย่าลืมตั้งค่า -T ด้วย

-v verbosity

ตั้งค่าระดับการใช้คำฟุ่มเฟือย - 4 และสูงกว่าพิมพ์ข้อมูลในส่วนหัว 3 และสูงกว่าพิมพ์รหัสตอบกลับ (404, 200 เป็นต้น) 2 และ พิมพ์คำเตือนและข้อมูลด้านบน

-V

แสดงหมายเลขเวอร์ชันและออก

-w

พิมพ์ผลลัพธ์ในตาราง HTML ตารางเริ่มต้นมีความกว้างสองคอลัมน์ โดยมีพื้นหลังสีขาว

-x <table>-attributes

สตริงที่ใช้เป็นแอตทริบิวต์สำหรับ ตาราง แอตทริบิวต์จะแทรกตารางที่นี่

-X proxy[:port]

ใช้พร็อกซีเซิร์ฟเวอร์สำหรับคำขอ

-y <tr>-attributes

สตริงที่ใช้เป็นแอตทริบิวต์สำหรับ

-z <td>-attributes

สตริงที่ใช้เป็นแอตทริบิวต์สำหรับ

-Z ciphersuite

ระบุชุดการเข้ารหัส SSL/TLS (ดูที่รหัสของ openssl)

เอาต์พุต

รายการต่อไปนี้อธิบายถึงค่าที่ส่งกลับโดย ab:

Server Software

ค่า (ถ้ามี) จะส่งคืนในส่วนหัว HTTP ของ เซิร์ฟเวอร์ ของการตอบกลับครั้งแรกที่สำเร็จ ซึ่งรวมถึงอักขระทั้งหมดในส่วนหัวตั้งแต่ต้นจนถึงจุดที่ตรวจพบอักขระที่มีค่าทศนิยม 32 (โดยเฉพาะอย่างยิ่ง: ช่องว่างหรือ CR/LF)

Server Hostname

ที่อยู่ DNS หรือ IP ที่ระบุในบรรทัดคำสั่ง

Server Port

พอร์ตที่ ab กำลังเชื่อมต่อ หากไม่มีการกำหนดพอร์ตในบรรทัดคำสั่ง ค่าเริ่มต้นจะเป็น 80 สำหรับ http และ 443 สำหรับ https

SSL/TLS Protocol

พารามิเตอร์โปรโตคอลที่เจรจาระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ สิ่งนี้จะถูกพิมพ์เมื่อใช้ SSL เท่านั้น

Document Path

URI คำขอแยกวิเคราะห์จากสตริงบรรทัดคำสั่ง

Document Length

นี่คือขนาดเป็นไบต์ของเอกสารแรกที่ส่งคืนสำเร็จ หากความยาวของเอกสารเปลี่ยนแปลงระหว่างการทดสอบ การตอบสนองจะถือว่าเป็นข้อผิดพลาด

Concurrency Level

จำนวนไคลเอ็นต์พร้อมกันที่ใช้ระหว่างการทดสอบ

Time taken for tests

นี่คือเวลาที่ใช้ตั้งแต่วินาทีที่การเชื่อมต่อซ็อกเก็ตแรกถูกสร้างขึ้นจนถึงเวลาที่ได้รับการตอบกลับล่าสุด

Complete requests

จำนวนการตอบกลับที่สำเร็จที่ได้รับ

Failed requests

จำนวนคำขอที่ถือว่าล้มเหลว หากตัวเลขมากกว่าศูนย์ ระบบจะพิมพ์บรรทัดอื่นที่แสดงจำนวนคำขอที่ล้มเหลวเนื่องจากการเชื่อมต่อ การอ่าน ความยาวเนื้อหาไม่ถูกต้อง หรือข้อยกเว้น

Write errors

จำนวนข้อผิดพลาดที่ล้มเหลวระหว่างการเขียน (ไปป์เสีย)

Non-2xx responses

จำนวนการตอบกลับที่ไม่อยู่ในรหัสการตอบกลับ 200 ชุด ถ้าคำตอบทั้งหมดคือ 200 ช่องนี้จะไม่ถูกพิมพ์

Keep-Alive requests

จำนวนการเชื่อมต่อที่ทำให้เกิดคำขอ Keep-Alive

Total body sent

หากกำหนดค่าให้ส่งข้อมูลเป็นส่วนหนึ่งของการทดสอบ นี่คือจำนวนไบต์ทั้งหมดที่ส่งระหว่างการทดสอบ ช่องนี้จะถูกละไว้หากการทดสอบไม่มีเนื้อหาที่จะส่ง

Total transferred

จำนวนไบต์ทั้งหมดที่ได้รับจากเซิร์ฟเวอร์ จำนวนนี้คือจำนวนไบต์ที่ส่งผ่านสาย

HTML transferred

จำนวนไบต์เอกสารทั้งหมดที่ได้รับจากเซิร์ฟเวอร์ จำนวนนี้ไม่รวมไบต์ที่ได้รับในส่วนหัว HTTP

Requests per second

นี่คือจำนวนคำขอต่อวินาที ค่านี้เป็นผลมาจากการหารจำนวนคำขอด้วยเวลาทั้งหมดที่ใช้

Time per request

เวลาเฉลี่ยที่ใช้ต่อคำขอ ค่าแรกคำนวณโดยใช้สูตร เวลาพร้อมกัน * เวลาที่ใช้ * 1,000/เสร็จแล้ว ส่วนค่าที่สองคำนวณโดยใช้สูตร เวลาที่ใช้ * 1,000/เสร็จแล้ว

Transfer rate

อัตราการถ่ายโอนที่คำนวณโดยสูตร totalread/1024/timetaken

ข้อบกพร่อง

มีบัฟเฟอร์ที่ประกาศแบบสแตติกหลายตัวที่มีความยาวคงที่ เมื่อรวมกับการแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่งแบบขี้เกียจ ส่วนหัวการตอบสนองจากเซิร์ฟเวอร์และอินพุตภายนอกอื่นๆ สิ่งนี้อาจกัดคุณได้

ไม่ได้ใช้ HTTP/1.x อย่างสมบูรณ์ ยอมรับเฉพาะรูปแบบการตอบสนองที่ 'คาดหวัง' บางรูปแบบเท่านั้น การใช้งาน strstr(3) ที่ค่อนข้างหนักจะแสดงขึ้นด้านบนสุดของโปรไฟล์ ซึ่งอาจบ่งบอกถึงปัญหาด้านประสิทธิภาพ กล่าวคือ คุณจะวัดประสิทธิภาพ ab มากกว่าประสิทธิภาพของเซิร์ฟเวอร์