Neo4j+py2neo性能测试(CMDB二)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://leontam.blog.51cto.com/8150854/1344482
性能测试:
本地笔记本,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


测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from py2neo import node,rel
from py2neo import neo4j
import time
import datetime
g=neo4j.GraphDatabaseService('http://localhost:7474/db/data')
import cmdb.py2neo_function as neofunction
# data initialize
#storage
def create_ci(total_ci):
    print '%dX6CIs' % total_ci
       
    print time.ctime()
    for 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 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()
展开阅读全文

没有更多推荐了,返回首页