มีวิธีที่ดีในการทดส... - KH1165

คำถามที่พบบ่อย

มีวิธีที่ดีในการทดสอบประสิทธิภาพ VPN หรือไม่
 

การทดสอบปริมาณงาน VPN โดยใช้โฟลเดอร์ที่แชร์ไฟล์ระยะไกลไม่ใช่ความคิดที่ดีโดยทั่วไปด้วยเหตุผลสองประการ:

เหตุผลแรกคือโปรโตคอลการแชร์ไฟล์เอง โปรโตคอลอย่าง SMB, AFP หรือ NFS ได้รับการออกแบบมาสำหรับเครือข่ายภายในเครื่องที่มีความเร็ว เชื่อถือได้ และมีเวลาแฝงต่ำ อินเทอร์เน็ตในทางกลับกันช้า (อย่างน้อยก็การเชื่อมต่อกับอินเทอร์เน็ต) ไม่น่าเชื่อถือและมีเวลาแฝงสูง เพื่อให้ได้ผลลัพธ์ที่สมจริง คุณต้องใช้โปรโตคอลที่ได้รับการปรับให้เหมาะสมสำหรับสถานการณ์ดังกล่าว เช่น HTTP หรือ FTP

เหตุผลที่สองคือการใช้งานโปรโตคอลเอง ปัจจุบันโฟลเดอร์ที่แชร์ส่วนใหญ่ใช้ SMB ซึ่งเป็นโปรโตคอลการแชร์ไฟล์ของ Windows Apple มีการใช้งานโปรโตคอลนี้ แต่ไม่ได้ดีนัก ในขณะที่การใช้งาน SMB 3.x นั้นแย่อยู่แล้ว การใช้งาน SMB 1.x/2.x (โหมดความเข้ากันได้) นั้นเลวร้ายมาก และด้วยเหตุผลหลายประการ macOS มักจะกลับไปสู่โหมดความเข้ากันได้นั้น เมื่อทดสอบกับโฟลเดอร์ที่แชร์ NAS ในเครื่อง เราได้รับ 28 MBps โดยใช้ SMB 3 และเพียง 18 MBps โดยใช้ SMB 1 เทียบกับ 50 MBps โดยใช้ AFP

หากคุณมี Mac ที่ด้านระยะไกล การตั้งค่าเซิร์ฟเวอร์ HTTP มาตรฐานสำหรับการวัดประสิทธิภาพก็เป็นเรื่องง่าย เพียงเปิดแอปพลิเคชันมาตรฐาน “Terminal” (ใช้ Spotlight เพื่อค้นหา) จากนั้นรันชุดคำสั่งต่อไปนี้ (แต่ละคำสั่งได้รับการยืนยันโดย Return/Enter):

mkdir /tmp/www-bench
cd /tmp/www-bench
dd count=1048576 bs=1024 if=/dev/random of=1GiB.dat
php -S 0.0.0.0:8080

คำสั่งแรกสร้างไดเรกทอรีใหม่ คำสั่งที่สองเข้าสู่ไดเรกทอรีนั้น คำสั่งที่สามสร้างไฟล์ข้อมูลขนาด 1 GiB ที่เต็มไปด้วยข้อมูลแบบสุ่ม และคำสั่งสุดท้ายเริ่มเซิร์ฟเวอร์ HTTP แบบง่ายที่ให้บริการเนื้อหาของไดเรกทอรีปัจจุบันที่พอร์ต 8080 ตอนนี้ผู้ใช้ VPN ของคุณสามารถเปิดที่อยู่นี้ใน Safari (หรือเบราว์เซอร์อื่น ๆ ):

http://a.b.c.d:8080/1GiB.dat

โดยที่ “a.b.c.d” คือที่อยู่ IP ของ Mac ที่คุณเพิ่งพิมพ์คำสั่งด้านบน เมื่อดูความเร็วในการถ่ายโอนในเบราว์เซอร์ คุณจะมีความคิดที่ดีว่า VPN ของคุณสามารถทำอะไรได้บ้าง แน่นอนว่าสิ่งนี้ถูกจำกัดด้วยปัจจัยหลายอย่าง เช่น ความเร็วของการเชื่อมต่ออินเทอร์เน็ตในเครื่องของคุณ ความเร็วของการเชื่อมต่ออินเทอร์เน็ตระยะไกล และพลังการประมวลผลของเกตเวย์ VPN (ซึ่งโดยทั่วไปจะน้อยกว่าพลังการประมวลผลของ Mac อย่างมาก)

หากต้องการทำความสะอาดหลังจากการทดสอบ ให้เปิดหน้าต่างเทอร์มินัลอีกครั้งแล้วกด CTRL+C เพื่อหยุดเซิร์ฟเวอร์ HTTP จากนั้นรันคำสั่งต่อไปนี้สองคำสั่ง:

cd
rm -r /tmp/www-bench