4.過渡応答:サイトのパフォーマンスアーキテクチャ

サイトのパフォーマンスメトリック:応答時間、スループット、TPS、HPS、QPS
ユーザーと開発者のためには、サイトは同じ性能ではありません感じます

Webサイトのパフォーマンステスト
ユーザー視点のパフォーマンスは
、一般的にWebページを開くスピードを指し、
最適化の手段を
HTMLスタイルを最適化し
、並行して、非同期のブラウザのプロパティ使用して
、ブラウザのキャッシュ戦略をリサイズ
CDN使用する
リバースプロキシをすることができ
、ユーザーが簡単に熱い、頻繁にアクセスされるコンテンツを取得します

遠近現像性能
特性自体とサブプログラムは、
応答遅れ含ま
スループットシステム
並行処理
システムの安定性
手段最適化する
加速度データを読み出すキャッシュを
並行性を向上させるために、クラスタを使用して
の増加要求の非同期要求応答メッセージを使用して
最適化されたコードを

運用・保守要員のパフォーマンスの観点
基本性能とのリソース使用率
帯域幅能力、ハードウェアPeiziサービス、サーバーおよびネットワークリソース使用率のローン
最適化するための手段
費用対効果の高いサーバーの使用
活用仮想化の最適化技術を
バックボーンネットワークを最適化するために、

性能試験指標
応答時間
同時
スループット
パフォーマンスカウンタ

応答時間
データベースクエリデータ:10+ MS
機械ハードディスク配置一度に対処:4ミリ
機械ハードディスクが1MBのデータを読み出す:MS 2
SSDは、データ1メガバイトを読み出す:0.3秒
リモート配信されたデータを使用してはRedisのを読む:0.5ミリ秒
メモリデータは1メガバイトを読む:US 10+
Javaのネイティブメソッドの呼び出し時間:<10の私たち
のネットワーク伝送2キロバイトのデータ:1、私たち

並行
同時処理要求の数:システムのため
のウェブサイトへ:ユーザーの数は、同時に要求提出
総同時ユーザーのサイトでオンライン>>ユーザーの合計数をウェブサイトシステムを>>ユーザの総数
早期ユーザーの推定数を実行するために必要な設計、運用、保守担当者でシステムの機能を設計します

スループットは、
時間システムの単位あたりに処理要求の数を指し
表現するためにページ/秒のリクエスト/秒数の番号を使用して
TPS
QPS
秒あたりの要求HTTP、(SECOND、HTTPあたり)HPSを
するために、並行システムの数が少ない必ずしも良いことではありませんウェブサイトの最適化:サーバリソースを最大限に活用するための改良されたユーザーの応答時間、最大化、システムのスループット、

パフォーマンスカウンタの
指標、システムモニタ重要なパラメータ
システム負荷(システム負荷)が、ビジーのフリーシステムを反映して、CPUとCPUを待っているプロセスの総数によって実行されている
オブジェクトとスレッド
メモリ使用の
CPU使用率
、ネットワークおよびディスクI / O

性能試験方法
性能試験、負荷試験、ストレス試験、安定性試験分割
性能試験を
システム設計では、意図到達するかどうかを確認する目標、一定の圧力であることが予想される
負荷試験を
性能試験にして、システムまで圧力を加え続けるの以上、特定のセキュリティ性能指標の閾値の
ストレステスト
試験荷重には、安全負荷を超えた後の圧力に耐えることができるシステムの最大値を得るために、システムがクラッシュしないか、またはもはや要求を処理することが可能になるまで圧力を加え続けて
安定性試験を
特定のシステムのハードウェア、ソフトウェア、およびネットワークの条件、システム圧力において、システムは、時間の長い期間、検出の安定性を実行します。

最適化のパフォーマンスへの戦略
プロファイリング
場所は、要求のすべての面でチェックする必要があり、トラブルシューティング、パフォーマンスのボトルネックが発生する可能性があり
、メモリ、ディスク、ネットワーク、CPUの:、ログを確認不合理である応答時間のどの側面を分析、監視データチェック
のパフォーマンス最適化の
ウェブ最適化されたフロントエンド
アプリケーションサーバを最適化
ストレージサーバーのパフォーマンスの最適化

Webフロントエンドのパフォーマンスの最適化
ブラウザアドオン
サイトのモデルビューの
写真サービス
CDNサービス

