2019年 秋期 応用情報技術者試験 問5

HTTP/2に関する

E社は、地域密着型の写真店であり、小学校の運動会や遠足などの行事にカメラマンを派遣し、子供の写真を撮影して販売している。今までは、写真を販売するために、小学校の廊下などに写真のサンプルを掲示し、保護者に購入する写真を選んでもらっていた。しかし、保護者から"インターネットで写真を選びたい"、"写真の電子データを購入したい"との要望が多く寄せられるようになり、インターネット販売用のシステム(以下、新システムという)を開発することにした。新システムの開発は、SI ベンダのF社が担当することになった。

新システムの開発は、要件定義、設計、実装と順調に進み、テスト工程における性能テストをF社のG君が担当することになった。

【新システムの性能要件】

G君は新システムの性能テストを行うに当たり、要件定義書に記載の性能要件を確認した。図1に新システムの性能要件(抜粋)を示す。

<平常時の業務処理量>
・同時アクセス数:40ユーザ
<ピーク時の業務処理量>
・同時アクセス数:平常時の3.0倍
<性能目標値>
・レスポンスタイム:2.0秒以内

図1 新システムの性能要件(抜粋)

【性能テストの結果】

G君は、多数のWebブラウザ(以下、ブラウザという)からのアクセスをシミュレートする負荷テストツールを用いて、開発した新システムの性能テストを行った。

性能テストの結果、同時アクセス数が、32ユーザを超えるとアクセスエラーが発生した。ただし、エラー発生時のサーバのCPU、メモリ、ネットワーク回線の使用率は全て10%以下、ディスクのI/O負荷率は20%以下であった。また、レスポンスタイムは、写真を一覧表示するページ(以下、一覧ページという)の表示が最も長く3.0秒だったが、一枚の写真を拡大表示するページなどの他のページの表示は1.0秒であった。

【同時アクセス数改善に向けた調査】

G君は、同時アクセス数の要件を満たせない原因を確認するために、ブラウザの開発者用ツールを用いて、ブラウザが一覧ページの表示に必要なファイルをどのように受信しているか調査した。G君が調査したファイルの受信状況(抜粋)を図2に示す。

なお、ブラウザとサーバはHTTP/1.1 over TLS(HTTPS)で通信していた。

図2 ファイルの受信状況
注記 図中の黒帯はファイルを受信している期間を示す。
図2 ファイルの受信状況(抜粋)

次に、G君がサーバのログを調査したところ、TCPコネクションを確立できないという内容のログが多く残っていた。この結果からG君は、TCP/IPでサーバとブラウザが通信を行うために必要なサーバのaが枯渇し、新たなTCPコネクションを確立できなくなったと考えた。また、サーバのaの最大数は128に設定されていた。

この二つの調査結果から、①ブラウザが採用する複数のファイルを並行して受信するための手法によって、同時アクセス数が制限されてしまっていることが分かった。

【レスポンスタイム改善に向けた調査】

G君は、一つのTCPコネクション内における、ブラウザとサーバの間の通信を調査した。HTTP/1.1 over TLSを用いてブラウザとサーバが通信するとき、ブラウザからサーバのb番ポートに対してcを送信し、サーバからdを送信する。最後にブラウザからeを送信することでTCPコネクションが確立する。その後TLSハンドシェイクを行い、ブラウザはHTMLファイルや画像ファイルなどをサーバへ要求し、サーバは要求に応じてブラウザへファイルを送信している(図3)。また、G君が利用したブラウザでは、HTTPパイプライン機能はオフになっていた。

図3 G君が調査したブラウザとサーバ間の通信(抜粋)

G君は、この結果から、②TCPコネクション内での画像ファイルの取得に掛かる時間が長くなり、多くの画像データを含む一覧ページではレスポンスタイムが長くなると考えた。

【HTTP/2を用いた新システムの開発】

G君が調査結果を上司のH課長に報告したところ"HTTP/2の利用を検討すること"とのアドバイスを得た。HTTP/2では、③一つのTCPコネクションを用いて、複数のファイルを並行して受信するストリームという仕組みなど、多くの新しい仕組みが追加されていることが分かった。

そこで、G君は新システムのWebサーバにHTTP/2の設定を行い、再度性能テストを実施した。その結果、新システムが図1の性能要件を満たしていることが確認できた。

その後、新システムの開発は完了し、E社は写真のインターネット販売を開始した。

出典:令和元年度 秋期 応用情報技術者試験 午後 問5