インターネット Web サーバー構築ガイドライン を読んだメモ 3

第六章:アプリケーションの実行環境を設定しよう

  • ハンドラーがアプリケーションへのリクエストを処理する
  • PHP ゕプリケーションを実行できるようにするには、ハンドラーの設定で、「拡張子.php がリクエストされたら FastCGI を使用して php-cgi.exe を実行する」 というようにマッピングを行う。これをハンドラー マッピングと言う。

  • 仮想ディレクト

    • コンテンツのレスポンスに関する設定しか持っていない
  • アプリケーション

    • サーバー再度でプログラムを実行するためのアプリケーションプールの設定や、ハンドラーマッピングの設定がされている
    • つまり、サーバーサイドのアプリケーションを実行するための設定がなされた仮想ディレクト
  • ASP.NET ランタイムは、発生したエラー・警告などを Windows のイベントログとして出力する。

第九章:ログやトレースを活用しよう

  • アクセスログ

    • C:¥inetpub¥logs¥LogFiles
    • Web, FTP サイト毎にフォルダーが分割され、その中に日付別に名前が付けられたファイルがある
      • Web サイト : "W3SVC" + サイト ID (数字)
      • FTP サイト : "FTPSVC" + サイト ID (数字)
      • "u_ex" + (2 桁表記の UTC 年月日) + ".log"
    • Http.sys によって出力される
    • 自動的に削除はされない。ディスク容量の兼ね合いを見て手動で削除する必要がある
  • 失敗した要求のトレース

    • リクエストに対して行われる Web サーバー上の処理について、ファイルの種類や、処理時間、Web サーバーが返す HTTP ステータスを条件に、トレースログを取得することができる
  • ワーカープロセスの監視

    • IIS への各リクエストは、ワーカープロセスと呼ばれるサーバープロセス上のスレッドとして処理される
    • IIS では任意の数のワーカープロセスをホストすることが可能
    • Web サイト、アプリケーションは、各々独自のワーカープロセスを使用することも、また、ひとつのワーカープロセスを共有して使用することも可能
    • ワーカープロセスとは、アプリケーションプールが実行された際のプロセスのこと

    • 現在稼働しているワーカープロセスの一覧表示ができる

    • ワーカープロセスで現在実行中の要求を表示することができる
      • Windows の機能の有効化から インターネットインフォメーションサービス > World Wide Web サービス > 状態と診断 > 要求の監視 を有効にする必要あり
  • イベントログ

    • イベントログが記録されるとき

      • プログラム(アプリケーション、サービス)が明示的にイベントログへ情報を出力している
      • プログラムが内部で発生したエラーを処理できなかった場合
    • イベントビューアーで サブスクリプション を構成すると、リモート コンピューターからイベントを収集し、ローカル コンピューターのログに格納することができる

    • 複数台のサーバーを集中して管理する場合に便利
    • https://technet.microsoft.com/ja-jp/library/cc749183.aspx?f=255&MSPPError=-2147217396

第十章:動作状態の確認と性能向上

  • RSCA(Runtime Status and Control API: ルスカ) という実行状態を公開するためのインターフェースが IIS7 から開発された

    • RequestMonitorModule (Iisreqs.dll) という IIS モジュールがインストールされていれば利用できる
  • コマンドからの管理系の操作は Windows PowerShell の利用が推奨

  • アプリケーションプールの状態を知りたい
Get-WebAppPoolState プール名

開始済みの場合
Value
-----
Started

停止の場合
Value
-----
Stopped
  • IIS ドライブを使う
IIS:

PS IIS:\> dir

Name
----
AppPools
Sites
SslBindings
  • タスクマネージャー

    • 注目すべきプロセス
      • inetinfo.exe IIS Admin Service のプロセス
      • svchost.exe World Wide Web Publishing Service のプロセス
      • w3wp.exe アプリケーションが動作するワーカープロセス
      • w3wp.exe に一番注目
    • ワーカープロセスは全て w3wp.exe の名前になっているので pid(プロセスID) から識別する
    • タスクマネージャーで情報が足りない場合は Process Explorer を使う
  • パフォーマンスモニター

    • 注目するオブジェクト
      • WAS_W3WP
      • W3SVC_W3WP
      • Processor
      • Memory
      • Process
      • PhysicalDisk
      • Network Interface
      • .NET CLR xxxx (複数ありますが省略してまとめています。)
      • ASP.NET xxxx (複数ありますが省略してまとめています。)
      • Web Service
      • Web Service Cache
  • 失敗した要求トレース

    • 失敗した(HTTPステータスコード 400 以上)だけでなく、200 OK の正常終了のリクエストについても使用可能
    • ASP.NET の場合は Trace.Write, Trace.Warnを記述することで記録が残せる
  • HTTP 圧縮機能

    • サーバーで圧縮を行い、対応しているブラウザで解凍する
    • 静的コンテンツ、動的コンテンツの2種類に対してそれぞれ圧縮機能がある
    • サーバーで圧縮処理を行うため、処理増加・ディスク I/O の状況によってはボトルネックになることもある