Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

性能設計のポイントをまとめる。

サーバ マシン

サーバ負荷分散(垂直分散)

垂直分散

リソース

CPU(コア)数

物理メモリ搭載量

ディスク性能

ディスク、ディスク コントローラ性能と、RAID構成など。

NIC性能

NICの帯域幅、NICチーミングによる帯域幅増、負荷分散。

ネットワーク機器

ネットワーク負荷分散(水平分散)

Webサーバ

NLB負荷分散

DBサーバ

シャーディング(水平的パーティション分割)

ネットワーク帯域幅

ネットワーク品質

ミドルウェア全般

キャッシュ サイズ

CPUアフィニティ

NUMA

NUMAハードウェアで実行する場合、NUMA対応されているか?

DB物理設計(SQL Server)

インデックス設計(インデックス特性を理解し使用すること)

クラスタ化インデックス

Oracleでは「索引構成表」と呼ぶ。

非クラスタ化インデックス

所謂インデックス。

カバリング インデックス

付加列インデックス

インデックス ビュー

Oracleでは「マテリアライズド・ビュー」と呼ぶ。

データ圧縮

データを圧縮することにより、

ファイル分割

パーティション分割

主に運用系性能(インデックスのデフラグ・再構築、データのアーカイブ)向上が可能だが、
一部データ アクセス性能(並列クエリ、スキャン局所化、テーブル結合、ロック局所化)も改善。
(インスタンスが分割できるような場合は、インスタンス分割でも良い)

DBサーバの水平分散

非正規化の検討

DB運用関係(SQL Server)

Webサーバ構成

SSL(HTTPS)・HTTP圧縮( → 必要であればアプライアンス化)

静的コンテンツのキャッシュ( → 必要であればキャッシュ サーバの導入)

アプリケーションの実装

通信処理の周辺では性能劣化が多いので事前によく検証すると良い。

そもそも遅いテクノロジに注意

クライアント - サーバ間のラウンド トリップ

冗長なラウンド トリップは、ファサード パターンにより集約する。

DBアクセスのラウンド トリップの集約方法。

ページング

メモリを大量消費して仮想記憶を使い出すと、
サーバ機としては致命的な性能劣化(32bitマシンは要注意)

インデックス スキャン

UIの性能劣化

Web

RichClient?

テスト

単体テスト(プロト、モック評価を含む)

プロト、モックとプロファイラを使用して、
現行方式中のボトルネックなどを確認しておくと良い。

結合テスト

処理時間を出力するログなどを埋め込んでおき、
処理時間の遅いものの原因を調査し、必要に応じて早期対応しておく。

負荷テスト

運用関係の性能チェック(設計&検証)

バッチ処理が時間内に終わるか。

バックアップか時間内に終わるか。

上記DB運用系操作が時間内に終わるか。

障害復旧の時間確認

操作訓練

操作訓練も必要になる。

バックアップ・リストアの時間

フェールオーバ・フェールバックの時間


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS