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()

你可能感兴趣的:(python,工具包)