การดีบักอัตราการถ่ายโอนช้าจากเซิร์ฟเวอร์


9

ฉันพยายามอธิบายสิ่งนี้ให้ง่าย แต่มีเอกสารมากที่สุด นี้ไม่ได้ จำกัด เฉพาะเซิร์ฟเวอร์นี้หรือ ISP ฉันเคยเห็นปัญหาเดียวกันนี้มาหลายปีแล้วในขณะที่อยู่กับ ISP ที่ต่างกันและมีเซิร์ฟเวอร์ของฉันกับผู้ให้บริการที่แตกต่างกัน (GoDaddy ในสหรัฐอเมริกา iWeb และ GloboTech ในแคนาดา) สิ่งเดียวที่พบได้ทั่วไปคือ Windows Server OS (2003 และ 2008 r2) แต่ลองดูที่เซิร์ฟเวอร์ปัจจุบันของฉันและ ISP ปัจจุบันของฉันเท่านั้น

ปัญหา :

ฉันได้รับอัตราการถ่ายโอนช้ามากระหว่างเวิร์กสเตชันในพื้นที่ของฉันกับเซิร์ฟเวอร์เฉพาะระยะไกล เซิร์ฟเวอร์ของฉันอยู่ที่พอร์ต 100 Mbps และเวิร์กสเตชันในพื้นที่ของฉันใช้การเชื่อมต่อแบบ symmet บน 50 Mbps ผ่านใยแก้วนำแสง

อาการ :

ทั้งเซิร์ฟเวอร์และเวิร์กสเตชันได้รับผลลัพธ์ที่ยอดเยี่ยม (ใกล้เคียงกับความเร็วในการเชื่อมต่อมากที่สุด) เมื่อทำการทดสอบบน speedtest.net กับเซิร์ฟเวอร์และสถานที่ต่างๆในสหรัฐอเมริกาและเม็กซิโก ถ้าฉันดาวน์โหลดไฟล์ขนาดใหญ่สมมติว่า Dropbox ไปยังเซิร์ฟเวอร์หรือเวิร์กสเตชันของฉันฉันจะได้รับอัตราการถ่ายโอนที่ 10 MBps และ 5 MBps ตามลำดับในการเชื่อมต่อเดียวซึ่งถูกต้องตามความเร็วในการเชื่อมต่อแต่ละ 100 Mbps และ 50 Mbps ตามลำดับ

แต่ถ้าฉันถ่ายโอนไฟล์จากเซิร์ฟเวอร์ของฉัน (ผ่าน HTTP หรือ FTP) ไปยังเวิร์กสเตชันของฉันฉันไม่ได้ใกล้เคียงกับความเร็ว 50 Mbps ที่ฉันควรได้รับ (อัตราการถ่ายโอน 5 MBps) แต่ฉันได้รับบางสิ่งเทียบเท่ากับ 3 Mbps (อัตราการถ่ายโอน 300 KBps)

ฉันพยายามที่จะเข้าใจว่าทำไมฉันถึงได้อัตราการถ่ายโอนที่ช้า ฉันไม่แน่ใจว่าจะแก้ไขข้อบกพร่องได้อย่างไร เมื่อใดก็ตามที่ฉันเพิ่มตั๋วเกี่ยวกับปัญหากับผู้ให้บริการโฮสต์พวกเขาขอให้ฉันออก tracert และในที่สุดก็แค่โทษมันบนเซิร์ฟเวอร์บางตัวที่อยู่ตรงกลาง แต่ดูเหมือนจะไม่ถูกต้องถ้าเราคำนึงถึงสิ่งที่ฉันพูดตอนแรก: ฉันเคยเห็นความเร็ว / ปัญหาที่แน่นอนในขณะที่มีเซิร์ฟเวอร์ของฉันกับ GoDaddy, iWeb และ GloboTech และในขณะที่อยู่กับ ISP ที่แตกต่างกันมาก ความแตกต่างของบริการอินเทอร์เน็ต ดูเหมือนว่าจะเป็นการตั้งค่าคงที่ที่ใดที่หนึ่งในพื้นที่เซิร์ฟเวอร์

การทดสอบที่ฉันทำ :

Speedtest

นี่คือการทดสอบความเร็วจาก speedtest.net ที่ดำเนินการในเซิร์ฟเวอร์เฉพาะของฉันกับเซิร์ฟเวอร์ระยะไกลที่แตกต่างกันรวมถึงเซิร์ฟเวอร์ในศูนย์ข้อมูล ISP ของฉันในเม็กซิโกซิตี้:

แคนาดา : ดาวน์โหลด 94.64 Mbps และอัปโหลด 94.87 http://www.speedtest.net/my-result/3470801975

