none
IISとクロック数・コア数の関係について RRS feed

  • 質問

  • Windows Server 2012でIISを使用したWebアプリケーションを載せる予定ですが、

    クロック数が高い1CPUか、コア数が多い方がよいのか迷っています。

    一般的にコア数が多いほうが処理速度が出せる気がするのですが、シングルスレッドで

    動くアプリケーションはコア数を増やしても意味がないという情報もあり、どちらがよいのか

    ご教示頂けますでしょうか?

    2013年8月6日 6:55

回答

  • 現在市販されているPCのCPUでシングルコアのものは
    Celeronの底辺機種であり、クロックも1.xGHzと、
    とてもサーバー的な使用に耐えられるものとは思えません。
    また、一般にコア数の少ないものほど低クロックであり、
    高クロックで少コアのCPUはそれ自体を探すのが大変なくらいです。
    従って、そのような悩みが発生するはずは無いとの認識なのですが、
    もう少し詳しい経緯を聞いてみたいところです。いかがでしょう。
    2013年8月6日 7:49
  • そもそも現行のCPUにそのような選択肢があるのか疑問ですが…。つまりコア数の少ないCPUは低スペックなのでは?

    ともあれ、Webアプリケーション次第です。「シングルスレッドで動くアプリケーションはコア数を増やしても意味がない」は表面上は確かに正しいです。しかし、ここで言う「シングルスレッド」が何を指しているかにもよります。Webサーバー全体でシングルスレッドなのか、それともHTTPのリクエスト毎にシングルスレッドなのか。後者であれば、複数のリクエストがあればマルチコアの効果が得られます。
    # もちろん複数のリクエストが来る前提です。そうでなくほとんどアクセスのないWebサーバーであればスペックを悩む必要はないはずであり除外します。

    またWebアプリケーションはCPUを必要とするものなのでしょうか? 静的なファイルであればCPU負荷はほとんどかからず、ディスクやネットワークが先に問題になります。

    • 回答の候補に設定 佐伯玲 2013年8月7日 0:27
    • 回答としてマーク 佐伯玲 2013年8月28日 4:55
    2013年8月6日 8:00
  • CPU の性能も大事かもしれませんが、Web アプリケーションの作り方も大事だと思います。以下のページの序文だけでも良いので読んでください。

    ASP.NET の非同期プログラミングを使ったスケール変換可能なアプリケーション
    http://msdn.microsoft.com/ja-jp/magazine/cc163463.aspx

    "すべてのスレッドが CPU を使用している状態になることによってスレッド プールが飽和状態になる場合は、サーバーを追加する以外にできることはほとんどありません。"

    • 回答の候補に設定 佐伯玲 2013年8月9日 4:57
    • 回答としてマーク 佐伯玲 2013年8月28日 4:55
    2013年8月7日 1:25
  • 自分が、システムを設計する場合で、ハードウエアの負荷を見積もる場合、
     1.対象OSが稼動するための負荷
     2.対象とするサービス、デバイスの合算等の負荷
     3.対象とするアプリケーションの基本的レベルの負荷
     4.対象とするユーザーのアクセス(数、頻度、同時並行数)に応じるための負荷
    などを考慮します。

    また、負荷を処理するための能力の種類には、
     5.CPUの処理能力(キャッシュを含む)
     6.一時記憶メモリーの能力
     7.永続記憶メモリー(HDD等)の能力
     8.その他のデバイス等の能力(通信、外部デバイスの処理能力等)
    などが、ありますが、

    また、それらに対して
     9.なんらかの負荷分散によるトレードオフ
     10.システムの寿命を考慮したトレードオフ
     11.事故率
     12.ハードの占有率
    などの割引(又は割り増し)を考える場合もありますね。

    • 回答の候補に設定 佐伯玲 2013年8月9日 4:57
    • 回答としてマーク 佐伯玲 2013年8月28日 4:55
    2013年8月7日 2:38

