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 Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

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、