4

Web サーバーで SQL Server を実行することは良いことですか、悪いことですか、それとも無関心ですか?

Server 2008 と SQL Server 2005 を使用していますが、この質問には関係ないと思います。

4

7 に答える 7

13

小規模なサイトの場合、それは少しの違いはありません。ただし、負荷が大きくなると、これは非常に大きくスケーリングし、思ったよりも速くなります。

  • データベースサーバーは、サーバーを「所有」していることを前提に構築されています。それらは速度とメモリを交換し、内部キャッシングに利用可能なすべてのRAMを簡単に使用します。
  • リソースが不足し始めると、プロファイリングは非常に困難になります。IISとSQLの両方が問題を抱えていることは明らかであり、ボトルネックがどこにあるかは明確ではありません。IISにはCPUが必要であり、SQLServerにはRAMまたはCPUなどが必要です。
  • コードにいくつのレイヤーを配置しても、すべて同じCPUで実行されるため、このコンテキストでは単一のレイヤードアプリケーションの実行が向上し、オーバーヘッドが少なくなりますが、拡張性はありません。
  • セキュリティは本当に悪いです、通常あなたはファイアウォールの後ろでSQLを隔離します!

余裕があれば、PostgreSQLを使用して、数ドルを払い出し、2台目のサーバーを入手する方がおそらく良いでしょう。1つのIISサーバーと1つのPostgreSQLは、ライセンス費用のためにIIS +SQLServerとほぼ同じくらいの費用がかかります...

于 2008-09-22T07:13:23.743 に答える
6

大規模なショップでは、おそらくこれをベスト プラクティスとは見なさないでしょう...ただし、1 秒あたり数百のリクエストを処理しない場合は、両方を 1 つのボックスに入れても問題ありません。

実際、小さなアプリの場合、データがネットワークを経由する必要がないため、バックエンドのパフォーマンスが向上します。それはすべてスケールに関するものです。

データベース サーバーはメモリを消費することに注意してください。ハードノックの学校からの 1 つの重要な教訓があります。Web サーバーと同じマシンで SQL Server 2005 を実行することに決めた場合 (それが質問で言及したセットアップです)、必ず Sql Server Management Studio にアクセスし、これを行います

  1. サーバー インスタンスを右クリックし、[プロパティ] をクリックします。
  2. 左側のリストから「メモリ」を選択します
  3. 「最大サーバーメモリ」をサーバーが維持できるものに変更します。

そうしないと、SQL Server は最終的にサーバーの RAM をすべて占有し、無期限にハングアップします。これにより、サーバーが多かれ少なかれスパッタして停止します。これを認識していない場合、トラブルシューティングが非常に面倒になる可能性があります。

私はこれをかなりの回数行いました。大企業のインフラストラクチャがあり、拡張性がない場合は行うことではありませんが、多くの場合は問題ありません。

于 2008-09-23T14:29:20.550 に答える
3

それは本当にあなたのウェブサーバーとあなたのSQLサーバーがどれだけの仕事をしているかにかかっています。

これ以上の情報がなければ、役立つ答えが得られるとは思えません。

于 2008-09-22T07:03:20.177 に答える
3

Web サーバーが公開されている場合、これはセキュリティの観点から非常に悪い考えです。

ルーティング、ファイアウォール、ポート、認証などの観点から多くのことが難しくなりますが、分離は良いことです。Web サーバー上でデータベース サーバーを実行している場合、Web サーバーが侵害された場合、SQL サーバーも侵害されます。

それらを別々の箱に入れると、バーが少し上がります。

Web サーバーとデータベース サーバーを保護するためにやるべきことはまだたくさんありますが、必要以上に簡単にする必要はありません。

于 2008-09-22T14:52:25.760 に答える
2

問題が発生するまでは、同じサーバーで実行するのが最善だと思います。そうすれば、事前にいくらかのお金と時間を節約できます。サイトが成功し、いくつかのアーキテクチャの変更が必要になると、サイト自体の費用はすでに支払われているはずです。

バックアップを忘れずに:)

于 2008-09-22T08:44:57.733 に答える
1

サーバーの予想される負荷によって異なります。小規模なサイトの場合、(正しく構成されていれば)まったく問題ありません。大規模なサイトの場合は、Webサーバー、ファイルサーバー、データベースサーバーなどのさまざまなサーバーに負荷を分散することを検討してください。

于 2008-09-22T07:04:00.113 に答える
0

私はこの問題を何度も見ました。正しい答えは、一方のマシンにSQL Serverを配置し、もう一方のマシンにIIS(Webサーバー)を配置することです。効率的なサーバーをサポートするには適切なドライブシステムとRAMを購入する必要があるため、SQL Serverマシンにお金がかかりますが、ミラーリングされたドライブセットだけでWebサーバーを大幅に縮小して安価なマシンにすることができます。

于 2010-11-06T16:50:32.707 に答える