2011-09-05 7 views
7

私のウェブサイトCompassionPit.comは、Node.jsによって提供されています。私はソースコードを公開しました。それはhosted at GitHubです。アプリケーション自体は、768MBのRAMを搭載したLinodeで動作しています(私は最近、サーバーをアップグレードしましたが、512MBでした)。Nodeアプリケーションをプロファイルして、メモリとCPUリソースを使用している場所を確認するにはどうすればよいですか?

最近、私はLinodeからCPU使用率の通知を受けています。私たちはますます90%以上の使用率でますます増えています。私はLinodeと呼んで、CPUリソースへのアクセスをアップグレードすることができるかどうかを見てみましたが、今は大丈夫です.100%に達した場合、次の3つのコアに移ります(Linodeは4プロセッサXenインスタンス)。

Nodeアプリケーションのプロファイルを作成して、メモリとCPUリソースを使用している場所を確認するにはどうすればよいですか?私はすぐに複数のサーバー設定でアプリケーションを再構築する必要があると予測しますが、適切なプロファイリングがよりスマートなアーキテクチャ決定につながると直感的に信じています。私が間違っているなら、私を修正してください。

+0

CompassionPit.com、誰もが、数年後にこのポストに来て、なくなっているように見えます。 – jcollum

答えて

0

プロファイリングにhttps://github.com/dannycoates/node-inspectorを使用すると合理的な成功を収めました。 READMEファイルの一番下にはセットアップガイドがあります。

Node.jsのそれ以降のバージョンでは、ノードインスペクタのプロファイリング部分は機能しなくなりました。私は--profhttp://code.google.com/p/v8/wiki/V8Profiler)とhttps://github.com/c4milo/node-webkit-agentの答えで以下の答えで合理的に成功しました。

+0

私はFreenodeの#Node.jsチャンネルから、dtrace(クレジット:H4ns)とv8プロファイラ(Glenjamin)を提案しました。 –

3

ノードインスペクタには、以下のプラグインがV8(ノード0.7.xの+)の新しいバージョンで動作するように更新されたバージョン0.6.x

後にプロファイルのノードはできません。これはnodetime.com以外にはまだ動作している唯一のものです。それは同様に非常に明確な指示があり

https://github.com/c4milo/node-webkit-agent

:それは、実際のWebKitのデバッガを使用しています。

+0

これはもう真実ではありません。その間にノードインスペクタが更新されました。 – Leo

+0

@LeoKoppelkammノードインスペクタがプロファイリングをサポートしているところはどこですか? [READMEはまだ述べています](https://github.com/node-inspector/node-inspector#known-issues) "プロファイラはまだ実装されていません"。 – John

+0

私は0.6.xのコメントを参照していました。ノードインスペクタはしばらく完全に壊れていましたが、その間に修正されました。私はそれを明確にするために答えを編集するつもりです。 – Leo

1

v6.3.0以降、you can now runnode --inspect your_script.js

ノードは、Chromeで開くことができるコンソールへのURLを表示します。このURLは、ノードプロセスのプロファイルに使用できる完全なWebインスペクタを表示します。

(あなたはできるだけ早くあなたのアプリケーションが起動すると、プロファイリングセッションを開始する必要がある場合に便利です)、すぐに実行を一時停止するために実行node --inspect --debug-brk

関連する問題