Web sunucusu ve DB sunucusu arasında “bit paritesi” olmaması performansı etkileyebilir mi?


10

Bugün bir yazılım satıcısıyla, belirli bir uygulamayı dağıtmak için önerilen altyapıları hakkında bir toplantı yaptım. Uygulama iki sunucuya ihtiyaç duyar: sunucu web sayfaları için bir uygulama sunucusu (.NET, Windows) ve bir veritabanı (SQL Server). Satıcı, bu iki sunucunun "bit paritesi" olması gerektiğini iddia etti. Bununla kastettikleri, uygulama sunucusu 32 bit ise SQL Server 32 bit olmalı veya uygulama 64 bit ise SQL Server 64 bit olmalıdır. Aksi takdirde performans olumsuz etkilenecektir.

Bu bana gülünç geliyor. Sunucular bağımsızdır ve yalnızca bir ağ üzerinden iletişim kurar. Ağ protokollerinin her iki sunucudaki işlemcinin "bit-biti" ile hiçbir ilgisi yoktur.

Yanlış mıyım? Uyuşmazlığın performansı gerçekten olumsuz etkilemesinin bir nedeni var mı?

NOT: Belirli uygulamaların 32 bit ile 64 bit arasında daha hızlı veya daha yavaş çalışabileceğini biliyorum. Ancak satıcı, web sunucusu ile DB sunucusu arasındaki uyumsuzluğun soruna neden olduğunu söylüyor . Sorguladığım ifade bu.


Diğer her şey eşit olduğunda, 32 ve 32 koşusunu 32 ve 64'ten daha hızlı mı düşünüyor?
JeffO

Satıcının iddia ettiği buydu, evet. 32,32 veya 64,64 performansı 32,64 veya 64,32'den daha yüksektir.
RationalGeek

Sistemin iki varyantını kurmalarını sağlayın. Ardından stres testi yapın. Gereksinimlerinizi karşılayan en ucuz sürümü satın alın.
Martin York

Yanıtlar:


10

Bunun varsayalım mümkün onlar orada bir uyumsuzluk olduğunda bir soruna neden bu iki ürün arasındaki bazı spesifik etkileşim biliyoruz ki (ama gerçekten şüpheliyim - Ben yaklaşık 10 koyardım: 1 oran o satıcının bununla dolu).

Bunun gibi uyumsuzlukların etkileriyle ilgili sorular için serverfault'a bakmak isteyebilirsiniz, ancak çok fazla bulacağınızdan şüpheliyim, çünkü bulmak için gerçek bir sorun olduğundan şüpheliyim ...


1
+1, bence sen öldün doğru. Her bir kutuda performansla ilgili hususlar olabilir, ancak bir şey 32 bit mi yoksa 64 bit mi olsun, ağ üzerinde önemsizdir.
Moo-Juice

1
Mümkün mü? Fiziksel bir olasılık olduğu bir senaryo düşünemiyorum. Ben de "satıcı dolu" seçeneğine yaslanmışım. :-)
RationalGeek

@jkolhepp: öyle olacağını birkaç yollar geliyor mümkün , ama bunların hiçbirini geçerlidir şüpheliyim. Sadece bir uzak olasılık için, veri gönderen bir sunucuyu alıcının işleyebileceğinden daha hızlı bir şekilde düşünün, böylece veriler düşer ve yeniden iletilmesi gerekir. Bu var gerçekten ihtimal, ama zar zor akla.
Jerry Coffin

Muhtemelen bu tür şeylere izin veren düşük seviyeli ağ protokolleri kullanıyor olsalardı. "Normal" TCP / IP veya bu tür sorunları önleyen her şeyi kullanmak. Ve gönderme hızı ve alma hızı sunucu "bit-ness" ile ilgisi yoktur.
RationalGeek

3
Göndermek / beklemek gerekir alan boyutunu keşfetmek için bir yol sağlamadan uygulamanın "bit" bağlı olarak boyutu değişen bir ağ mesajında ​​bir alan maruz gibi, goof satıcı nedeniyle sorunları gördüm.
Jeffrey Hantin

6

Kanıt isteyin. Şüpheli bir ifade yaptı, size bir şeyler sattı (yanlış-), ya yedeklemeli ya da geri çekmeli. Kendinizi ayak işinden kurtarın.


Bu iyi bir fikir. Bunu yapmayı planlıyorum. Bu sorunun amacı, bunu yapmadan önce deli olmadığımdan emin olmaktı. :-)
RationalGeek

4

32bit ve 64bit sunucu çiftleri arasındaki fark büyük olasılıkla herhangi bir fark yaratmayacaktır. Fark yaratacak , satış elemanının "bit paritesi" olarak karıştırdığı çeşitli süreçlerin endianitesidir .