ซานโฮเซ, แคลิฟอร์เนีย : ดาวน์โหลด 93.58 Mbps และ 95.48 Mbps สำหรับการอัพโหลด http://www.speedtest.net/my-result/3470805341

เม็กซิโกซิตี้ (เซิร์ฟเวอร์ในดาต้าเซิร์ฟเวอร์ของตัวเอง) : 92.99 Mbps สำหรับดาวน์โหลดและ 95.39 Mbps สำหรับการอัพโหลด http://www.speedtest.net/my-result/3470810269

ถ้าฉันทำการทดสอบเหล่านั้นกับเซิร์ฟเวอร์เดียวกันจากเวิร์กสเตชันท้องถิ่นของฉันฉันจะได้ความเร็วใกล้เคียงกับการเชื่อมต่อ 50 Mbps ของฉันด้วย

TRACERT

นี่เป็นผลลัพธ์ tracert ล่าสุดที่ดำเนินการจากเวิร์กสเตชันของฉันไปยังเซิร์ฟเวอร์เฉพาะของฉัน:

 1    <1 ms    <1 ms    <1 ms  192.168.7.254
 2     2 ms     1 ms     1 ms  10.69.32.1
 3     *        3 ms     2 ms  10.5.50.174
 4     3 ms     2 ms     2 ms  10.5.50.173
 5     *        5 ms     3 ms  fixed-203-69-2.iusacell.net [189.203.69.2]
 6    32 ms    32 ms    32 ms  8-1-33.ear1.Dallas1.Level3.net [4.71.220.89]
 7    33 ms    33 ms    33 ms  ae-3-80.edge5.Dallas3.Level3.net [4.69.145.145]
 8    33 ms    33 ms    33 ms  ae13.dal33.ip4.tinet.net [77.67.71.221]
 9    76 ms    76 ms   157 ms  xe-1-0-0.mtl10.ip4.tinet.net [89.149.185.41]
10    72 ms    72 ms    72 ms  te2-2.cr2.mtl3.gtcomm.net [67.215.0.160]
11    72 ms    72 ms    72 ms  ae2.csr2.mtl3.gtcomm.net [67.215.0.134]
12    72 ms    72 ms    73 ms  te3-4.dist1.mtl8.gtcomm.net [67.215.0.83]
13    72 ms    72 ms    72 ms  ns1.marveldns.com [173.209.57.82]

iperf

นี่เป็นการทดสอบ iperf ที่ดำเนินการโดยใช้เซิร์ฟเวอร์เฉพาะของฉันเป็นเซิร์ฟเวอร์และเวิร์กสเตชันของฉันในฐานะลูกค้า:

------------------------------------------------------------
Client connecting to ns1.marveldns.com, TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.7.2 port 60339 connected with 173.209.57.82 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.3 sec  5.62 MBytes  4.59 Mbits/sec

Pathping

นี่คือผลลัพธ์ของการคำแนะนำการเบิกพาชมการดำเนินการจากเวิร์กสเตชันของฉันไปยังเซิร์ฟเวอร์เฉพาะของฉัน:

Tracing route to ns1.marveldns.com [173.209.57.82]
over a maximum of 30 hops:
  0  ws1 [192.168.7.2]
  1  192.168.7.254
  2  10.69.32.1
  3     *     10.5.50.174
  4  10.5.50.173
  5  fixed-203-69-2.iusacell.net [189.203.69.2]
  6  8-1-33.ear1.Dallas1.Level3.net [4.71.220.89]
  7  ae-3-80.edge5.Dallas3.Level3.net [4.69.145.145]
  8  ae13.dal33.ip4.tinet.net [77.67.71.221]
  9  xe-1-0-0.mtl10.ip4.tinet.net [89.149.185.41]
 10  te2-2.cr2.mtl3.gtcomm.net [67.215.0.160]
 11  ae2.csr2.mtl3.gtcomm.net [67.215.0.134]
 12  te3-4.dist1.mtl8.gtcomm.net [67.215.0.83]
 13  ns1.marveldns.com [173.209.57.82]

Computing statistics for 325 seconds...
            Source to Here   This Node/Link
