0

neo4j への書き込み時のパフォーマンスを向上させるにはどうすればよいですか。私は現在、サーバーにneo4jをセットアップしており、現在それを組み込みで実行しています。私の構成は、オンラインで見つけた構成に基づいて、グラフデータベースのすべてのコンテンツをメモリに保存していると思います

neostore.nodestore.db.mapped_memory=0 
neostore.relationship.db.mapped_memory=0
neostore.propertystore.db.mapped_memory=0
neostore.propertystore.db.strings.mapped_memory=0
neostore.propertystore.db.arrays.mapped_memory=0
neostore.propertystore.db.index.keys.mapped_memory=0
neostore.propertystore.db.index.mapped_memory=0

node_auto_indexing=true

node_keys_indexable=type,id

cache_type=strong
use_memory_mapped_buffers=false
node_cache_size=12G
relationship_cache_size=12G
node_cache_array_fraction=10
relationship_cache_array_fraction=10

これが間違っている場合はお知らせください。私が遭遇している問題は、グラフ データベースに情報を永続化しようとしたときです。これらの時間は、同じことの MYSQL 時間と比較してあまり速くないようです (たとえば、250 項目を追加するには約 3 秒かかり、MYSQL では 1 秒かかります)。オンラインで複数のインデックスがある場合、データの永続化のパフォーマンスが低下する可能性があることを読んだので、それが私の原因であるかどうかを確認するために現在取り組んでいます。ただし、グラフ データベースをメモリ内で実行する場合に、構成がインラインであるように見えるようにしたかっただけです。

このトピックの 2 番目の質問です。さて、構成が適切で、データベースが実際にメモリ内にある場合、これが特効薬ではない場合に備えて、永続化されたデータを最適化する方法はありますか。この機能を実行するテストに対して 1 つのスレッドを実行した場合、10 のスレッドとは対照的に、実行時間が泡立つように見えます (スレッド 1 が 1 秒で終了、スレッド 2 が 2 秒で終了、スレッド 3 が 3 秒で終了、など)。複数のスレッドが同時にヒットしているときにパフォーマンスを向上させるために欠けている特別なマルチスレッド構成はありますか?

Neo4J version
1.9.1-enterprise

My Jvm configs are 
-Xms25G -Xmx25G -XX:+UseNUMA -XX:+UseSerialGC

My Machine Specs:
File system type ext3
4

1 に答える 1

0

キャッシュ引数が無効です。

node_cache_size=12G
relationship_cache_size=12G
node_cache_array_fraction=10
relationship_cache_array_fraction=10

GCRこれらはキャッシュでのみ使用できます。キャッシュを設定しても、起動時にすべてがメモリに格納されるわけではありません。これを行うには、コードを記述する必要があります。このようなもの:

GlobalGraphOperations ggo = GlobalGraphOperations.at(graphDatabaseFactory);
for (Node n : ggo.getAllNodes()) {
    for (String propertyKey : n.getPropertyKeys()) {
        n.getProperty(propertyKey);
    }
    for (Relationship relationship : n.getRelationships()) {
    }
}

強力なキャッシュに注意してください。多くのノード/関係がある場合、最終的にキャッシュが大きくなり、それに対して GC を実行すると、システムで長い一時停止が発生します。

これは OS で処理され、ヒープ領域の外にあるため、メモリ マップされたファイルを使用することをお勧めします。キャッシュの速度には及びませんが、neo ストアから読み取る必要がある場合は速度が向上します。

于 2013-08-22T14:55:02.250 に答える