2
Bu bile protokole bağlıdır (ve ben DB olanların nasıl çalıştığı hakkında hiçbir fikrim yok). Sunucu / istemci kendi endianlığını bildirir ve diğeri buna uyarlanırsa, kesinlikle haklısınız; ancak geleneksel ağ protokolleri, büyük-endian edilmiş, ve bu koşullar altında iki küçük endian kutular olur hem de bir LE daha bir dezavantaj daha fazlasında koyarak, dönüştürmek gerekir / çifti BE.
ijw

3

Kısacası hiçbir bit paritesinin önemli olmadığını söyleyebilirim. SQL Server'ın ayrı bir 64 bit ve 32 bit protokolü yoktur.

Ancak, ne olursa olsun sunucuları 64 bit üzerinden değiştirmenizi tavsiye ederim. SQL Server yalnızca 64 bit olarak geliyor ve Windows Server'ın da bu yönde ilerlediğine inanıyorum.


Katılıyorum 64 bit gelecek. Ama sorumun konusu bu değildi. Biraz parite onlar bize koyarak geçerli bir gereksinim olduğunu varsayım satıcıları sorguluyorum. Eşlikte olmayan, kullanmak istediğimiz mevcut sunucu çiftliklerine sahibiz.
RationalGeek

2

Eğer söz konusu satıcı kesinlikle performanstan bahsediyorsa, bunun için bazı gerçekler olabilir. X86 ve amd64 sistemleri arasında kesinlikle bir uyumsuzluk yoktur, çünkü ağ protokolü bunu gizlemelidir.

Ancak, aktarım sırasında değerlerin dahili gösterimi dönüştürülmelidir. Yani bir çeşit pack/unpackparçası bunun bir parçası olacak. Ancak ağ protcol iki varyasyon tanımlamak ve 64 bit ağ veya 32 bit değerleri için optimize varsayalım. Yani dönüşüm söz konusu olabilir ve hatta ölçülebilir bile olabilir. Ama ölü olması muhtemel değil.


1

Teknik olarak SQL sunucusuna bağlantı genellikle bir ikili kanaldır (Şimdi bu sistemi özellikle metin tabanlı bir kanal olabilir bilmiyorum), bu yüzden bir sorgu sonuçları alındığında hedef sonunda bazı dönüşüm olacaktır.

Bu iki soruya yol açar:

  1. Bu dönüşüm yalnızca 32x64'te mi yapılır?
    İkili kanal sistem agnostik olabilir (böylece 32x64 ve 32x32 ve 64x64'ü destekleyebilir) ve dönüşüm 32x32 sisteminde yine de gerçekleşir.

  2. Dönüşümün maliyeti nedir.
    Bunun sizi etkileyeceğini düşünemiyorum. İkiliden ikiliye dönüşüm maliyeti küçük ve sabittir.

Sormanız gereken başka bir soru daha var:

Biraz parite sahip olmanın maliyeti daha mı yüksek? Değilse neden danışmanlarla karışıklık. Önemli bir maliyet farkı varsa, o zaman performanstaki gerçek düşüş nedir ve en önemlisi performanstaki düşüş Web sunucusunun performansını eşik kabulünüzün altına düşürür.

Yani sunucunuzun saniyede 200 sayfa sunucuya ihtiyacı varsa. Bir 32x32 sistemi 202 bir 32x64 200 ve bir 64x64 210 teslim edebilir. O zaman bu durumda hangi sisteme sahip olduğunuz önemli değil (hepsi çubukla buluşuyor), ancak saniyede fazladan 10 sayfa değerinde ekstra maliyet var. .

Sonunda küçük bir ekstra maliyet olsa bile (ki şüpheliyim). Bu maliyet Web Sunucusu tarafından tahakkuk eden diğer maliyetlere göre önemli mi yoksa ölçülebilir mi? Örneğin, aşırı bir örneğe bakmak gerekirse: bir sayfa oluşturma maliyeti 100ms ise 15ms WebServer ise. Bit olmayan parite sürümü% 33 daha pahalıysa (20 ms), bu eşik sadece bir sayfa oluşturma maliyetini sadece% 5'lik bir artışla 105 ms'ye çıkarır.


Bu ilginç Martin. Bu ikili kanal dönüşümü için referans sayfası var mı?
RationalGeek

@jkohlhepp: 'SQL Server' ile ilgili uygulama ayrıntılarını bulmanız gerekecek. Görünüşe göre tescilli protokolü kullanır Tabular Data Stream Bu konuda hiçbir şey bilmiyorum ama bu sayfaya göre MS protokolü yayınladı.
Martin York
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.