Hop    RTT  Lost/Sent = Pct  Lost/Sent = Pct  Address
  0                                           ws1 [192.168.7.2]
                                0/ 100 =  0%   |
  1    0ms     0/ 100 =  0%     0/ 100 =  0%  192.168.7.254
                                0/ 100 =  0%   |
  2    1ms     0/ 100 =  0%     0/ 100 =  0%  10.69.32.1
                                0/ 100 =  0%   |
  3    3ms     0/ 100 =  0%     0/ 100 =  0%  10.5.50.174
                                0/ 100 =  0%   |
  4    2ms     0/ 100 =  0%     0/ 100 =  0%  10.5.50.173
                                0/ 100 =  0%   |
  5    4ms    20/ 100 = 20%    20/ 100 = 20%  fixed-203-69-2.iusacell.net [189.203.69.2]
                                0/ 100 =  0%   |
  6   34ms     0/ 100 =  0%     0/ 100 =  0%  8-1-33.ear1.Dallas1.Level3.net [4.71.220.89]
                                0/ 100 =  0%   |
  7   34ms     0/ 100 =  0%     0/ 100 =  0%  ae-3-80.edge5.Dallas3.Level3.net [4.69.145.145]
                                0/ 100 =  0%   |
  8   33ms     0/ 100 =  0%     0/ 100 =  0%  ae13.dal33.ip4.tinet.net [77.67.71.221]
                                0/ 100 =  0%   |
  9   79ms     0/ 100 =  0%     0/ 100 =  0%  xe-1-0-0.mtl10.ip4.tinet.net [89.149.185.41]
                                2/ 100 =  2%   |
 10   73ms    14/ 100 = 14%    12/ 100 = 12%  te2-2.cr2.mtl3.gtcomm.net [67.215.0.160]
                                0/ 100 =  0%   |
 11   72ms     2/ 100 =  2%     0/ 100 =  0%  ae2.csr2.mtl3.gtcomm.net [67.215.0.134]
                                2/ 100 =  2%   |
 12   72ms    18/ 100 = 18%    14/ 100 = 14%  te3-4.dist1.mtl8.gtcomm.net [67.215.0.83]
                                0/ 100 =  0%   |
 13   72ms     4/ 100 =  4%     0/ 100 =  0%  ns1.marveldns.com [173.209.57.82]

Trace complete.

สิ่งที่คุณสามารถลองด้วยตัวเอง

หากคุณต้องการทดลองใช้สิ่งเหล่านี้คือสิ่งที่ฉันได้ติดตั้งในเซิร์ฟเวอร์เพื่อการทดสอบ:

ไฟล์ขนาดใหญ่บนเซิร์ฟเวอร์ HTTP

ฉันวางไฟล์ 5 GB ในเซิร์ฟเวอร์ของฉันที่สามารถดาวน์โหลดได้ผ่าน HTTP คุณสามารถค้นหาได้ที่นี่: http://www.marveldns.com/transfer_test/

แอพ Speedtest MINI

ฉันได้ตั้งค่าการทดสอบ "speedtest mini" บนเซิร์ฟเวอร์ของฉัน คุณสามารถเยี่ยมชมและดูว่ามันเร็วแค่ไหนที่คุณได้รับทั้งการดาวน์โหลดและอัพโหลดภายในเซิร์ฟเวอร์ของฉันและตัวคุณเอง คุณสามารถค้นหาได้ที่นี่: http://www.marveldns.com/speedtest/

ในที่สุด :

อย่างที่ฉันพูดไปก่อนหน้านี้ฉันพยายามช่วยให้เข้าใจสิ่งทั้งหมด ฉันไม่เชี่ยวชาญใน TCP / IP หรือเครือข่ายปลายด้านบน ฉันไม่ได้มีความชัดเจนในการใช้ผลลัพธ์ของ tracert, iperf หรือ pingpath เพื่อให้สามารถแก้ไขปัญหาได้ แต่ฉันรวมไว้เพราะฉันมักจะถามมันเมื่อฉันพูดถึงปัญหานี้

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


เพียงเพราะฉันอยากรู้อยากเห็นคุณมีความเร็วเมื่อคุณ wget ไฟล์ของคุณบน localhost บนเซิร์ฟเวอร์เฉพาะของคุณหรือไม่
Brice

สวัสดี Brice ฉันได้รับบางอย่างประมาณ 50 MB / s (ไบต์ไม่ใช่บิต) ซึ่งค่อนข้างเร็วเท่ากันถ้าฉันคัดลอกไฟล์ไปยังโฟลเดอร์เดียวกันในดิสก์เดียวกันโดยตรงใน Windows Explorer (ด้วยตนเอง) ดิสก์ในขณะที่มันอ่านและเขียนจากตัวเอง)
Francisco Zarabozo

1
ตาม tracert เวิร์กสเตชันของคุณอยู่ในเครือข่ายที่ค่อนข้างใหญ่ คุณลองถามผู้ดูแลระบบเครือข่ายท้องถิ่นว่ามี Qos บางประเภทที่จะทำให้การเชื่อมต่อช้าลงหรือไม่?

หากคุณเริ่มการถ่ายโอนหลายครั้งพร้อมกันความเร็วรวมจะเพิ่มขึ้นใกล้กับ 50Mbit / s ที่คาดไว้หรือไม่ กล่าวคือ มันช้ากว่าทั้งหมดหรือช้าต่อการเชื่อมต่อ?
อนุญาต

