Node.jsメモリ監視ガイド
Node.jsのメモリ使用量を監視する方法 (日本語)
Node.jsアプリケーションのメモリ使用量を監視することは、パフォーマンス問題を特定し、最適化するための重要なタスクです。以下は、一般的な手法とツールを紹介します。
Node.jsの組み込みモジュールを使用
- process.memoryUsage()
メモリヒープの現在の使用量をオブジェクトとして返します。const usedMemory = process.memoryUsage(); console.log('Heap used:', usedMemory.heapUsed / 1024 / 1024, 'MB');
サードパーティライブラリを使用
- node-memwatch
メモリリークを検出するための監視ツールです。 - heapdump
メモリヒープのスナップショットを生成し、分析ツールで調査できます。const heapdump = require('heapdump'); heapdump.writeSnapshot('heapdump.heapsnapshot', (error) => { if (error) { console.error('Error writing heapdump:', error); } });
Node.jsメモリ監視ガイド (日本語)
process.memoryUsage()
const usedMemory = process.memoryUsage();
console.log('Heap used:', usedMemory.heapUsed / 1024 / 1024, 'MB');
heapUsed
プロパティは、ヒープで使用されているメモリバイト数を表します。process.memoryUsage()
は、メモリヒープの現在の使用量をオブジェクトとして返します。
heapdump
const heapdump = require('heapdump');
heapdump.writeSnapshot('heapdump.heapsnapshot', (error) => {
if (error) {
console.error('Error writing heapdump:', error);
}
});
- 生成されたスナップショットは、Chrome DevToolsなどのツールを使用して分析できます。
heapdump
ライブラリを使用して、メモリヒープのスナップショットを生成します。
node-memwatch
const memwatch = require('node-memwatch');
memwatch.on('leak', (info) => {
console.error('Memory leak detected:', info);
});
- リークが検出されると、イベントハンドラが呼び出され、リークに関する情報がログに出力されます。
node-memwatch
ライブラリを使用して、メモリリークを検出します。
プロファイリングツールを使用
Node.jsの組み込みプロファイラ
node --inspect my-app.js
- DevToolsのメモリタブを使用して、メモリ使用量を分析できます。
--inspect
オプションを使用して、Chrome DevToolsでプロファイリングを開始します。
サードパーティプロファイラ
node-inspector my-app.js
- ブラウザでプロファイリング結果を表示できます。
node-inspector
ツールを使用して、プロファイリングを行います。
モニタリングサービスを使用
New Relic
const newrelic = require('newrelic');
- New Relicエージェントをインストールし、アプリケーションに組み込むことで、メモリ使用量などのパフォーマンス指標を監視できます。
Datadog
const datadog = require('datadog-metrics');
コマンドラインツールを使用
- tasklist (Windows)
Windowsのタスク一覧を表示します。 - htop (Linux/macOS)
top
の強化版で、より多くの情報を表示します。 - top (Linux/macOS)
システム全体のメモリ使用量を監視します。
システムモニタリングツールを使用
- perfmon (Windows)
Windowsのシステムパフォーマンスモニターです。 - nmon (Linux/macOS)
システムのさまざまなパフォーマンス指標を監視します。 - htop
前述のように、システム全体のメモリ使用量を監視できます。
カスタムスクリプトを使用
- Node.jsスクリプト
process.memoryUsage()
やサードパーティライブラリを使用して、メモリ使用量を監視し、結果をファイルやデータベースに保存します。 - シェルスクリプト
top
やhtop
の出力を解析し、メモリ使用量を抽出します。
- Azure Monitor
Azureリソースのさまざまなパフォーマンス指標を監視します。 - Google Cloud Monitoring
Google Cloud Platformリソースのさまざまなパフォーマンス指標を監視します。 - AWS CloudWatch
AWSリソースのさまざまなパフォーマンス指標を監視します。
これらの代替方法を使用することで、Node.jsアプリケーションのメモリ使用量をさまざまな角度から監視することができます。
注意
- クラウドモニタリングサービスを使用する場合は、コストや機能を考慮して適切なサービスを選択してください。
- カスタムスクリプトを作成する場合は、スクリプトのメンテナンスやパフォーマンスに注意が必要です。
- コマンドラインツールやシステムモニタリングツールは、システム全体のメモリ使用量を監視するため、Node.jsアプリケーションに特化した情報を得るには、Node.jsの組み込みモジュールやサードパーティライブラリを使用する方が適しています。
javascript node.js memory