性能チューニングの主な方向性 性能のボトルネックを特定したら、主に図に示す複数の方向から性能チューニングを開始します。最適化手段は必ずしも独立して適用されるわけではなく、最適化プロセスでは複数の最適化手法が適用される可能性があります。
ハードウェアレベルの最適化
ハードウェア レベルの最適化では監視に重点が置かれており、ハードウェア リソースがボトルネックとして特定された場合、問題を解決するために容量拡張などの手段が使用されることがよくあります。
ソフトウェアレベルの最適化
Java言語を例に挙げてみましょう
(1) リクエスト数を減らし、静的リソースファイルのサイズを圧縮する
1) クライアントが静的リソースを要求する回数を減らします。ブラウザまたはアプリ側でローカルにキャッシュすることで、クライアント リクエストの数を減らします。
2) リソースファイルのサイズを圧縮します。
3) CDN テクノロジーを使用します。
4) サービスリクエストの数を減らします。リアルタイムで更新する必要がある一部のクライアント ページでは、更新頻度を減らしてサーバーへのリクエストの数を減らします。ビジネスが更新され反復され続けると、システムは冗長なロジックを生成し、サーバーに対して追加の不要なリクエストを引き起こす可能性があります。こうした要求に対しては、最適化をビジネスと組み合わせる必要があります。
5) データベースへのアクセス数を減らす
6) Redis バッチ コマンドまたはパイプラインを介した対話の数を減らす
(2) 軽量物
この問題を解決するには、設計段階から厳密に制御してオブジェクトを軽量化する必要があり、これにより頻繁な GC や高帯域使用の状況を大幅に改善できます。
(3) オブジェクトの再利用
(4)IOの最適化
前述したように、CPU、メモリ、ディスク IO、ネットワーク IO の 4 つの主要なハードウェア リソース指標の中で、ディスク IO が最もボトルネックとなりやすいため、ディスク IO の高速化は全体のパフォーマンス向上に大きなメリットをもたらします。システムのパフォーマンスです。IO を置き換える NIO は、一般的な IO 最適化方法です。
ストリームベースの IO 実装 (バイト単位でデータを処理) をブロックベースの IO 実装に変更し、バッファーと