@Grant: ด้วยการเชื่อมต่อที่หลากหลายทำให้โฆษณาสูงถึง 50 Mbps ขีด จำกัด เกิดขึ้นต่อการเชื่อมต่อ
Francisco Zarabozo

คำตอบ:


9

คอขวดที่ฉันเห็นเมื่อเข้าถึง URL นั้นชัดเจนเนื่องจากขนาดของหน้าต่าง

เมื่อฉันพยายามดาวน์โหลดจากเซิร์ฟเวอร์ของคุณฉันจะได้รับ 555KB / s ฉันมีเวลาไปกลับ 108ms ทำคณิตศาสตร์ฉันได้รับขนาดหน้าต่างต่อไปนี้: 555KB / s * 108ms = 59.94KB

ตราบใดที่ฉันทำจากโฮสต์ในดาต้าเซ็นเตอร์ฉันจะได้รับปริมาณงานและการรับส่งที่สอดคล้องกันมาก นอกจากนี้หากฉันเริ่มดาวน์โหลดสองแบบพร้อมกันแต่ละครั้งจะได้รับ 555KB / s นั่นคืออาการที่คุณจะเห็นเมื่อขนาดขวดเป็นขนาดหน้าต่าง

หากไม่มีการปรับขนาดหน้าต่างหน้าต่างจะไม่ใหญ่กว่า 64KB แต่ฉันเห็นว่าการปรับสเกลหน้าต่างถูกเจรจาดังนั้นปริมาณงานที่สูงขึ้นควรเป็นไปได้ นี่เป็นข้อสมมติฐานสองข้อในการตรวจสอบ:

  • มีบางอย่างที่ mangling ตัวเลือกการปรับขนาดหน้าต่างบนเส้นทางจากไคลเอนต์ไปยังเซิร์ฟเวอร์ทำให้เซิร์ฟเวอร์คิดว่าหน้าต่างถูกปรับอัตราส่วนด้วย 1
  • เซิร์ฟเวอร์อาจถูกกำหนดค่าให้ไม่ใช้มากกว่า 60KB ส่งหน้าต่างในแต่ละการเชื่อมต่อ

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

การตรวจสอบสมมติฐานที่สองจำเป็นต้องมีความรู้เกี่ยวกับระบบปฏิบัติการที่คุณใช้อยู่ คุณบังเอิญได้เลือกระบบปฏิบัติการที่ฉันไม่รู้จักดังนั้นฉันจึงไม่สามารถช่วยเหลือได้ ดังนั้นฉันสามารถช่วยได้ด้วยความเชี่ยวชาญในระบบเครือข่าย


ฉันไม่แน่ใจ 100% แต่ขนาดของหน้าต่างไม่ได้รับผลกระทบจากซ็อกเก็ตการส่งและรับขนาดบัฟเฟอร์ (ตัวเลือกซ็อกเก็ต SO_RVSBUF และ SO_SNDBUF)? ฉันเคยเห็นเหตุการณ์ที่คล้ายกันซึ่งบัฟเฟอร์มีขนาดเล็กเกินไป (เช่น 1KB) และปริมาณงานมีข้อ จำกัด มากเมื่อเปรียบเทียบกับ 4KB หรือ 8KB)
คาเมรอนเคอร์

@CameronKerr ความคิดเห็นของคุณแจ้งให้ฉันดูการสื่อสารอีกครั้ง ครั้งนี้ฉันทดสอบจากแล็ปท็อปของฉัน (ซึ่งใช้ WiFi และลดปริมาณงาน) สิ่งที่ฉันสังเกตคือฉันได้รับ 138KB / s ด้วย 105ms ไปกลับ นั่นหมายถึงขนาดหน้าต่างที่มีประสิทธิภาพเท่ากับ 14.5KB หน้าต่างรับที่โฆษณาโดยแล็ปท็อปของฉันเพิ่มขึ้นเป็น 679 << 7 (ประมาณ 85KB) ก่อนที่ปริมาณงานจะเสถียร ที่ควรแยกแยะความเป็นไปได้ที่ปัจจัยการปรับสเกลนั้นมีค่าเป็นศูนย์ในการขนส่งและควรแยกแยะความเป็นไปได้ที่ปริมาณงานจะถูก จำกัด โดยรับบัฟเฟอร์ที่ส่วนท้ายของฉัน
kasperd

สามารถอ่านบทความที่เกี่ยวข้องสำหรับ Windows Server 2008 r2 ได้ที่นี่: andydavies.me/blog/2011/11/21/…
Francisco Zarabozo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.