ブラウザアクセスの最適化
接続を確立するために、HTTP要求は要求を処理するために別のスレッドを確立する必要がありますたびに、ステートレスHTTPので、HTTPリクエストを削減する
意味
を組み合わせCSSの
合併JS
マージ画像は
、ブラウザのキャッシュを使用しない
ほとんどの画像、CSSおよびその他の静的リソースを変更がある、httpヘッダのCache-Controlを設定し、キャッシュの時間の長い期間を設定することが可能であるとブラウザのキャッシュを設定するには、有効期限
を避けるためには、ブラウザのキャッシュを使用する場合、静的リソースの多くを更新する必要がある場合は、その後、増分更新を採用する方法をサーバーへの急激な増加の要求を、例えば、更新画像100、不適切な更新完了の場合、またはサーバー内の圧力の急激な増加はなり
圧縮使用し
たネットワークトラフィックデータ減らすために、クライアントを解凍し、サーバーの圧縮を
テキストに、HTML、CSSは、JSは、Gzip圧縮を使用して
ページの上部にあるCSSを、下のJSに
よるjsがすぐにロードした後に実行されるので、それが最善の下に配置されるように、待機する時間があるだろう
CSSは、完全にダウンロードされるまで待機しますレンダリングが実行され、したがって、上方に配置することができる
クッキー低減された送信
クッキーごとに含まれます 要求と応答時間は、そう、あまりにもクッキーはそう減らすために、伝送に影響を与えます

CDNの加速
CDN(コンテンツ配信ネットワーク)
のデータは、ユーザーのローカルに最も近いキャッシュ、基本的にキャッシュで
最初のジャンプへのネットワークアクセスを
通常の静的リソースを入れて、それはこれらの長期的なリソースを変更することが最善ではありません

プロキシリバース
クライアント側での伝統的なプロキシサーバーを、サーバ側でのリバースプロキシサーバー
のネットワーク要求は、リバースプロキシサーバーを経由しなければならない
Webリクエストを加速キャッシュを構成することができ
、一般的に静的コンテンツは上のリバースプロキシサーバーにキャッシュされます
動的コンテンツキャッシュすることもできますが、動的なコンテンツの変更は、内部機構は、リバースプロキシサーバに通知するように更新する
ロード・バランシング

アプリケーションサーバーのパフォーマンス最適化
ツールの
キャッシュ、サイトのパフォーマンスの最適化が第一法則である、の優先使用
クラスタ
非同期
コードの最適化は
キャッシュ分散
キャッシュプレゼンテーションを
好ましい溶液で
、キャッシュはブラウザに存在するアプリケーションサーバ、データベースサーバは
、データ、キャッシュファイルをキャッシュすることができますページのフラグメントキャッシュの
それは、主にデータの比率を読み書きするために使用され、このような製品カテゴリ、熱い言葉、ホット商品として高い、非常に少数の変更、ある
二十から八の法則に沿ったウェブデータアクセス、データの20%は、頻繁にアクセスされる、キャッシュされた
キャッシュは、基本原則
データアクセス時間を削減するキャッシュアクセス速度、
いくつかのデータは計算によって得られた場合の計算繰り返す必要はありません、キャッシュされた
複雑性O(1)を読んで、自然のハッシュテーブルを
キャッシュの使用の合理化
に使用されていない場合合理的な、過度の信頼キャッシュ、データアクセス機能キャッシュの不適切な使用はの面倒なシステムとなり
、データの頻繁な変更
保存が頻繁に変更されたデータであれば、あなたはデータ・キャッシュを書き込むことができ、キャッシュが読み取られていません、その後、キャッシュ上、その後、データベースを変更するだろう それは取っていない
データにアクセスするには、noホットスポットを
共通のデータキャッシュは、二十から八の法則に沿ってデータをキャッシュするために、廃棄物が得られ、それ以外の場合は、いくつかのキャッシュされたデータは、それが絞り出さ読めなかった場合は、キャッシュの使用メモリストレージを
一貫性のないデータの汚れを読ん
有効期限を設定し、一般的なデータを、より多くのデータベースを再読み込みする必要があるよりも、我々はデータの矛盾の一定時間許容する必要がある
いくつかの遅延が許容可能であることを。
商品のビジネスエディターなど、商品棚に対処するための時間の期間にわたって
キャッシュ可用性
雪崩:キャッシュ大量のデータサーバがクラッシュしながら、または過度の圧力の過渡データベースのダウンタイムが生じ、期限切れ
のサーバーがキャッシュをクラッシュした場合:クラスタを設定し
、大量のデータが延滞している場合:セット異なる有効期限の時間ベースまたは+有効期限を設定し、ランダムな時間が期限切れ
浸透を:不適切なビジネスや悪意のある攻撃を、繰り返し要求されたデータは、データベース上の圧力で、その結果、存在しない
解決策:データは存在しませんもキャッシュされ、空のリターン値または無効な値の
キャッシュが温暖化:あなたが直接キャッシュサーバを起動した場合、データベースがあまりにも多くの圧力になります。したがって、データの一部は、最初のキャッシュにロードすることができ、その後、データベースに接続する
キャッシュ分散
JBoss Cacheは:であるキャッシュ更新の同期、同期キャッシュ維持する必要
Memcacheの各他のキャッシュではなく、通信および同期の独立した、相互に通信していないと
良い線膨張、良い無制限のスケーラビリティ(一貫性のあるハッシュ)を達成するための
通信プロトコルが必要:<プロトコル> <シリアル化通信プロトコル>
TCPを使用して
、コマンドキーシーケンス契約書き込み仕様の例を使用します。get
豊かな言語をサポートしています。java C C ++、PHPので、
効率的なメモリ管理は
、固定空間の割り当てPage.51を使用しています

