postgresql集群方案hot standby初级测试(二) ——处理数据能力

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

先写上数据库配置:

一个主数据库,两个从数据库

主数据库:Intel(R) Pentium(R) D CPU 2.80GHz *2                   |        MemTotal:      1027072 kB

从库1     :Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz|        MemTotal:      2066020 kB

从库2     :Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz|        MemTotal:      2066020 kB

 

本人自己写了c语言的测试脚本,用到了libpq c库,这里附上源码:

  1. #include <stdio.h>  
  2. #include <libpq-fe.h>  
  3. #include <pthread.h>  
  4. #include <sys/time.h>  
  5.   
  6. /* 
  7. 首先创建一个简单的表只有userid和name 
  8. CREATE TABLE t_user 
  9. ( 
  10.   userid character varying(25), 
  11.   name character varying(25) 
  12. ) 
  13. */  
  14.   
  15. void thread(char *count){  
  16.     int i,j;  
  17.     const char *conninfo;  
  18.     char char_time[1024];  
  19.     PGresult *res;  
  20.     PGconn *conn;  
  21.     j = atoi(count);  
  22.     struct timeval tpstart,tpend;  
  23.     float timeuser;  
  24.     gettimeofday(&tpstart,NULL);  
  25.     //数据库配置(主机地址,用户名,端口,数据库名)  
  26.     conninfo = "hostaddr=192.168.30.150 user=postgres port=5433 dbname=lengzijian";  
  27.     conn = PQconnectdb(conninfo);  
  28.     for(i = 0;i<j;i++){  
  29.         sprintf(char_time,"insert into t_user values ('%d','lengzijian')",i);  
  30.         res = PQexec(conn, char_time);  
  31.         if(!res||PQresultStatus(res)!=PGRES_COMMAND_OK)   
  32.         {  
  33.             printf("insert failed:%s--[%d]\n",PQerrorMessage(conn),i);   
  34.             PQclear(res);   
  35.         }  
  36.         PQclear(res);  
  37.     }  
  38.     gettimeofday(&tpend,NULL);  
  39.     timeuser=1000000*(tpend.tv_sec-tpstart.tv_sec)+tpend.tv_usec-tpstart.tv_usec;  
  40.     timeuser /=1000000;  
  41.     //输出每个线程的运行时间,方便计算平均值  
  42.     printf("Used Time:%f\n",timeuser);  
  43.     PQfinish(conn);  
  44.       
  45. }   
  46. //第一个变量表示线程数,第二个参数表示并发量(每个线程的插入测试)  
  47. int main(int argc,char *argv[])  
  48. {  
  49.     int i, j;  
  50.     j = atoi(argv[1]);  
  51.     pthread_t id[j];   
  52.     int ret;  
  53.     if(argc < 3){  
  54.         printf("Not enough arguments, exiting...");  
  55.         return -1;  
  56.     }   
  57.   
  58.     for(i=0;i<j;i++)  
  59.         ret=pthread_create(&id[i],NULL,(void *) thread,argv[2]);   
  60.   
  61.     /* 关闭数据库连接并清理 */  
  62.     for(i=0;i<j;i++)  
  63.         pthread_join(id[i],NULL);   
  64.       
  65. }  


编译方法:

  1. gcc test.c -lpq #千万别忘了-lpq  


 

使用方法:

  1. ./a.out 1 1000         #表示1个线程1000个插入操作  


 

由于本人机器并非服务器,所以数据只用来参考,希望读者可以用上面的代码,测试服务器上主机后,发送给本人,本人不胜感激!!!!

直接上数据:

线程数量

每个线程插入次数

总时间(s)

每秒处理次数

1

1000

0.684

1461.988304

1

10000

6.56

1524.390244

1

50000

33.008

1514.784295

1

100000

76.972

1299.173726

2

1000

0.83

2409.638554

2

10000

7.96

2512.562814

2

50000

41

2439.02439

2

100000

95.675

2090.410243

3

1000

1.15

