2011-11-15 4 views
0

私は、クラウドコンピューティングでホストされているC#、Asp.Net 4およびMS SQL 2008 R2、を使用してIIS 7.5で動作するWebサイトを持っています。クラウドベースホスティングでウェブサイトを32ビットから64ビットにアップグレードする利点は何ですか?

当社のホスティングプロバイダは、プロセスモードから32ビットから64ビットへの切り替えが可能です。

私は64ビットオプションを試しましたが、すばやく見てもパフォーマンスは向上しません。

もちろん私はいくつかの客観的なデータを比較することを望んでより多くのテストを実行します。

私の質問は以下のとおりです。

  • は、64ビットプロセスは、より多くのRAMを消費していthat32ビットワン?
  • 私たちのウェブサイトは64ビットマシンでコンパイルされていますが、予想外の互換性の問題がありますか?
  • Asp.Net 4は64ビットプロセスを利用していますか?
  • 64ビットはRAMを2倍使用しますか?

ありがとうございました!

興味深い記事: http://en.wikipedia.org/wiki/64-bit#32-bit_vs_64-bit

+0

どのような取引ですか?あなたはより良い言葉を試すことができますか? – leppie

+0

より良いserverfaultに役立ったが、私はパフォーマンスの違いの多くがあるとは思わない。パフォーマンスをテストするには、ウェブサイトに厳しい負荷とトラフィックを入れて、64ビットプロセッサが32ビットと比較してどのように処理するかを確認します。\ –

+0

コメントありがとうございました。タイトルを更新しました。あなたはそれが今より意味をなさないと思いますか? – GibboK

答えて

1

64ビットプロセスは、32ビット1より多くのRAMを消費しますか?

これは物理メモリの要求を増加させる仮想メモリ(ただし32ビットプロセスの2倍ではありません)を使用します。しかし、64ビットプロセスには、はるかに多くの仮想メモリにアクセスする機能があります。 32ビットWindowsプロセスは2GBの仮想メモリにしかアクセスできませんが、64ビットプロセスは理論上は8TBの仮想メモリにアクセスできます(物理的な制限はOSの制限などにより大幅に低くなります)。

私たちのウェブサイトは64ビットマシンでコンパイルされていますが、 予期しない互換性の問題がありますか?

コードがコンパイルされたOSは問題ではありません。重要なのは、コードがのためにコンパイルされたプロセッサアーキテクチャです。これがx86の場合、ホストOSが32ビットか64ビットかにかかわらず、サイトは32ビットとして実行されます。 AnyCPUのためにコンパイルされている場合は、64ビットOS上で64ビットとして実行されます。

Asp.Net 4は64ビットプロセスを利用していますか?

はい、上記のように(はるかに多くの仮想メモリを扱うことができます)。

64ビットはRAMを2倍使用しますか?

いいえ同等の64ビットプロセスでは、仮想メモリは使用されますが、倍数は使用されません。仮想メモリの需要の増加は、ある程度物理RAMの需要の増加につながります。

+0

あなたの返信に感謝のアダム、Asp.Net 4は64ビットプロセスを利用していますか?あなたは一般的に64ビットへのアップグレードをアドバイスしますか? – GibboK

+0

私は自分の答えを更新しました。私は本当にあなたがアプリケーションについてもっと知らないでこれを行うべきかどうかアドバイスすることはできません。一般に、32ビットから64ビットへの移行は、64ビットのenvに十分なRAMがある限り、良いことです。 paulsm4が言及しているように、あなたの利益をコストより上回っているかどうかを調べるためには、アプリケーションをプロファイルする必要があります。仮想メモリの要件が低い場合は、おそらくスイッチングに大きな利点はありません。 –

+0

Adamに感謝します。もちろん、決定にはプロファイルが必要です。私は本当にこれについてのあなたの洞察に感謝し、問題を理解するのに役立ちます。 – GibboK

1

Q:64ビットプロセスはthat32ビットのワンより多くのRAMを消費していますか? A:はい、絶対に:)