非同期操作
のメッセージ・キューを使用するには、サーバーが要求ではなく、最初のプロセスを受けて、メッセージ・キューを加えた後、私は、クライアントが応答を受信した教え、その要求を処理する時間があります。
負荷圧力ピーク(ピーククリッピング)を低減することができます
あなたが何かできることを行うために、可能な限り遅くて遅くする
添加が完了していた事業を伝えるために、メッセージキュー、その後、他の方法で参加すること、増加し、貿易などをした後、いくつかの時間は、ページを見てそれは成功の製品に追加されました

クラスタの使用
複数のサーバのクラスタを構築するために負荷分散することは、複数のサーバーへの同時アクセスを割り当てます

コードの最適化、
ブロックIOおよびマルチCPUによるマルチスレッドは、マルチスレッドでは、それは、ブロッキングIO CPUを解放する際に、CPUは他のタスクを実行することができ、良くなる、あなたはCPUリソースの使用を最大化することができます
ステートレスオブジェクトにオブジェクトを
問いません任意の属性情報、なしメンバ変数、またはそれは任意の属性情報やメンバー変数を参照していないが、サーブレットオブジェクトはステートレスのために設計されている
ステートレスオブジェクトウェブ貧血モデルされている
ローカルオブジェクトを使用して
いる場合、メソッド内のオブジェクトを作成するために、不注意スプレッドアウト、マルチスレッドの同時実行につながることはありません
ロック使用して同時アクセスリソース
マルチスレッドアクセス、シリアルアクセス使用してロックが変更された時間を
今軽量のJavaロック、アクセス、およびリリースロックが小さいのコスト導入
同時実行につながるロックシリアルスレッドは、システムのパフォーマンスに深刻な影響となり
、多重化資源
シングルトンパターンは、
対象オブジェクトが頻繁に変更されない、それらに適用され、例えばDAO層とサービス層、使い捨て春モデル設計金利
今日はウェブです貧血モデルは、よくシングルトン適用される
オブジェクトプール
のすべてのWeb要求 当時の良いプールを使用、実行の別のスレッドを確立しようとしている
データ構造を
アルゴリズムとデータ構造の柔軟な使用は、システムのパフォーマンス向上します
、一般的にTime33アルゴリズムを使用して文字列を配布ハッシュ値を作り
、これをしかしAB AAのための計算されたハッシュ値非常に近く、再度ハッシュ指紋方法を使用することができる
元の文字列を- > MD5計算指紋によって収集- >ハッシュ演算を介して- >コード橋の
ガベージコレクション
新生代は
、から3つのゾーンに分割され、エデンは、
先ほど作成したターゲットエデンストア
エデン後がいっぱいになって、トリガー龍GCから地区へのすべてのオブジェクトを複製する
、へへエデンエリアやオブジェクトから龍GCコピーをトリガー、何度も何度エデン地域や対象年齢プラス1からは、一定値まで歳に転送されます

フルGC、システムに比較的大きな影響をトリガ、面積は昔のいっぱいです

ストレージのパフォーマンスの最適化
機械ハードディスク、それぞれ指定されたビットより多くの時間を見つけるためにかかる
メモリに似たSSD、ランダム・アクセス・
B +ツリーの
最大3層の2つのB +ツリーインデックス、3回のクエリのみクエリログ、最初を使用してデータベースを2.二回目のルートは、行番号がディスク上で確認することができます得るために行番号を取得するために、3番目の子の後にルートノード3を確認するチェックし
た後、行番号を取得するには、5回のディスクアクセスする必要が更新レコード読み出し動作と書き込み動作缶
LSMツリーは
マージプロセスがメモリ内に実行ので、注文Nのマージされたツリーである
書き込み動作ロット、LSMツリーを使用しては、ディスクの数を減らすことができたときにアクセス
RAID
RAID 0
、RAID 1
、RAID 10
、RAID 5
、RAID 6
HDFS(Hadoopの配布ファイルシステム)は、 Hadoopのは、 ファイルシステムを分散
コンテンツ管理ファイル単位のブロックで、ファイルが他の二つの実行バックアップマシンに同期した各ブロックを、完了したブロックのブロックに分割され、それは同じデータの3台のマシン

公開された20元の記事 ウォンの賞賛1 ビュー1457

おすすめ

転載: blog.csdn.net/weixin_44587666/article/details/89675397