WebサーバーとDBサーバー間の「ビットパリティ」の欠如はパフォーマンスに影響を与える可能性がありますか?


10

今日、特定のアプリケーションを展開するための推奨インフラストラクチャについて、ソフトウェアベンダーと面談しました。アプリケーションには2つのサーバーが必要です。サーバーWebページ用のアプリサーバー(.NET、Windows)とデータベース(SQL Server)です。ベンダーは、これら2つのサーバーには「ビットパリティ」が必要であると主張しました。これが意味するところは、アプリサーバーが32ビットの場合、SQLサーバーは32ビットである必要があります。また、アプリが64ビットの場合、SQLサーバーは64ビットです。そうしないと、パフォーマンスが低下します。

これは私には馬鹿げているようです。サーバーは独立しており、ネットワーク経由でのみ通信します。ネットワークプロトコルは、どちらのサーバーでもプロセッサの「ビット数」とは関係ありません。

私は間違っていますか?ミスマッチが実際にパフォーマンスに悪影響を及ぼす可能性がある理由はありますか?

注:特定のアプリは、32ビットではなく64ビットで実行される場合があります。しかし、ベンダーはWebサーバーとDBサーバーの不一致が問題を引き起こすと言っていました。これは私が質問している声明です。


他のすべてが同じである場合、彼は32&32は32&64よりも速く実行すると思いますか?
JeffO、2011年

それは、ベンダーが主張していたことです、はい。32、32、または64、64のパフォーマンスは、32、64、または64、32よりも優れています。
RationalGeek

システムの2つのバリアントをセットアップしてもらいます。次に、それらをストレステストします。要件を満たす最も安いバージョンを購入します。
マーティンヨーク

回答:


10

私はそれがだと仮定可能、彼らはそこに不一致だときに問題が発生し、これらの2つの製品間のいくつかの特定の相互作用を知っていること(しかし、私は本当にそれを疑う-私は約10入れたい:1のオッズをそのベンダーのそれの完全な)。

そのような不一致の影響についての質問については、serverfaultを調べることをお勧めしますが、実際に問題を見つける必要はないので、多くを見つけることはできません...


1
+1、私はあなたが正しいと思います。個々のボックスごとにパフォーマンスの考慮事項があるかもしれませんが、ネットワーク上では、何かが32ビットであるか64ビットであるかは関係ありません。
Moo-Juice、

1
出来ますか?物理的に可能性のあるシナリオは1つとは思えません。私はまた、「それでいっぱいのベンダー」オプションに傾いています。:-)
RationalGeek

@jkolhepp:私は、それは次のようになり、いくつかの方法を考えることができる可能性が、私はそれらのいずれかに該当する疑い。たった1つの遠い可能性として、サーバーがレシーバーが処理できるよりも速くデータを送信することを検討してください。そうすると、データがドロップされて再送信される必要があります。それは本当にありそうもないですが、ほとんど考えられません。
Jerry Coffin

それはおそらく、そのようなことを可能にする低レベルのネットワークプロトコルを使用している場合に限られます。「通常の」TCP / IPなどを使用すると、これらのタイプの問題を防ぐことができます。また、送信速度と受信速度はサーバーの「ビット数」とは関係ありません。
RationalGeek

3
アプリケーションの「ビット数」に応じてサイズが異なるネットワークメッセージのフィールドを公開するなど、送信/予測する必要があるフィールドサイズを見つける方法を提供せずに、ベンダーが間違えたために問題が発生することを確認しました。
ジェフリーハンティン、2011年

6

証拠を求めます。彼は疑わしい声明を出しました、彼はあなたのものを(間違って)売っています、彼はそれをバックアップするか撤回するべきです。自分の足を保存します。


いいアイデアですね。そうするつもりです。この質問の要点は、そうする前に私が狂っていないことを確認することでした。:-)
RationalGeek

4