2608.695652

3

10000

11.99

2502.085071

3

50000

70.98

2113.271344

3

100000

163.4

1835.985312

5

1000

1.22

4098.360656

5

10000

15.9

3144.654088

5

50000

82.9

3015.681544

5

100000

118.4034

4222.852386

10

1000

1.830302

5463.579234

10

10000

16.94417

5901.736326

10

50000

87.61617

5706.709487

10

100000

179.2664

5578.290561



本文转自h2内存数据库博客园博客,原文链接:http://www.cnblogs.com/h2-database/archive/2012/07/09/2583251.html,如需转载请自行联系原作者

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
人工智能 测试技术 芯片
AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
本文介绍了使用四块Framework主板构建AI推理集群的过程,并基于AMD Ryzen AI Max+ 395处理器进行大语言模型推理性能测试,重点评估其并行推理能力及集群表现。
193 0
AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
|
4月前
|
存储 监控 关系型数据库
B-tree不是万能药:PostgreSQL索引失效的7种高频场景与破解方案
在PostgreSQL优化实践中,B-tree索引虽承担了80%以上的查询加速任务,但因多种原因可能导致索引失效,引发性能骤降。本文深入剖析7种高频失效场景,包括隐式类型转换、函数包裹列、前导通配符等,并通过实战案例揭示问题本质,提供生产验证的解决方案。同时,总结索引使用决策矩阵与关键原则,助你让索引真正发挥作用。
257 0
|
9月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
4月前
|
自然语言处理 算法 数据可视化
文本聚类效果差?5种主流算法性能测试帮你找到最佳方案
本文探讨了自然语言处理中句子嵌入的聚类技术,使用Billingsmoore数据集(925个英语句子)进行实验。通过生成句子嵌入向量并可视化分析,对比了K-Means、DBSCAN、HDBSCAN、凝聚型层次聚类和谱聚类等算法的表现。结果表明,K-Means适合已知聚类数量的场景,DBSCAN和HDBSCAN适用于未知聚类数量且存在异常值的情况,而谱聚类在句子嵌入领域表现不佳。最终建议根据数据特征和计算资源选择合适的算法以实现高质量聚类。
177 0
文本聚类效果差?5种主流算法性能测试帮你找到最佳方案
|
7月前
|
SQL 关系型数据库 PostgreSQL
【YashanDB 知识库】从 PostgreSQL 迁移到 YashanDB 如何进行数据行数比对
【YashanDB 知识库】从 PostgreSQL 迁移到 YashanDB 如何进行数据行数比对
|
7月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】从PostgreSQL迁移到YashanDB如何进行数据行数比对
本文介绍了通过Oracle视图`v$sql`和`v$sql_plan`分析SQL性能的方法。首先,可通过`plan_hash_value`从`v$sql_plan`获取SQL执行计划,结合示例展示了具体查询方式。文章还创建了一个UDF函数`REPEAT`用于格式化输出,便于阅读复杂执行计划。最后,通过实例展示了如何根据`plan_hash_value`获取SQL文本及其内存中的执行计划,帮助优化性能问题。
|
10月前
|
监控 测试技术 定位技术
HTTP代理IP响应速度测试方案设计与指标体系
随着数字化发展,网络安全、隐私保护及内容访问自由成为核心需求。HTTP代理因其技术优势成为热门选择。本文介绍HTTP代理IP响应速度测试方案,包括基础性能、稳定性、地理位置、实际应用、安全性测试及监控指标,推荐测试工具,并提供测试结果评估标准。
194 2
|
11月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
353 6
|
10月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的数据文件
PostgreSQL的物理存储结构主要包括数据文件、日志文件等。数据文件按oid命名,超过1G时自动拆分。通过查询数据库和表的oid,可定位到具体的数据文件。例如,查询数据库oid后,再查询特定表的oid及relfilenode,即可找到该表对应的数据文件位置。
228 1
|
11月前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
842 1

热门文章

最新文章

推荐镜像

更多