Q:当ウェブサイトは64ビットマシンでコンパイルされていますが、予期しない互換性の問題がありますか? A:「コンパイルされた」という意味に依存します。 C#またはASP.Netアプリケーション(Javaアプリケーションのような)は、プラットフォームに依存しません。両方のプラットフォームで同じバイナリを実行できます。

総合観測: あなたが行う場合ではない必要 64ビット(すなわち、あなたは2 ++ GBのアドレス空間を必要としない場合)、その後、32ビットに固執します。

データベースには通常4 ++ GBが必要で、データベースが他のすべてと同じホストに存在する必要がある場合(つまり、Webサーバーとアプリケーションと同じ場所に配置する必要がある場合)、64ビットにするのはおそらく良い考えです。

確かにわかる唯一の方法は、アプリケーションをプロファイルすることです。

あなたはすでにこれをやっていますが、あなたはありませんか?)

+0

ありがとうpaulsm4、はいまだ私のWebアプリケーションをプロファイルしていない:-)ちょうど私の問題からあなたの人から一般的なフィードバックを持っています。 PS:DBが別のサーバーにあります – GibboK

0

データベースサーバーは、64ビットまでステップアップすることで最大の利益を得る最も可能性の高いコンポーネントです。データベースのデータが3GBを超える場合は、64ビットのOSを使用すると、データベースの仮想アドレス空間に呼吸用のスペースが与えられます。 32ビット版よりも多くのRAMを使用するかもしれませんが、実際にはそうではありません。 64ビットのアドレス空間を使用すると、データベースサーバーは、データベースデータ1:1を仮想メモリアドレス空間にメモリマップし、ファイルI/Oを大幅に簡素化するオプションがあります。 OSカーネルは、参照されるときに、データベースファイルのページをメモリにスワップします。

アプリケーションのデータベースアクセスパターン、および実際にサーバー上で使用可能な物理RAMにどのくらいのデータベースデータが収まるかによって、32ビットで同じアプリケーションを実行する場合と比較してデータアクセス時間のパフォーマンスが向上しますシステムと32ビットデータベース。さらに多くのデータベースデータがメモリに保持され、ディスクI/Oを待つ必要がないため、64ビットサーバでは通常32ビットよりも物理RAMが多くなるため、データベースの応答時間が向上します。

データベースのデータが3GBより小さい場合は、64ビットに移行することでパフォーマンスが大幅に向上することはありません。

はい、64ビットアプリケーションでは、通常、32ビットバージョンよりも多少RAMを使用しますが、アプリケーションの書き方によっては、どれだけ多くのRAMが使用されますか。ポインタ(オブジェクト参照)のサイズは64ビットに増加しますが、整数、倍精度、および文字データでは増加しません。

32ビットシステムと同じ量の物理RAMを64ビットシステムに搭載している場合は、パフォーマンスの向上は見られません。しかし、誰が2001年の32ビットRAM容量の2011年の64ビットサーバーを構築していますか?それは起こりません。あなたの64ビットサーバは、それが置き換えられる32ビットサーバよりも多くの物理RAMを持つでしょう。

64ビットに移行した結果、互換性の問題やバグが発見される可能性はありますか?もちろん。変更があれば、問題が発生する危険性があります。あなたが克服できない問題に遭遇した場合に備えて、常にプランBをお持ちください。問題はありますが、常に可能です。

ASP.NETは64ビットにアップグレードすることで利益を得ますか?あなたのウェブサーバーコードがCPUバウンドまたはメモリバウンドでない限り、おそらくそうではありません。 WebサーバーはI/Oバウンドになる傾向があります。彼らは、次のネットワーク要求を待ったり、ディスクI/Oを待ったりするのに多くの時間を費やしています。大量のRAMを搭載した超高速64ビットプロセッサは、他のどのマシンよりもディスクやネットワークのI/Oが「速く待つ」ことはありません。

関連する問題