Birçok bağlantıyı işlemek için Windows Server 2008 R2 nasıl geliştirilir?


9

Bu sorunu nasıl çözeceğimizi anlamaya çalıştığım birkaç gün oldu. Her şeyden önce, günlük ortalama 350.000 sayfa görüntülemesine sahip bir web sitesi çalıştırıyorum. Daha önce, tüm reklam yönetimi (her bir reklamın sunduğu izleme tıklaması ve gösterimi) ve içerik, aşağıdaki spesifikasyonlara sahip tek bir sunucuda sunulmuştu:

Sunucu 1
İşletim Sistemi: Windows 2008 R2 64-Bit
İşlemci: Intel® Core ™ i5 - 4 çekirdek
Rastgele erişimli hafıza: 8 GB
Depolama: 2 x 1 TB sabit diskler
Bant genişliği: aylık 10 TB

Web sitemizin hızını artırmak için, reklam yönetimi komut dosyasını başka bir özel sunucuya ayırmaya karar verdim çünkü her sayfa için 30'dan fazla reklamverene 15'ten fazla reklamverenimiz var.

Sunucu 2
İşletim Sistemi: Windows 2008 R2 64-Bit
İşlemci: Intel® Core ™ i5 - 4 çekirdek
Rastgele erişimli hafıza: 4 GB
Depolama: 2 x 300 GB sabit diskler
Bant genişliği: aylık 10 TB

Sorun
sorun olduğunu Server 1hem içerik ve reklamları sistemini işleyebilir. Şimdi, reklam sistemini alıp veriyorum Server 2. Server 2zar zor reklam sistemi sunabilir.

Ölçek

  • Her şeyden önce, reklamların% 75'ine taşındım Server 2. Ve sonra, sunucuya bir ping gerçekleştirin: ping -t xxxxx. [10 dakika boyunca ping yaptım ve aşağıdaki gibi benzer bir desen yaptım]
Xxxxx bayt yanıt = 32 time = 290ms TTL = 116
Xxxxx bayt yanıt = 32 time = 289ms TTL = 116
Xxxxx bayt yanıt = 32 time = 320ms TTL = 116
Xxxxx bayt yanıt = 32 time = 286ms TTL = 116
Xxxxx bayt yanıt = 32 time = 286ms TTL = 116
Xxxxx bayt yanıt = 32 time = 348ms TTL = 116
Xxxxx bayt yanıt = 32 time = 284ms TTL = 116
  • Sonra, reklamların% 100'ünü adresine taşıdım Server 2. Ardından, sunucuya bir ping işlemi gerçekleştirin. [10 dakika boyunca ping yaptım ve aşağıdaki gibi benzer bir desen yaptım]
Xxxxx bayt yanıt = 32 time = 290ms TTL = 116
İstek zaman aşımına uğradı
Xxxxx bayt yanıt = 32 time = 320ms TTL = 116
Xxxxx bayt yanıt = 32 time = 286ms TTL = 116
İstek zaman aşımına uğradı
İstek zaman aşımına uğradı
Xxxxx bayt yanıt = 32 time = 284ms TTL = 116

Denemeler

  1. Artır MaxUserPortveTcpNumConnection
  2. Sunucuyu yeniden başlatın
  3. IIS'yi artırın Max InstancesveInstance MaxRequests

Sunucu Kaynağı

  • Ağ bağlantısının yalnızca% 10-% 15'i kullanılır
  • CPU'nun sadece% 10-% 15'i kullanılır
  • Belleğin sadece% 25'i kullanılıyor

3
Bu benim görüşüme göre iyi biçimlendirilmiş bir soru ve yukarı oylara layık, ama bilmeceyi çözmemize yardımcı olacak bazı ipuçlarını kaçırdığımızı hissediyorum.
Ryan Ries

@RyanRies, lütfen bu bilmeceyi çözmek için hangi eksik bilgilerin gerekli olduğunu gösterin. Şu anda, Sunucu 2'deki reklamların% 75'i ve Sunucu 1'deki reklamların% 25'i var. Şu anda oldukça iyi performans gösteriyor, ancak tamamen Sunucu 2'ye geçemiyorum.
Monkey D Luffy

