しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

IIS に Application Request Routing (ARR) 向けのチューニングを試してみたのでメモしておく

パフォーマンス確認のために Application Request Routing (ARR) に適した設定を少しだけ探ってみました。結局 Nginx には余裕で負けたわけですが、試したメモとして残しておきます。

使用したのは A2 インスタンスの Windows Server 2012 R2 で、検証のためキャッシュはオフにしました。

基本的に上から順番に設定を追加・変更していった形となってます。

デフォルト

f:id:shiba-yan:20150205155059p:plain

TcpTimedWaitDelay = 30 / MaxUserPort = 65530

reg add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v TcpTimedWaitDelay /t REG_DWORD /d 30 /f
netsh int ipv4 set dynamicport tcp start=1025 num=64506

f:id:shiba-yan:20150205155112p:plain

queueLength = 65535

appcmd.exe set config /section:system.applicationHost/applicationPools /applicationPoolDefaults.queueLength:65535

f:id:shiba-yan:20150205155408p:plain

appConcurrentRequestLimit = 100000

appcmd.exe set config /section:system.webserver/serverRuntime /appConcurrentRequestLimit:100000

f:id:shiba-yan:20150205155846p:plain

この時点で CPU は 100% 張り付きっぱなしだったので、これ以上は難しい気がします。

おまけ : Memory cache duration = 30

f:id:shiba-yan:20150205214135p:plain

おまけ : A4 (AMD 8 cores, 14GB)

f:id:shiba-yan:20150205185738p:plain

おまけ : D4 (Intel 8 cores, 28GB)

f:id:shiba-yan:20150205204655p:plain

Intel CPU が載った A4 でも試してみたところ、結果が明らかにおかしかったので Azure 界の抱かれたい男 No.1 に追試してもらいたい気分です。