C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: Webサービスの同時処理数を変更するには


(過去ログ 106 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■63162 / inTopicNo.1)  Webサービスの同時処理数を変更するには
  
□投稿者/ ohashi (1回)-(2012/07/27(Fri) 22:40:44)

分類:[.NET 全般] 

こんにちは。

IIS上のC# Webサービスの同時処理数を、初期値2から増やしたいのですが、
machine.configの設定をmaxconnection値を変えても変更されません。
原因として考えられる項目や、確認の必要な内容があったら教えていただけないでしょうか。

よろしくお願いします。
----------
■環境:
・OS:Windows Server 2008 R2
・IIS:7.5
・.NetFramework:4.0
・言語:C#


次の手順で変更を行いました。
@該当する.NetFrameworkのmachine.configファイルの末尾に、下記の内容を追加する。
※このmachine.configが実際に使用されているかどうかは検証しました。
※(machine.configのファイル名を変えて、リクエスト実行時にエラーになることを確認。)
-----
 <system.net>
    <connectionManagement>
      <add address="*" maxconnection="24" />
    </connectionManagement>
  </system.net>
  <system.web>
  <processModel autoConfig="false"
             maxWorkerThreads = "100"
             maxIoThreads = "100"
             minWorkerThreads = "50"
             minIoThreads = "50" />
  <httpRuntime
      minFreeThreads="176"
      minLocalRequestFreeThreads="152" />
  </system.web>
-----
AIISを再起動する。


設定値が反映されたかの検証は、次のように行いました。
@対象のWebサービスにて、リクエストを受けたらレスポンスを返すまでに10秒スリープするように指定。
A計5個のリクエストを同時実行したところ、10秒に一回、2個ずつレスポンスが返ってきた。

⇒同時処理数が2個から変更されていません。

引用返信 編集キー/
■63164 / inTopicNo.2)  Re[1]: Webサービスの同時処理数を変更するには
□投稿者/ なちゃ (1回)-(2012/07/28(Sat) 00:57:02)
根本的に誤解されてます。
IIS側というかサーバ側ではそんな設定は必要ありません。
ProcessModelの設定もIIS7では効きません。

同時に2つしか動かないのは、クライアント側の問題です。
デフォルトでは、同一ホストへの同時リクエストが2に制限されてます。
クライアント側で何を使って試しているのか分かりませんが、もし.NETのアプリで呼び出しているなら、クライアント側のApp.configでコネクション数を増やして試してみてください(試す時以外は変更する必要はないと思いますが)。

引用返信 編集キー/
■63165 / inTopicNo.3)  Re[2]: Webサービスの同時処理数を変更するには
□投稿者/ なちゃ (2回)-(2012/07/28(Sat) 01:03:23)
訂正。

No63164 (なちゃ さん) に返信
> ProcessModelの設定もIIS7では効きません。

これは勘違いです多分。でもいずれにしても大抵の場合設定は不要です。
引用返信 編集キー/
■63187 / inTopicNo.4)  Re[3]: Webサービスの同時処理数を変更するには
□投稿者/ ohashi (2回)-(2012/07/31(Tue) 18:11:39)
No63165 (なちゃ さん) に返信
> 訂正。
>
> ■No63164 (なちゃ さん) に返信
>>ProcessModelの設定もIIS7では効きません。
>
> これは勘違いです多分。でもいずれにしても大抵の場合設定は不要です。

なちゃさん

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

おっしゃる通り、根本的に考え違いをしていたようです。
App.configで接続数を変更することで、レスポンスが2つ以上同時に返ってくることを確認できました。

machine.configについて、msdnのパフォーマンスチューニング
(「第 17 章 「.NET アプリケーション パフォーマンスのチューニング」」)を参照していたのですが、
下記の内容を間違って理解していました。
-----
maxconnection − アプリケーションがリモートの Web サービスに対して呼び出しを行い、要求がその呼び出しの完了を待機している場合、Machine.config ファイルの <ConnectionManagement> 要素にある maxconnection 属性を変更して、CPU 使用率とアプリケーションのパフォーマンスを上げることができます。規定値は以下のとおりです。
-----

machine.configでも、App.configと同様に自分側の接続数を制限できるということなのですね!
もう少し勉強を進めたいと思います。
引用返信 編集キー/
■63191 / inTopicNo.5)  Re[4]: Webサービスの同時処理数を変更するには
□投稿者/ ohashi (3回)-(2012/08/01(Wed) 15:38:59)
関連して、質問させてください。

上記でmaxconnectionを設定しようとした理由は、
サイズの大きい通信が発生する場合があるため、.NetFramework上での
同時処理数を制限したかったためです。
(処理中以外のリクエストはキュー上で待機させられることを期待していました)

IISでの同時接続数の設定を行うことも考えたのですが、
クライアントから設定値以上のアクセスがあると
エラーメッセージを返します。
エラーではなく、待機させる処理を行いたいと考えています。

また、machine.configのmaxWorkerThreadsの設定を変更しましたが、
上記の検証方法では、同時にレスポンスが返ってきたため、サーバ上では
同時処理されているように思えました。

このような場合は、どのような対処が考えられるでしょうか。
参考となるURLなどでも構いませんので、ご教授いただけるとありがたいです。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -