過去問ドリル

LinuCレベル2 システムアーキテクチャの設計 問29

システムアーキテクチャの設計/典型的なシステムアーキテクチャ

Web三層構成のシステムで、同じ商品情報の参照がDBサーバーへ集中し、DBの負荷が高くなっている。商品情報の更新はまれで、少し古い内容が表示されても許容される。APサーバー側で取れる対策として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムアーキテクチャの設計」に対応。実際の試験問題ではありません)

正解:D

解説

同じデータの参照が集中している場合、APサーバーが参照結果をMemcachedやRedisなどのインメモリキャッシュに保持し、キャッシュにあればDBへ問い合わせずに返すことで、DBの負荷を大きく下げられます。キャッシュには有効期限を設けたり、更新時に該当する項目を消したりして、古いデータが長く残らないようにします。更新がまれで多少の古さを許容できるデータほど効果が大きくなります。

選択肢ごとの解説

  • A誤り。DBへの同時接続数が増えるとDBの負荷はむしろ高まり、DBがボトルネックである状況は改善しません。
  • B誤り。APサーバー側の対策ではなく、複数のプライマリでの書き込みは整合性の管理が難しく、参照の集中への対策としても過大です。
  • C誤り。セッション情報をDBへ保存するとDBへのアクセスがさらに増え、参照の集中による負荷は下がりません。
  • D正しい。よく参照されるデータをインメモリキャッシュに保持すれば、DBへの問い合わせを減らして負荷を下げられます。
LinuCレベル2の問題を演習モードで解く