32ビットサーバーペアと64ビットサーバーペアの違いは、ほとんどの場合違いはありません。違いを生むのは、さまざまなプロセスのエンディアンです。これは、営業担当者が「ビットパリティ」であると混乱させた可能性があります。


2
それもプロトコルに依存します(そして、DBがどのように機能するか私にはわかりません)。サーバー/クライアントがそのエンディアンを宣言し、もう一方がそれに適応する場合、あなたは完全に正しいです。しかし、伝統的にネットワークプロトコルはビッグエンディアンであり、そのような状況では2つのリトルエンディアンボックスを両方とも変換する必要があり、LE / BEペアよりも不利になります。
ijw、2011年

3

要するに、ビットパリティは問題ではないと言うことです。SQL Serverには、64ビットと32ビットの個別のプロトコルはありません。

ただし、サーバーを64ビットに切り替えることをお勧めします。SQL Serverは64ビットのみで提供されており、Windows Serverもその方向に向かっていると思います。


64ビットが未来だと私は同意します。しかし、それは私の質問のポイントではありませんでした。ベンダーがビットパリティは私たちに課している有効な要件であると仮定しているベンダーに質問しています。使用したい既存のサーバーファームがあり、それらは同等ではありません。
RationalGeek

2

まあ、そのベンダーが厳密にパフォーマンスに言及しているのであれば、それにはいくつかの真実があるかもしれません。ネットワークプロトコルはx86システムとamd64システムを非表示にする必要があるため、x86システムとamd64システムの間に非互換性はありません。

ただし、値の内部表現は転送中に変換する必要があります。したがって、一部の形式がその一部にpack/unpackなります。ただし、ネットワークプロトコルは2つのバリエーションを定義せず、64ビットネットワークまたは32ビット値用に最適化されていると想定します。したがって、変換が含まれる可能性があり、それが測定可能である場合もあります。しかし、それはおそらく重要ではない死んでいます。


1

技術的には、SQLサーバーへの接続は通常バイナリチャネルです(このシステムは特にテキストベースのチャネルである可能性があるので、今はわかりません)。クエリの結果が取得されると、宛先側で変換が行われます。

これは2つの質問につながります。

  1. この変換は32x64
    でのみ行われますか?バイナリチャネルはシステムに依存しないため(32x64および32x32および64x64をサポートできるため)、変換は32x32システムで行われます。

  2. 変換の費用はいくらですか。
    これがあなたに影響を与えるとは思えません。バイナリからバイナリへの変換のコストは小さく、固定されています。

あなたが尋ねる必要があるもう一つの質問があります:

ビットパリティを使用するコストは高くなりますか?そうでなければ、なぜコンサルタントを台無しにするのか。コストに大きな違いがある場合、実際のパフォーマンスの低下は何であり、最も重要なのは、パフォーマンスの低下によってWebサーバーのパフォーマンスがしきい値の許容値を下回ることです。

つまり、サーバーが1秒間に200ページをサーバー処理する必要がある場合。32x32システムは202を配信でき、32x64は200を配信でき、64x64は210を配信できます。この状況では、システムの種類は関係ありません(すべてが基準を満たしています)が、1秒あたり10ページの追加分のコストがかかります。 。

少し余分な費用がかかったとしても、結局(それは私が疑うことです)。このコストは重要ですか、それともWebServerによって発生する他のコストに対して測定可能ですか。つまり、極端な例を見てみましょう。ページの構築にかかるコストが100ミリ秒で、そのうち15ミリ秒がWebサーバーであるとします。非ビットパリティバージョンのほうが33%高い(20ms)場合、この敷居はページを構築するコストを105msに上げるだけで、わずか5%の増加です。


それは興味深いマーティンです。このバイナリチャネル変換のリファレンスページはありますか?
RationalGeek

@jkohlhepp: 'SQL Server'に関する実装の詳細を見つける必要があります。どうやらそれは独自のプロトコルを使用しているようです。表形式のデータストリーム私はそれについて何も知りませんが、このページによるとMSはプロトコルを公開しました。
マーティンヨーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.