2014-10-05 4 views
1

Во-первых, извинения за мои несуществующие знания в этой области, моя страсть заключается в разработке новых полезных приложений, не настраивающих облачные серверы :) Провел день, пытаясь найти оптимальную конфигурацию для запуска сервера Neo4j в Windows без какого-либо успеха всех :(Я использую подход с этой прекрасной блоге писать простые узлы в пустую базу данных:Производительность Neo4j на Windows Azure

http://maxdemarzi.com/2013/02/14/neo4j-and-gatling-sitting-in-a-tree-performance-t-e-s-t-ing/

Симуляция 40 пользователей объявление 250 новых узлов каждый дает мне ниже (дерьмовой?) на других машинах:

Windows Azu повторно виртуальной машины А1 1,75GB ядра процессора 1: 41 REQ/с 814 мс среднее время ответ

Windows Azure виртуальной машины А2 3,50GB ядер процессора 2: 41 REQ/сек 971 мс среднее время отклика

Окна локальная машина 8GB Intel B950 2.10GHz: 181 REQ/сек 175 мс среднее время отклика

Windows, локальная машина 4GB Intel i7-3537U 2.00GHz: 140 REQ/s 280 мс среднее время ответ

Таким образом, это вызывает некоторые очевидные вопросов. Почему A1 и A2 имеют симуляционные результаты? Почему моя локальная машина 4GB работает намного лучше, чем A2?

Я попытался изменить wrapper.java.initmemory и wrapper.java.maxmemory на 1024, 2048 и 3072 без каких-либо существенных изменений производительности. Я также попытался настроить размеры буферов с отображением памяти без каких-либо успехов. Является ли моя проблема запущенной в Windows? Разве я не могу получить лучшие результаты с этими машинами? На самом деле не знаю, с чего начать здесь, любые предложения будут очень оценены!

+0

Эй, Дженни, поскольку вы также можете разместить Linux-машины на Azure, не могли бы вы дать им попробовать и сравнить производительность? Для них должно быть даже изображение vmdepot: http://neo4j.com/blog/neo4j-2-0-1-community-released-on-windows-azure-vm-depot/ (Возможно, вам придется обновить до 2.1.5) –

+0

Спасибо, Майкл, как человек .NET/Windows, который не был ответом, на который я надеялся, но если ничего полезного не появится до завтра, я думаю, я должен это сделать :) Моя проблема в том, что я понятия не имею, чего ожидать , есть ли у вас какие-либо эталонные номера для такой спецификации сервера? –

ответ

0

Что касается ваших вопросов, на что вы можете ожидать:

Для только создания узлов (несмотря на каждое создание является одной транзакцией), если вы используете шифр с параметром вы должны получить легко 1k на 2k запросов/с удаленно.

Если вы его продаете, вы должны легко получить больше, вот тест, который я сделал в последнее время.

JSON Генератор данных: https://dl.dropboxusercontent.com/u/14493611/cypher.rb

Выполнить 1000 запросов с 100 узлами каждый и 4 одновременно работающих пользователей.

ab -H "X-Stream: true" -k -n 1000 -c 4 -p cypher_100.json \ 
    -T 'application/json' -H "Accept: application/json" \ 
    http://127.0.0.1:7474/db/data/transaction/commit 

18s для 100k узлов

0

Следуя Michaels предложение настроить Neo4j-предприятие-2.1.5 на машине Azure A2 Linux и протестировали же простое создание 10000 узлов:

class CreateSimpleNodes extends Simulation { 

val httpConf = httpConfig 
    .baseURL("http://xxxxx.cloudapp.net:7474") 
    .acceptHeader("application/json") 

    val createNode = """{"query": "create me"}""" 

    val scn = scenario("Create Nodes") 
    .repeat(250) { 
    exec(
     http("create node") 
     .post("/db/data/cypher") 
     .body(createNode) 
     .asJSON 
     .check(status.is(200))) 
     .pause(0 milliseconds, 1 milliseconds) 
    } 

    setUp(
    scn.users(40).protocolConfig(httpConf) 
) 
} 

И это на самом деле хуже, чем Windows A2. Он управляет только 24 req/s со средним значением 1655 мс. Теперь я чувствую себя еще более смущенным, чем раньше. Особенно учитывая показания Майклса выше, есть ли что-то не так с тестовым кодом? Очевидные вопросы по-прежнему остаются загадкой, почему A1 и A2 имеют симулятивные результаты и почему моя локальная машина 4 ГБ работает намного лучше, чем A2?

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