Sunucudan yavaş aktarım hızında hata ayıklama


9

Bunu basit ama mümkün olduğunca belgelenmiş olarak açıklamaya çalışıyorum. Bu, bu sunucuya veya mevcut ISS'ime özel değil . Farklı ISS'lerle birlikte ve farklı sağlayıcılarla sunucularıma sahipken aynı sorunu gördüm (ABD'de GoDaddy, Kanada'da iWeb ve GloboTech). Yaygın olan tek şey Windows Server işletim sistemidir (2003 ve 2008 r2). Ancak şimdi şu anki sunucum ve yalnızca şu anda kullandığım ISS'ye bakalım.

Sorun :

Yerel iş istasyonum ile uzaktaki özel sunucum arasında çok yavaş aktarım oranları elde ediyorum. Sunucum 100 Mbps bağlantı noktasında ve yerel iş istasyonum optik fiber üzerinden 50 Mbps simetrik bağlantıda.

Belirtiler :

Hem sunucu hem de iş istasyonu, speedtest.net üzerinde ABD ve Meksika'daki farklı sunuculara ve konumlara karşı testler yaparken mükemmel sonuçlar (bağlantı hızlarına çok yakın) alır. Diyelim ki Dropbox'tan sunucuma veya iş istasyonuma büyük dosyalar indirirsem, 100 MB / sn ve 50 Mb / sn bağlantı hızlarına göre doğru olan tek bir bağlantıda sırasıyla 10 MB / sn ve 5 MB / sn aktarım hızları elde ederim. repectively.

Yine de, sunucumdan (HTTP veya FTP yoluyla) iş istasyonuma bir dosya aktarırsam, almam gereken 50 Mbps hıza (5 MBps aktarım hızı) bile yaklaşamıyorum, bunun yerine 3 Mbps'ye eşdeğer bir şey alıyorum (300 KBps aktarım hızı).

Neden bu kadar yavaş bir aktarım oranı aldığımı anlamaya çalışıyorum. Nasıl hata ayıklayacağından emin değilim. Ne zaman barındırma sağlayıcıları ile ilgili bir bilet yükseltmek, onlar tracert çıktıları için sormak ve nihayet sadece ortadaki bazı sunucuda suçlayın. Ama ilk başta söylediklerimi dikkate alırsak, bu doğru görünmüyor: GoDaddy, iWeb ve GloboTech ile sunucularıma sahipken ve farklı ISS'lerle kendim olurken bu tam hızı / sorunu gördüm farklı Internet hizmeti türleri . Gerçekten sunucu alanında bir yerde sabit bir ayar gibi görünüyor.

Yaptığım testler :

HIZ TESTİ

Bunlar speedtest.net'ten, ISS'nin Mexico City'deki veri merkezindeki bir sunucu da dahil olmak üzere farklı uzak sunuculara karşı özel sunucumda yürütülen hız testleri :

Kanada : 94.64 Mbps indirme ve 94.87 yükleme için http://www.speedtest.net/my-result/3470801975

San Jose, CA : Karşıdan yükleme için 93.58 Mbps ve yükleme için 95.48 Mbps http://www.speedtest.net/my-result/3470805341

Mexico City (kendi İSS veri merkezimdeki sunucu) : İndirme için 92.99 Mbps ve yükleme için 95.39 Mbps http://www.speedtest.net/my-result/3470810269

Bu testleri yerel iş istasyonumdan aynı sunuculara karşı çalıştırırsam, 50 Mbps bağlantıma da yakın hızlar elde ederim.

TRACERT

Bu, iş istasyonumdan özel sunucuma yürütülen yeni bir tracert çıktısıdır:

 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

Bu, sunucu olarak özel sunucum ve istemci olarak iş istasyonum kullanılarak yürütülen bir iperf testidir:

------------------------------------------------------------
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

Bu, iş istasyonumdan özel sunucuma yürütülen bir yol gösterimi çıktısıdır:

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.

Kendiniz için deneyebileceğiniz şeyler

Denemek isterseniz, bunlar test amacıyla sunucuda kurduğum birkaç şeydir:

HTTP sunucusundaki büyük dosya

Sunucuma HTTP üzerinden indirilebilecek 5 GB'lik bir dosya yerleştirdim. Burada bulabilirsiniz: http://www.marveldns.com/transfer_test/

Speedtest MINI uygulaması

Sunucumda bir "speedtest mini" testi kurdum. Onu ziyaret edebilir ve sunucumda ve kendinizde hem indirme hem de yükleme için ne kadar hız aldığını görebilirsiniz. Burada bulabilirsiniz: http://www.marveldns.com/speedtest/

Sonunda :

Daha önce söylediğim gibi, her şeyi anlamak için yardım almaya çalışıyorum. TCP / IP veya üst düzey ağ iletişimi konusunda uzman değilim. Dürüst olmak gerekirse, sorunu çözmek için tracert, iperf veya pingpath sonuçlarını nasıl kullanacağımı net olarak bilmiyorum, ancak bunları dahil ediyorum çünkü bu sorun hakkında konuştuğumda her zaman soruldum.

