サーバー側 (ノード プロセス) の Meteor アプリケーションが許容範囲をはるかに超えて CPU を使用しているため、調査したいと考えています。
2 つの同時クライアントは、CPU の 100% を使用するノードをリードしています。これはおそらくobserversの大量使用に関連していますが、アプリケーション全体を変更する前にさらに調査する必要があります.
では、プロファイリングにはどのツールを使用できますか? それの使い方?
私が見つけた最良の解決策はv8-profiler (およびnode-inspector ) です。
に進み[Meteor installation folder]/dev_bundle/lib/node_modules
ます。
そこに実行$ npm install v8-profiler
します。
サーバー コードを追加します。
Meteor.startup(function() {
profiler = __meteor_bootstrap__.require("v8-profiler")
Meteor._debug("Server started!");
});
アプリ サーバー コードのどこでも、この方法でプロファイリングできます。
profiler.startProfiling("name"); //begin cpu profiling
yourCode();
var cpuProfile = profiler.stopProfiling("name"); //finish cpu profiling
実行することを忘れないでくださいnode-inspector
また、Meteor-specific Observatoryもご覧ください。これは強力なサーバー側およびクライアント側のロギング パッケージであり、任意の関数のプロファイリングをサポートし、「テンプレート ライフサイクル メソッド、コレクション メソッド (現在サポートされているのは find のみ)、およびサブスクリプション プロファイリングの自動ロギング」です。
APM (Application Performance Monitoring ) は、MeteorHacks で有名なArunoda Susiripalaによって開発された Meteorパッケージ+ クラウド サービスです。現在はベータ版で、非常に有望に見えます。
[コストのかかる呼び出し] タブから、メソッドにドリルダウンして、最も時間がかかるメソッドを特定できます。
この 1 分間のチュートリアル ビデオでは、コストのかかるメソッドの識別が示されています。
NodeTimeは非常に優れたプロファイリング サービスです。これは無料で使用でき、特にあなたのような状況で役に立ち、セットアップも非常に簡単です!