2014-10-05 113 views
1

首先对我在这方面不存在的知识表示歉意,我的激情是开发新的有用的应用程序而不是配置云服务器:)花了一天的时间试图找出在Windows上运行Neo4j服务器的最佳配置没有任何成功可言:(我使用这个优秀的博客文章的方式来简单节点写入一个空数据库:Windows Azure上的Neo4j性能

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

模拟40个用户发布250个新的节点,每个节点给我下面的(糟糕?)在不同机器上的结果:

Windows Azu重新虚拟机A1 1,75GB 1级的CPU核心41 REQ /秒814毫秒平均响应时间

Windows Azure的虚拟机A2 3,50GB 2的CPU核心41 REQ /秒971毫秒平均响应时间

视窗本地机器8GB英特尔B950 2.10GHz:181 REQ /秒175毫秒的平均响应时间

Windows本地机器4GB英特尔i7-3537U 2.00GHz:140 REQ /秒280毫秒的平均响应时间

因此,这引起了一些明显的问题。为什么A1和A2有相似的结果?为什么我的本地4GB机器比A2性能好得多?

我试图将wrapper.java.initmemory和wrapper.java.maxmemory更改为1024,2048和3072,没有任何主要的性能改变。我也试图调整内存映射缓冲区大小,但没有任何成功。我的问题是我在Windows上运行吗?我不能用这些机器获得更好的结果吗?真的不知道从哪里开始,任何建议都将不胜感激!

+0

嘿珍妮,你也可以在Azure上托管Linux机器,你会介意给那些尝试和比较性能吗?对于那些应该有一个vmdepot图像:http://neo4j.com/blog/neo4j-2-0-1-community-released-on-windows-azure-vm-depot/(你可能需要更新到2.1。5) – 2014-10-05 20:05:20

+0

感谢迈克尔,作为一个.NET/Windows的人,不是我希望的答案,但如果没有什么帮助,直到明天,我想我必须这样做:)我的问题是,我不知道该期待什么,你有这种服务器规范的基准数字吗? – 2014-10-05 22:10:08

回答

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

继迈克尔建议我成立的Neo4j企业-2.1.5的天青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个请求/秒,平均值为1655毫秒。现在我觉得比以前更困惑:)尤其是看到上面的Michaels基准测试数字,测试代码有什么问题吗?显而易见的问题仍然是一个谜,为什么A1和A2有相似的结果,为什么我的本地4GB机器比A2好得多?