Sorum daha iyi olmak için bir şeyden yoksunsa, lütfen sadece aşağı inmeyin ve neyin yanlış olduğunu veya yardım almak için başka neler ekleyebileceğimi bana bildirin. Teşekkür ederim.


sadece merak ettiğim için, dosyanızı özel sunucunuzdaki localhost üzerinde sildiğinizde ne kadar hızınız var?
Brice

Merhaba Brice. Dosyayı doğrudan Windows Gezgini'nde aynı diskteki aynı klasöre manuel olarak kopyalarsam, elde ettiğim hızın hemen hemen aynı hızı olan 50 MB / s (bayt değil bit) bir şey alıyorum (bu nedenle diski kendisinden okuyup kendi kendine yazarken).
Francisco Zarabozo

1
Tracert'e göre, iş istasyonunuz oldukça büyük bir ağ üzerinde. Bağlantıları yavaşlatacak bir tür Qos olup olmadığını yerel ağ yöneticisine sormayı denediniz mi?

Aynı anda birden çok aktarım başlatırsanız, birleşik hız beklenen 50Mbit / s'ye yakın mı? yani. Her şeyde yavaş mı yoksa bağlantı başına yavaş mı?
Hibe

@Hrant: Birden fazla bağlantı ile 50 Mbps'ye kadar reklam verir. Sınır, bağlantı başına oluşur.
Francisco Zarabozo

Yanıtlar:


9

Bu URL'ye erişirken gördüğüm darboğaz açıkça pencere boyutundan kaynaklanıyor.

Sunucunuzdan indirmeye çalıştığımda 555KB / s alıyorum. 108 ms'lik bir gidiş-dönüş zamanım var. Matematik yaparken aşağıdaki pencere boyutu elde: 555KB / s * 108ms = 59.94KB.

Bir veri merkezinde bir ana bilgisayardan yaptığım sürece, çok tutarlı bir verim ve gidiş-dönüş olsun. Ayrıca, paralel olarak iki kez indirmeye başlarsam her biri 555KB / s olsun. Bu, darboğazın pencere boyutu olduğu zaman göreceğiniz belirtilerdir.

Pencere ölçeklendirme olmadan, pencere 64KB'den daha büyük olamaz. Ancak pencere ölçeklendirmesinin müzakere edildiğini görüyorum, bu yüzden daha yüksek verim mümkün olmalıdır. Bu araştırmak için iki hipotez bırakır:

  • Bir şey, istemciden sunucuya giden yoldaki pencere ölçeklendirme seçeneğini, sunucunun pencerenin 1 katıyla ölçeklendiğini düşünmesini sağlar.
  • Sunucu, her bağlantıda hiçbir zaman 60 KB'den fazla gönderme penceresi kullanmayacak şekilde yapılandırılmış olabilir.

İlki, sunucuda paket yakalama yapıp yapamayacağınızı doğrulamak kolaydır. Sunucu tarafından birden fazla ölçeklendirme faktörünün alınıp alınmadığını öğrenmek için, gelen SYN paketlerindeki ölçeklendirme seçeneğine bakın. Trafiği analiz etmek için Wireshark kullanmanızı tavsiye ederim.

İkinci hipotezi doğrulamak, kullandığınız işletim sistemi hakkında biraz bilgi gerektirir. Benim bilmediğim bir işletim sistemi seçtiniz, böylece yardım edemem. Bu yüzden sadece ağ kurma uzmanlığına yardımcı olabilirim.


% 100 emin değilim, ama soket gönderme ve alma tampon boyutu (soket seçenekleri SO_RVSBUF ve SO_SNDBUF) pencere boyutu etkilenmez mi? Tamponun çok küçük olduğu benzer olaylar gördüm (örn. 1KB) ve iş hacmi 4KB veya 8KB ile karşılaştırıldığında çok kısıtlıydı.
Cameron Kerr

@CameronKerr Yorumunuz iletişime yeniden bakmamı istedi. Bu kez dizüstü bilgisayarımdan test ettim (WiFi'da ve daha düşük bir verim alır). Ne gözlem 105MB gidiş dönüş ile 138KB / s olsun oldu. Bu, 14.5KB'lik etkili bir pencere boyutu anlamına gelir. Dizüstü bilgisayarımın tanıdığı alma penceresi, verim sabitlenmeden önce 679 << 7'ye (yaklaşık 85 KB) büyüdü. Bu, ölçekleme faktörünün geçişte basitçe sıfırlanması olasılığını ortadan kaldırmalı ve işimin sonunda uçta alma tamponu ile kısıtlanma olasılığını ortadan kaldırmalıdır.
kasperd

Windows Server 2008 R2 için ilgili bir makaleyi burada bulabilirsiniz: andydavies.me/blog/2011/11/21/…
Francisco Zarabozo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.