web-dev-qa-db-ja.com

IIS + ASP.NETのパフォーマンス対(NGINX + FastCGI + MonoまたはXSP)?

それぞれがどのくらいのリクエストを処理できますか?いくつRAM必要ですか?

FastCGIは初期化されたプロセスで開かれていることを覚えているので、それぞれが1つの要求を処理できます。

マルチスレッドについてはどうですか?

5
dynback.com

約1年前、MicrosoftはIIS + WCF StockTrader と呼ばれる)のベンチマークを公開しました。厳密にはWebページ指向のベンチマークではありません。とにかく、IISを使用して非常に優れたパフォーマンスを示しました。ワーカープロセス、および.NETコード。

7〜8年前は、Web負荷のベンチマークがよりアクティブでした。しかし、ある時点で、Linux +を使用しているかどうかに関係なく、単一の標準的な大容量Intelサーバー上で、パフォーマンスが非常に優れているように見えました。またはWindows + .NET、あなたは本当に良いパフォーマンスを得るつもりでした。 (妥当なアプリケーション設計を想定しています)。

PHPとFastCGIでは、実際にコメントすることはできません。

また、同じハードウェア上でLinux + Mono + XSPとWindows + .NET + ASPNETを比較した人は誰もいません。

2
Cheeso

Windows 7のIIS7で実行されているasp.net mvc3ウェブサイトと、cent_6.2でmod_monoとmono 2.11.2を実行している同じサイトの簡単なベンチマークを行いました。これらは両方とも、仮想ハードウェアで実行されている同じハードウェア上の仮想マシンです。実際のマシンはCore i5です。

同じネットワーク上の別のLinuxマシンからApacheベンチを使用する(ab -n 1000 -c 100)

Centos 6.2 (default settings, no other sites running on 8088)
Server Software:        Apache/2.2.15
Server Hostname:        192.168.1.208
Server Port:            8088

Document Path:          /
Document Length:        24 bytes

Concurrency Level:      100
Time taken for tests:   3.401 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      354000 bytes
HTML transferred:       24000 bytes
Requests per second:    294.01 [#/sec] (mean)
Time per request:       340.124 [ms] (mean)
Time per request:       3.401 [ms] (mean, across all concurrent requests)
Transfer rate:          101.64 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    3   6.4      0      25
Processing:    14  321  71.1    325     483
Waiting:       14  321  71.1    325     483
Total:         39  324  67.8    326     483

Percentage of the requests served within a certain time (ms)
  50%    326
  66%    344
  75%    358
  80%    370
  90%    408
  95%    426
  98%    441
  99%    445
 100%    483 (longest request)



(Again default settings, Windows 7 x64)
Server Software:        Microsoft-IIS/7.5
Server Hostname:        192.168.1.115
Server Port:            8088

Document Path:          /
Document Length:        27 bytes

Concurrency Level:      100
Time taken for tests:   0.469 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      294783 bytes
HTML transferred:       27351 bytes
Requests per second:    2131.09 [#/sec] (mean)
Time per request:       46.924 [ms] (mean)
Time per request:       0.469 [ms] (mean, across all concurrent requests)
Transfer rate:          613.48 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4   17   4.6     17      27
Processing:    12   28   6.9     28      61
Waiting:        9   22   6.9     22      55
Total:         24   45   7.0     45      67

Percentage of the requests served within a certain time (ms)
  50%     45
  66%     48
  75%     49
  80%     50
  90%     52
  95%     55
  98%     59
  99%     62
 100%     67 (longest request)

設定などを微調整できると思います。しかし、何か足りないことがない限り、IISはasp.net mvcを実行すると何倍も速くなるようです。

ビュー自体は基本的に空で、1つのWordしかありませんでした。

それは素晴らしいベンチマークではなく、上司に与えるものではありません。 monoはnginxやlighttpdでよりよく表示されると思いますが、今は設定していません。

6
Andrew

IISとXSPの両方でasp.net MVCアプリケーションを実行し、IISはパフォーマンスと信頼性の両方でXSPに勝っています。

パフォーマンステストは非常に簡単に実行できますが、XSPは実際には運用環境用に設計されていません。 XSPプロセスが時々クラッシュする原因となるバグを提出しましたが、それらは修正されません(明らかに、深いアーキテクチャの変更がいくつか含まれていました)。最後に、プロセスが終了したときにラップして再起動しただけですが、2つ(XSPとIIS)は非常に異なる獣であることに注意してください。

Windowsを使用している場合は、IISを使用します。 IIS7はそれほど悪くありません。

2
Phil

IIS and nginx:(およびApache、Cherokee、G-WAN、Lighttpd、Ulib)の優れたベンチマークがあります、など)

Linuxの場合:

http://gwan.ch/en_linux.html

Windowsの場合:

http://gwan.ch/en_windows.html

PHP、JavaおよびC#を使用):

http://gwan.ch/

他の場所で行われたそれほど明確な比較を見たことがありません。テストソースコード(PHP、Java、C#)もここから入手できます。

http://gwan.ch/source/

それが役に立てば幸い。

2
karim

ここで1つの小さな意見があります。過去数年間、.net C#でIISをIIS6で開始し、IIS7に移行しました。99%IISは.netで非常にうまく機能しました(キャッシング、リクエストの処理など...)

Linuxの方が安く、centosが大好きなので、1つのテスト環境でモノに移行しようとしたところ、パフォーマンスの変化に気づきました。たぶん私は環境をうまく設定する方法を知りませんでした。

今の私の個人的な経験:

PHPでWebサイトを作成したい場合は、Linuxサーバー(Centos6、nginx、php-fpm、mariadb、apc cache)にインストールします。

C#で何かを作成する必要がある場合は、Windows Server 2008にインストールします。これにより、頭痛の種が減り、実現性とサポートが向上します。

Microsoft Serverの唯一の欠点は価格です。小規模な開発者であれば、MSシステムの最小ハードウェア要件はLinuxマシンのハードウェア要件よりもはるかに低くなります。

0
Gabriel