ค้นหาเว็บไซต์

วิธีทดสอบความเร็วในการโหลดเว็บไซต์ใน Linux Terminal


เวลาตอบสนองของเว็บไซต์สามารถมีผลกระทบอย่างมากต่อประสบการณ์ของผู้ใช้ และหากคุณเป็นนักพัฒนาเว็บ หรือเพียงผู้ดูแลระบบเซิร์ฟเวอร์ที่รับผิดชอบเป็นพิเศษในการจัดระเบียบชิ้นส่วนต่างๆ ไว้ด้วยกัน คุณต้องทำให้เป็นจุดที่ผู้ใช้ไม่รู้สึก รู้สึกหงุดหงิดขณะเข้าถึงไซต์ของคุณ ดังนั้นจึงมี "ความต้องการความเร็ว" จริงๆ

อ่านเพิ่มเติม: httpstat – เครื่องมือสถิติ Curl เพื่อตรวจสอบประสิทธิภาพของเว็บไซต์

คู่มือนี้จะแสดงวิธีทดสอบเวลาตอบสนองของเว็บไซต์จากบรรทัดคำสั่ง Linux เราจะแสดงวิธีการตรวจสอบเวลาเป็นวินาที โดยใช้เวลา:

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

นอกจากนี้ สำหรับไซต์ที่เปิดใช้งาน HTTPS เราจะดูวิธีทดสอบเวลาเป็นวินาทีที่ใช้: สำหรับการเปลี่ยนเส้นทาง และการเชื่อมต่อ SSL/แฮนด์เชคไปยังเซิร์ฟเวอร์จึงจะเสร็จสมบูรณ์ มันฟังดูดี โอเค มาเริ่มกันเลย

cURL เป็นเครื่องมือบรรทัดคำสั่งที่มีประสิทธิภาพในการถ่ายโอนข้อมูลจากหรือไปยังเซิร์ฟเวอร์ โดยใช้โปรโตคอล เช่น FILE, FTP, FTPS, HTTP, HTTPS และอื่นๆ อีกมากมาย ในกรณีส่วนใหญ่จะใช้เป็นเครื่องมือดาวน์โหลดบรรทัดคำสั่งหรือสำหรับตรวจสอบส่วนหัว HTTP อย่างไรก็ตาม ในที่นี้ เราจะอธิบายหนึ่งในฟังก์ชันที่ไม่ค่อยมีใครรู้จัก

cURL มีตัวเลือกที่มีประโยชน์: -w สำหรับการพิมพ์ข้อมูลบน stdout หลังจากการดำเนินการเสร็จสิ้น มีตัวแปรบางตัวที่เราสามารถใช้เพื่อทดสอบเวลาตอบสนองต่างๆ ที่ระบุไว้ข้างต้นของเว็บไซต์

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

ดังนั้นให้เปิดเทอร์มินัลของคุณแล้วรันคำสั่งด้านล่าง:

curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null http://www.google.com

ตัวแปรในรูปแบบข้างต้นคือ:

  • time_namelookup – เวลาเป็นวินาที ใช้เวลาตั้งแต่เริ่มต้นจนกระทั่งการแก้ไขชื่อเสร็จสมบูรณ์
  • time_connect – เวลาในหน่วยวินาที ใช้เวลาตั้งแต่เริ่มต้นจนกระทั่งการเชื่อมต่อ TCP กับโฮสต์ระยะไกล (หรือพร็อกซี) เสร็จสมบูรณ์
  • time_pretransfer – เวลาเป็นวินาที ใช้เวลาตั้งแต่เริ่มต้นจนกระทั่งการถ่ายโอนไฟล์กำลังจะเริ่มต้น
  • time_starttransfer – เวลาเป็นวินาที ใช้เวลาตั้งแต่เริ่มต้นจนกระทั่งไบต์แรกใกล้จะถูกถ่ายโอน
  • time_total – เวลาทั้งหมดเป็นวินาทีที่การดำเนินการทั้งหมดดำเนินไป (ความละเอียดมิลลิวินาที)

หากรูปแบบยาวเกินไป คุณสามารถเขียนเป็นไฟล์และใช้ไวยากรณ์ด้านล่างเพื่ออ่านได้:

curl -s -w "@format.txt" -o /dev/null http://www.google.com

ในคำสั่งข้างต้น แฟล็ก:

  • -s – สั่งให้ curl ทำงานแบบเงียบ ๆ
  • -w – พิมพ์ข้อมูลบน stdout
  • -o – ใช้เพื่อเปลี่ยนเส้นทางเอาต์พุต (ในที่นี้เราจะละทิ้งเอาต์พุตโดยเปลี่ยนเส้นทางไปที่ /dev/null)

สำหรับไซต์ HTTPS คุณสามารถเรียกใช้คำสั่งด้านล่าง:

curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.google.com

ในรูปแบบข้างต้น ตัวแปรเวลาใหม่คือ:

  • time_appconnect – เวลาเป็นวินาที ใช้เวลาตั้งแต่เริ่มต้นจนกระทั่งการเชื่อมต่อ SSL/แฮนด์เชคไปยังโฮสต์ระยะไกลเสร็จสมบูรณ์
  • time_redirect – เวลาเป็นวินาทีที่ใช้สำหรับขั้นตอนการเปลี่ยนเส้นทางทั้งหมด รวมถึงการค้นหาชื่อ เชื่อมต่อ โอนล่วงหน้า และโอนก่อนที่ธุรกรรมสุดท้ายจะเริ่มต้น จะคำนวณเวลาดำเนินการทั้งหมดสำหรับการเปลี่ยนเส้นทางหลายครั้ง

จุดสำคัญที่ควรสังเกต

  • คุณจะสังเกตเห็นว่าค่าเวลาตอบสนองเปลี่ยนแปลงตลอดเวลา (เนื่องจากปัจจัยหลายประการ) เมื่อคุณทำการทดสอบที่แตกต่างกัน ดังนั้นจึงแนะนำให้รวบรวมหลายค่าและรับความเร็วเฉลี่ย
  • ประการที่สอง จากผลลัพธ์ของคำสั่งด้านบน คุณจะเห็นว่าการเข้าถึงเว็บไซต์ผ่าน HTTP นั้นเร็วกว่า HTTPS มาก

สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้าคน cURL:

man curl

สุดท้ายแต่ไม่ท้ายสุด หากผลลัพธ์ของคุณไม่เป็นที่น่าพอใจ คุณก็ต้องทำการปรับเปลี่ยนบางอย่างบนเซิร์ฟเวอร์หรือภายในโค้ด คุณอาจลองใช้บทช่วยสอนต่อไปนี้ซึ่งอธิบายโปรแกรมและเคล็ดลับในการทำให้เว็บไซต์โหลดเร็วขึ้นใน Linux:

  1. ติดตั้ง Nginx ด้วย Ngx_Pagespeed (การเพิ่มประสิทธิภาพความเร็ว) บน Debian และ Ubuntu
  2. เร่งความเร็วประสิทธิภาพ Nginx ด้วย Ngx_Pagespeed บน CentOS 7
  3. เรียนรู้วิธีเพิ่มความเร็วเว็บไซต์โดยใช้โมดูล Nginx และ Gzip
  4. วิธีเพิ่มความเร็วอินเทอร์เน็ตของเซิร์ฟเวอร์ Linux ด้วย TCP BBR

นั่นคือทั้งหมด! ตอนนี้คุณรู้วิธีทดสอบเวลาตอบสนองของเว็บไซต์จากบรรทัดคำสั่งแล้ว คุณสามารถถามคำถามผ่านแบบฟอร์มข้อเสนอแนะด้านล่าง