すべての返信

  • 現在市販されているPCのCPUでシングルコアのものは
    Celeronの底辺機種であり、クロックも1.xGHzと、
    とてもサーバー的な使用に耐えられるものとは思えません。
    また、一般にコア数の少ないものほど低クロックであり、
    高クロックで少コアのCPUはそれ自体を探すのが大変なくらいです。
    従って、そのような悩みが発生するはずは無いとの認識なのですが、
    もう少し詳しい経緯を聞いてみたいところです。いかがでしょう。
    2013年8月6日 7:49
  • そもそも現行のCPUにそのような選択肢があるのか疑問ですが…。つまりコア数の少ないCPUは低スペックなのでは?

    ともあれ、Webアプリケーション次第です。「シングルスレッドで動くアプリケーションはコア数を増やしても意味がない」は表面上は確かに正しいです。しかし、ここで言う「シングルスレッド」が何を指しているかにもよります。Webサーバー全体でシングルスレッドなのか、それともHTTPのリクエスト毎にシングルスレッドなのか。後者であれば、複数のリクエストがあればマルチコアの効果が得られます。
    # もちろん複数のリクエストが来る前提です。そうでなくほとんどアクセスのないWebサーバーであればスペックを悩む必要はないはずであり除外します。

    またWebアプリケーションはCPUを必要とするものなのでしょうか? 静的なファイルであればCPU負荷はほとんどかからず、ディスクやネットワークが先に問題になります。

    • 回答の候補に設定 佐伯玲 2013年8月7日 0:27
    • 回答としてマーク 佐伯玲 2013年8月28日 4:55
    2013年8月6日 8:00
  • 仲澤@失業者様

    ご回答頂きましてありがとうございます。

    まず、経緯ですが、質問を受けており回答するために調べていました。(すみません、単純な疑問点というだけです)

    ハードウェアの市場が分からない状態でスレッドを出してしまい申し訳ございません。

    現在、高クロックで少コアのCPU自体探すのは難しい点を説明すればよいかと思いますので頂いた情報を元に回答したいと思います。

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

    2013年8月7日 0:55
  • 佐祐理様

    ご回答頂きましてありがとうございます。

    ハードウェアの市場を調べてない状態でスレッドを出してしまい申し訳ございません。

    現行のサーバ機種を考えると、そのような選択しはないようですので、頂いた情報を元に質問者に回答したいと思います。

    Webアプリは複数のリクエストが来る前提ではありますが、ディスクやネットワークが問題になる場合もあるとのことですので

    そのあたりも確認したいと思います。ありがとうございました。

    2013年8月7日 1:05
  • CPU の性能も大事かもしれませんが、Web アプリケーションの作り方も大事だと思います。以下のページの序文だけでも良いので読んでください。

    ASP.NET の非同期プログラミングを使ったスケール変換可能なアプリケーション
    http://msdn.microsoft.com/ja-jp/magazine/cc163463.aspx

    "すべてのスレッドが CPU を使用している状態になることによってスレッド プールが飽和状態になる場合は、サーバーを追加する以外にできることはほとんどありません。"

    • 回答の候補に設定 佐伯玲 2013年8月9日 4:57
    • 回答としてマーク 佐伯玲 2013年8月28日 4:55
    2013年8月7日 1:25
  • 自分が、システムを設計する場合で、ハードウエアの負荷を見積もる場合、
     1.対象OSが稼動するための負荷
     2.対象とするサービス、デバイスの合算等の負荷
     3.対象とするアプリケーションの基本的レベルの負荷
     4.対象とするユーザーのアクセス(数、頻度、同時並行数)に応じるための負荷
    などを考慮します。

    また、負荷を処理するための能力の種類には、
     5.CPUの処理能力(キャッシュを含む)
     6.一時記憶メモリーの能力
     7.永続記憶メモリー(HDD等)の能力
     8.その他のデバイス等の能力(通信、外部デバイスの処理能力等)
    などが、ありますが、

    また、それらに対して
     9.なんらかの負荷分散によるトレードオフ
     10.システムの寿命を考慮したトレードオフ
     11.事故率
     12.ハードの占有率
    などの割引(又は割り増し)を考える場合もありますね。

    • 回答の候補に設定 佐伯玲 2013年8月9日 4:57
    • 回答としてマーク 佐伯玲 2013年8月28日 4:55
    2013年8月7日 2:38
  • SurferOnWww様

    返信が遅くなり大変失礼致しました。

    ご指摘頂いたWebアプリケーションの作りも確認したいと思います。

    ありがとうございました。今後ともよろしくお願い致します。

    2013年8月20日 5:36
  • 仲澤@失業者様

    返信が遅くなり大変失礼致しました。

    ハードウェアの負荷を見積もる場合のノウハウをご教示頂きましてありがとうございます。

    頂いた点を参考に、ハードの性能を見積もりたいと思います。

    ありがとうございました。今後ともよろしくお願い致します。

    2013年8月20日 5:39