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

相关文章

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

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

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五