วิธีทดสอบความเร็วในการโหลดเว็บไซต์ใน 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:
- ติดตั้ง Nginx ด้วย Ngx_Pagespeed (การเพิ่มประสิทธิภาพความเร็ว) บน Debian และ Ubuntu
- เร่งความเร็วประสิทธิภาพ Nginx ด้วย Ngx_Pagespeed บน CentOS 7
- เรียนรู้วิธีเพิ่มความเร็วเว็บไซต์โดยใช้โมดูล Nginx และ Gzip
- วิธีเพิ่มความเร็วอินเทอร์เน็ตของเซิร์ฟเวอร์ Linux ด้วย TCP BBR
นั่นคือทั้งหมด! ตอนนี้คุณรู้วิธีทดสอบเวลาตอบสนองของเว็บไซต์จากบรรทัดคำสั่งแล้ว คุณสามารถถามคำถามผ่านแบบฟอร์มข้อเสนอแนะด้านล่าง