Neo4jとは
NoSQL型のデータベースの一種でGraphDBに分類されています。GraphDBとは、テーブル内のデータを一意のキーで関連付けているRDBと違い、個々のデータ(ノード)とノード間の関係性(リレーション)、ノードの持つプロパティの3要素の関係性でデータベースの構造が作られています。ノード間のデータが複雑に関連してくるようなデータを扱う場合に向いているといわれています。
Neo4jでも性能劣化の見極めは必要
NoSQL型のデータベースは、速度や軽さといった性能面で利用されているケースもあるかと思いますが、データベースの構造上、仮に同数のデータを扱った場合、データのボリュームによってはRDBよりも性能が劣ってくるケースもあると言われています。
日々の運用の一部としてサーバーを監視することで、性能劣化の兆候を見極めができるようになります。
Neo4j 監視
需要の高いデータベースの1つであるNeo4jは、ACID準拠のグラフデータベース管理システムです。ほかのデータベースと同様に、Neo4jはあらゆるシステムのコアコンポーネントであり、常時監視する必要があります。Neo4jとシステムをとりまく環境の要素の関係を把握するには、メモリ管理、ガベージコレクション、およびストアの成長、アクティブトランザクション、その他多くの運用ファセットなどのNeo4jの側面を追跡することが重要です。Applications ManagerのNeo4j監視は、Neo4jの主要なパフォーマンス指標に関する詳細なデータを収集し、注意が必要な領域を通知するため、Neo4jサーバーのパフォーマンスを最適化できます。
無料で使えます[機能・監視数 無制限]
メモリ情報
データベースに関して言えば、メモリ管理は非常に重要です。 Applications ManagerのNeo4j監視は、リソースの分割とNeo4jデータベースの利用状況を明確にし、物理メモリ、仮想メモリ、およびスワップメモリの使用に関する詳細を提供します。 また、広範なヒープ/非ヒープメモリのブレークダウンデータも提供します。 Neo4jでヒープメモリと非ヒープメモリの使用を最適化することにより、同時操作をスムーズに実行します。
スレッドとIDの割り当て
Applications ManagerのNeo4j管理は、サーバーでのスレッド操作にフォーカスを当てます。実行中の合計スレッド、デーモンスレッド、ピークスレッド、およびライブスレッドの数を示します。時間がかかるスレッドを特定して優先順位を付けることにより、データベースクエリの応答時間を短縮します。ノードID、プロパティID、関係ID、関係タイプなどのID割り当てに関する情報は、自由に利用できます。
ストア
Neo4jは、長期的な安定性のためにデータベースファイルをストレージに永続化します。Applications Managerを使用すると、データベース管理者はストアのサイズやプロパティのサイズなど、ストアの詳細を把握することができます。これらの値は、ディスクサイズとその増加率の予測に役立ちます。
ページキャッシュ
ページキャッシュは、ディスクに保存されているNeo4jデータを保管するために使用されます。Applications ManagerのNeo4j監視機能は、ページキャッシュカウントの詳細とページキャッシュサイズの詳細を提供します。ヒット率、フラッシュ、ヒット、フォールト、エビクション、マップされたファイルとマップされていないファイルなどのキャッシュメトリックは、キャッシュプロセスを視覚化し、解決可能な問題を明らかにするのに役立ちます。ディスクからのグラフデータのほとんどがメモリにキャッシュされるようにすることで、時間がかかるディスクへの頻繁なアクセスを回避できます。
トランザクション
デッドロックに陥ったトランザクションを特定し、それらを回避することにより、応答時間を最適化します。Neo4j監視ソフトウェアを使用して、開始済み、ピークコンカレント、オープン、コミット、およびロールバックされたトランザクションなどのパフォーマンスの指標を追跡します。
Neo4jの監視のほか、Applications Managerは次のデータベースサーバーの監視もサポートしています。