2

そのようなフレームワークを急いで書く前に、誰かがそのようなフレームワークに遭遇したか、開発したかどうかを知りたいです。

私たちのプロジェクトは、パフォーマンスの向上に重点が置かれるポイントに到達しました。私は、Spring リポジトリを使用するサービスに委任するコントローラーがある Spring RESTful マイクロサービスの所有者です。非常に標準的で、特別なことは何もありません。

これが私ができるようにしたいことです。測定するメソッドに注釈を付けたくありません。また、チェックしたいメソッドの最初と最後に明示的なタイマー呼び出しを追加したくありません。ログ出力と同じように、コードは十分に「汚い」です。

私ができるようにしたいのは、外部構成ファイルで測定するメソッドをリストし、春の助けを借りてそれらを傍受して測定することです。ベンチマークは、本番/評価環境でさまざまな方法で収集されます。後で、各メソッドのさまざまな結果を視覚化する UI が必要です。この UI では、異常、つまり呼び出しに最も時間がかかった時間、または最も時間がかかった時間を見つけることができました。そこから、サービス レイヤーにドリルダウンして、サービスの弱点を見つけ、そこから、リポジトリによって呼び出されたパフォーマンスの低いクエリにたどり着くことができました。

指定されたツールがない場合 (利用可能なツールが少なくとも 100 あるとは信じられません)、私の計画は、Spring AOP または AspectJ を使用して、リストしたメソッドをインターセプトすることです。インターセプトごとに、呼び出しベンチマークのログ プリントを配置します。後で、Kibana を利用して各メソッドの弱点を見つけ、ドリルダウンします。

アスペクトがどのように行われるかの実装の詳細と、その目標のためにキバナを使用してデータの視覚化を正確に設定する方法を学ぶ必要があります。

誰かが光を遮ることができる場合-私のニーズに適したフレームワーク、または私の目標を支援するための経験またはコードを提供するか、これらのテストを実行するための代替または別の方法を提供する場合は、感謝の気持ちでそれについて聞きたいです! ありがとうございます!

4

3 に答える 3

2

それは実際にはコードソリューションではありませんが、メモリとCPUからのフィンガープリントが非常に少ない非常に簡単なインストールでNewRelic(http://newrelic.com)を使用してアプリサーバーを監視し、見栄えの良いダッシュボードを提供しようとしましたか?で。

無料とプレミアムがあります(無料は非常に良いオファーです)

それを確認することを強くお勧めします。

ニール

于 2015-06-28T07:39:27.200 に答える
2

Spring-Boot / Spring-Boot-Actuator には、いくつかの簡単なプロファイリング測定が組み込まています (リクエストの処理にかかる時間)。これは、メトリクス フレームワークに基づいています。

たぶん、この短いチューブビデオを見る必要があります: Spring Boot Actuator endpoints、いくつかの Spring-Boot-Actuator 機能について (Minute 2:03 で、私が話しているメトリックを示しています)。これで十分な場合は、この質問と回答をご覧ください: Spring Boot なしの Spring Boot アクチュエータ- ブートなしでアクチュエータを使用する方法について説明しています。

于 2015-06-28T08:45:20.157 に答える
2

実稼働環境または専用環境のどちらをプロファイリングしようとしているかによって異なります。

専用環境の場合、YourKit / JProfiler などのプロファイラーや、基本機能を提供する JDK 組み込み JVisualVM を使用できます。私の経験では、通常は JVIsualVM で十分でした。

本番環境では、「サンプル」モードでhprofを使用して (すべてのメソッド呼び出しを計測するわけではありません)、後でプロファイラー (上記またはその他のもの) を使用して hprof ファイルを分析できるように、フットプリントを小さくする必要があります。

そして、私が検討するもう1つのことはBTraceです-JVMで動的計測を可能にします-これは、(プロファイリングだけでなく)本番環境の問題を調査するのに非常に役立ちます

于 2015-06-28T08:30:51.437 に答える