1
@RyanRies'e katılıyorum: bir şey eksik. Reklam sunma sisteminin oluşturulma şeklini inceleyeceğim: içerik ve reklam sunma hizmetleri arasında aşırı gecikmeye neden olan bir bağımlılık olabilir.
Stephane

@Stephane no, bu kayıp pinglere neden olmamalı ve etmemelidir. Pingler reklam sunma kodu tarafından değil, doğrudan TCP yığını tarafından işlenir. Bu, temel olarak Sunucu CRAZILY aşırı yüklenmedikçe çalışması gerektiği anlamına gelir. Ciddi görünüyor - cevabımın başına - bant genişliği gibi orada değil. Sunucudan önce.
TomTom

Burada eksik olan bazı şeyler 1) ortamınızda neyi değiştirebilir / değiştiremezsiniz? 2) Web sunucuları disk tarafından nasıl yapılandırılır? 3) ağ süreleri bulunduğunuz yerin içinde mi yoksa bu uzak sunucu mu? Uzak bir sunucuysa, ne kadar uzakta? 4) sever'inizi iyileştirmeniz gerekiyorsa, karta donanım eklemek için bütçe özgürlüğünüz nedir? 5) olay günlükleri herhangi bir hata atıyor mu? 6) Trafik yüksekliğinde perfmon yakalama sonuçları görmüyorum 7) benzersiz ziyaretçi sayılarınız nelerdir? 8) Önemsiz trafiği filtrelediniz mi?
Techie Joe

Yanıtlar:


4

Hadi başlayalım. Bu daha uzun.

Burada görünen gerçekleri tamamen yanlış değerlendirdiniz. Windows - ASAP'yi güncellemeniz gereken güncel olmayan 2008 R2 bile - cep telefonumun herhangi bir sorunla karşılaşmadığı bir birimi tamamen kullanabiliyor.

Bu, 3 olası sorun alanını bırakıyor:

  • Kurulum. Sürücüleriniz berbat olabilir. Eski bir işletim sistemi çalıştırdığınızda - sürücüleriniz ne kadar iyi? Onları güncelleyin - bu her türlü soruna neden olabilir.

  • Ağ. Bu ciddi bir şekilde "Arabam çok yavaş, lütfen daha hızlı yapmama yardım et" gibi görünüyor. Araba ayarlama sorunu değil. 10 tb trafik, ağ tıkanıklığı hakkında hiçbir şey söylemez. Ağ trafiği istatistiklerinizi NIC'nizde izleyin ve buna göre tepki verin - eğer hızları aşılmazsa, olması gerekir ... sağlayıcınız aşırı satmıştır. Bu kadar basit.

  • Kod. Daha fazla RAM'e ihtiyacınız olabilir (bilgisayar işlemek yerine RAM'e takas etmekle meşgul olabilir) veya crappy kodlama, tüm CPU'nuzu çekirdek düzeyinde TCP yığınının düzgün tepki vermeyeceği bir dereceye kadar kullanıyor (evet, ICMP yanıtları bu kadar düşük). Bu acımasız olurdu - ama kontrol etmek için başka bir yol. Ayrıca, RAM'de önbelleklemek yerine çok sık erişerek diskleri aşırı yükleyebilirsiniz, ancak bir şekilde kayıp pinglere yol açtığını göremiyorum. Buradaki herhangi bir sorun, bir yöneticinin işleyebileceği bir şey değildir - ona donanım atmanız veya bir sopa alıp düzeltene kadar programcıya vurmanız gerekir (performansı yiyen "aptal" bir düzey hatasıysa - değilse, ciddi kazançlar elde etmek çok daha zordur ve sadece daha ihtiyacınız olan donanım donanım olabilir).

Kesinlikle pencerelerin ayarlanmasını gerektirmez - iyi yapılandırılmış pencereler bundan çok daha fazlasını sunabilir. Dosya sunucularım uzun süreler boyunca düzenli olarak ß göreceli bir stok kurulumundan 4-6gigabit teslim ediyor.

