千家信息网

Neo4j+py2neo性能测试(CMDB二)

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,性能测试:本地笔记本,CPU: i5, 内存: 8G, win7_x64, python 2.7, neo4j comunity 2.0.创建60000个CI, 耗时1分51秒, 平均1秒创建540个
千家信息网最后更新 2025年01月24日Neo4j+py2neo性能测试(CMDB二)性能测试:本地笔记本,CPU: i5, 内存: 8G, win7_x64, python 2.7, neo4j comunity 2.0.

创建60000个CI, 耗时1分51秒, 平均1秒创建540个CI, 每个CI包含属性3-7个属性

In [11]: py2neo_initialzation.create_ci(10000)

10000X6CIs

Tue Dec 24 17:04:43 2013

Tue Dec 24 17:06:34 2013

创建50000个关联关系,耗时4分27秒,平均1秒创建187个relationship.

In [12]: py2neo_initialzation.create_relationship(10000)

Tue Dec 24 17:07:23 2013

Tue Dec 24 17:11:50 2013


测试代码:

from py2neo import node,relfrom py2neo import neo4jimport timeimport datetimeg=neo4j.GraphDatabaseService('http://localhost:7474/db/data')import cmdb.py2neo_function as neofunction# data initialize#storagedef create_ci(total_ci):    print '%dX6CIs' % total_ci          print time.ctime()    for i in range(total_ci):        storage_name='storage_%d' % i        small_server_name='aix_%d' % i        lpar_name='lpar_%d' % i        db_name='db_%d' % i        was_name='was_%d' % i        app_name='app_%d' % i        g.create(node(ci_class='storage',city='Shanghai',district='PuDong',name=storage_name,rack=1,capacity=300),                 node(ci_class='small_server',city='Shanghai',district='PuDong',name=small_server_name,cpu_count=16,mem_GB=64),                 node(ci_class='lpar',city='Shanghai',district='PuDong',name=lpar_name,cpu_count=1,mem_GB=2),                 node(ci_class='db_instance',name=db_name,type='db2',version='9.1'),                 node(ci_class='was_node',name=was_name,version='6.1'),                 node(ci_class='application',name=app_name)                 )              print time.ctime()          def create_relationship(total_ci):    #get the nodes    #get all storeage nodes    print 'get all storage nodes, count number about %d' % total_ci    print datetime.datetime.now()    storage_list=neofunction.SearchNodes(g,'ci_class','storage')    print datetime.datetime.now()          #get all small_server nodes    small_server_list=neofunction.SearchNodes(g,'ci_class','small_server')          g.create((small_server_list[0],'depend_on',storage_list[0]))          #get all lpar nodes    lpar_list=neofunction.SearchNodes(g,'ci_class','small_server')          #get all was nodes    was_list=neofunction.SearchNodes(g,'ci_class','was_node')          #get all db_instance nodes    dbi_list=neofunction.SearchNodes(g,'ci_class','db_instance')          #get all app nodes    app_list=neofunction.SearchNodes(g,'ci_class','application')          print time.ctime()    for i in range(total_ci):        g.create((lpar_list[i],'depend_on',small_server_list[i]))        g.create((dbi_list[i],'running_on',lpar_list[i]))        g.create((was_list[i],'running_on',lpar_list[i]))        g.create((app_list[i],'depend_on',dbi_list[i]))        g.create((app_list[i],'depend_on',was_list[i]))          print time.ctime()


0