Neo4j+py2neo性能测试(CMDB二)

2024-05-07 15:18
文章标签 性能 测试 neo4j cmdb py2neo

本文主要是介绍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()

这篇关于Neo4j+py2neo性能测试(CMDB二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967716

相关文章

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

Java的"伪泛型"变"真泛型"后对性能的影响

《Java的伪泛型变真泛型后对性能的影响》泛型擦除本质上就是擦除与泛型相关的一切信息,例如参数化类型、类型变量等,Javac还将在需要时进行类型检查及强制类型转换,甚至在必要时会合成桥方法,这篇文章主... 目录1、真假泛型2、性能影响泛型存在于Java源代码中,在编译为字节码文件之前都会进行泛型擦除(ty

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.