Şimdi, verdiğiniz tüm sayılar ciddi bir şey söylemiyor.

  • Ortalama% 10-15 CPU kullanılır.
  • % 25 bellek kullanıldığında büyük olasılıkla iyi bir gösterge değiş tokuş oluyor, ancak yine de CPU IO'yu beklediği anlamına gelebilir.
  • % 10 -% 15 ağ kullanılır - ağın SİZİN Tarafı olduğu için kesinlikle hiçbir şey yoktur. Yukarı akış ne olacak? Sağlayıcı raftan 1 gigabit yukarı bağlantısına 1 gigabitli 20 sunucu koyuyorsa ve bu cehennem gibi taşıyorsa ne olur?

Son nokta oldukça olasıdır - bırakılan paketler bunun iyi bir göstergesidir. Ve bu sizin için görünmeyecek.

Benim tavsiyem .... bir an için makinedeki herhangi bir şeyi kapatın, büyük bir statik dosya ile harici bir hız testi yapın. Bahse girerim daha yüksekte tıkanıklık yaşarsınız.

Şimdiye kadar yaptığınız her şey - maxuserport, tcpnumconnection, sunucuyu yeniden başlatma, IIS ayarlarıyla oynama - tamamen kapalı ve en iyi yerde hiçbir şey yapma. Yavaş bir arabaya çekiçle vurmak hiçbir şeyi düzeltmez - özellikle araba yavaşsa, çünkü trafik sıkışıklığındadır. Sadece sunucunuzda değil, tüm değişiklikleri geri alıp sorunu analiz etmeye başlarım. Şu anda ağ tıkanıklığına bahis oynardım.


3
even the outdated 2008 R2 which you should update ASAP- Hadi TomTom, tut. 2008 R2 hala yaygın destek ve 2020 yılında inanıyorum Genişletilmiş Destek dışarı UZUN bir yol içinde ...
Dan

4
"ASAP güncellemeniz gereken güncel olmayan 2008 R2": bu hem yanlıştır (2008R2 "modası geçmiş" değildir ve "sadece" nedeniyle güncellenmemelidir) ve yanıt bağlamında anlamsızdır. Geri kalanı, sorunu tanımlamak için yararlı bir adım sağlamadığından, çok daha az düzeltmek için yanıtınızı iyileştirmek için çok az şey yapar, sadece genel (ve sadece konu üzerinde hafifçe) performans hakkında önerilerde bulunur.
Stephane

Aslında çünkü daha sonra IP yığını ciddi bir şekilde neyin değiştiğini tahmin edin. Ölçeklenebilirlik bir Noktadır. Yani, evet, verilen bağlamda öyle. Güncellemeler en kısa zamanda gerçekleşmelidir - çünkü ne olduğunu tahmin edin, SİZİN öğelerinizi zamanla daha iyi hale getirmeyebilirsiniz, çoğu şirket bunu yapar. 2012 R2, 2008 R2'den daha iyidir.
TomTom

Speedtest.net kullanarak, uplink ve downlink 100mbps civarındadır.
Maymun D Luffy

Reklamlar sistemi için iki bağımlılık yazılımı vardır: memcached ve MySQL. Tüm izlenimi takip eder ve memcached'i tıklatın ve 10 dakikada bir MySQL'e güncelleyin.
Maymun D Luffy

0

Pingler iki sunucu için harici mi? Öyleyse, ping'i sunucudan sunucuya iki deneyin. Sonuçlar harici olarak ping atma işleminden tamamen farklıysa, sorunun sunucu 2'den kaynaklanmayabileceğini gösterir. Ayrıca, sürücüler için disk kuyruğu uzunluğu ve etkin süre için kaynak izleyicisine bakın - bir sorunu vurgulayabilecek bazı bilgiler.


Bunu zaten denedim. Sunucu 1'i Sunucu 2'ye ping işlemi yapmak için kullandım ve daha fazla reklam koyarsam ping yine de düşüyor.
Monkey D Luffy

1
Sunucu 1 ve sunucu 2 arasındaki bağlantı, kendi donanımınız üzerinden mi? Yoksa veri merkezi anahtarı mı? Sadece Ping yaptığınızda tıkanıklığa neden olabilecek DC donanımından geçip geçmediğinizi belirlemeye çalışın. IIS / Windows'da istekleri dinamik olarak engelleyen bir şey var mı? Meşru talepleri engelleyen dos koruması yok mu? Sistem, ASP.NET ve db MySQL mi?
Ross Buggins
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.