2015-11-23 7 views
1

я вижу процессор приближается к 100% для большого количества запросов CYPHER, которые запускаемый сильной машины (16 ядер, 110 ГБ оперативной памяти, SSD и т.д. для базы данных 10GB Neo4j)Neo4j Шифр ​​query- использование центрального процессора профилировщик

есть ли способ профилировать запрос cypher для других аспектов, чем удары db? например: использование центрального процессора каждого оператора, замки и т.д.

конфигурация сервера:

Neo4j-обертка:

wrapper.java.initmemory=31768 
wrapper.java.maxmemory=31768 

neo4j.properties:

dbms.pagecache.memory=70g 

Java -XX: + PrintFlagsFinal -version | Grep -e '(Initial \ | Max) HeapSize' выход

Picked up _JAVA_OPTIONS: -Xmx32g -Xms32g 
uintx InitialHeapSize       := 34359738368       {product} 
uintx MaxHeapSize        := 34359738368       {product} 

jstack: https://www.dropbox.com/s/ktvflamjqoz9dnu/sudo_jstack%20_13453?dl=0

enter image description here

enter image description here

enter image description here

+0

Какие вопросы вы используете? Не могли бы вы создать threaddump вашего сервера neo4j и поделиться им? (kill -3 или jstack ) –

+1

Можете ли вы поделиться 'vmstat 3' или некоторыми метриками типа' iotop'? –

+0

спасибо Майкл, я добавил частично. Я также добавлю дамп. вы имеете в виду kill -3 до верхнего процесса neo4j, правильно ..? –

ответ

0

Я не знаю о способ профилировать конкретные запросы на использование ЦП, но вы настроили Neo4j на al Низкий, чтобы использовать больше памяти? Сколько памяти он использует?

Кроме того, это в производстве с несколькими запросами, попадающими в базу данных, или вы сами делаете запросы с помощью веб-консоли? Если последний, иногда запрос будет продолжать работать, даже если вы его отменили. Вы можете облегчить это, установив query timeout (скажем, 60 секунд).

+0

спасибо, Я отредактировал исходное сообщение. - это запросы, которые запускает семафор «node.js» - 10 за раз –

Смежные вопросы