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

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介:

先写上数据库配置:

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

主数据库: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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
29天前
|
安全 Linux 测试技术
提升龙蜥内核测试能力!探究持续性模糊测试优化实践
清华大学软件学院对Anolis OS使用靶向模糊测试方法将测试工作引向修改的代码,进而提高对业务代码的测试能力。
|
1月前
|
存储 关系型数据库 分布式数据库
PolarDB常见问题之PolarDB冷存数据到OSS之后恢复失败如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
1月前
|
SQL 关系型数据库 分布式数据库
在PolarDB中,行数评估是通过对表的统计数据、基数估计以及算子代价模型来进行估算的。
【2月更文挑战第14天】在PolarDB中,行数评估是通过对表的统计数据、基数估计以及算子代价模型来进行估算的。
86 1
|
13天前
|
SQL 关系型数据库 MySQL
关系型数据库插入数据的语句
使用SQL的`INSERT INTO`语句向关系型数据库的`students`表插入数据。例如,插入一个`id`为1,`name`为&#39;张三&#39;,`age`为20的记录:`INSERT INTO students (id, name, age) VALUES (1, &#39;张三&#39;, 20)。如果`id`自增,则可简化为`INSERT INTO students (name, age) VALUES (&#39;张三&#39;, 20)`。
20 2
|
13天前
|
SQL 存储 Oracle
关系型数据库查询数据的语句
本文介绍了关系型数据库中的基本SQL查询语句,包括选择所有或特定列、带条件查询、排序、分组、过滤分组、表连接、限制记录数及子查询。SQL还支持窗口函数、存储过程等高级功能,是高效管理数据库的关键。建议深入学习SQL及相应数据库系统文档。
9 2
|
20天前
|
人工智能 Cloud Native 算法
数据之势丨AI时代,云原生数据库的最新发展趋势与进展
AI与云数据库的深度结合是数据库发展的必然趋势,基于AI能力的加持,云数据库未来可以实现更快速的查询和决策,帮助企业更好地利用海量数据进行业务创新和决策优化。
数据之势丨AI时代,云原生数据库的最新发展趋势与进展
|
1月前
|
关系型数据库 MySQL OLAP
PolarDB +AnalyticDB Zero-ETL :免费同步数据到ADB,享受数据流通新体验
Zero-ETL是阿里云瑶池数据库提供的服务,旨在简化传统ETL流程的复杂性和成本,提高数据实时性。降低数据同步成本,允许用户快速在AnalyticDB中对PolarDB数据进行分析,降低了30%的数据接入成本,提升了60%的建仓效率。 Zero-ETL特性包括免费的PolarDB MySQL联邦分析和PolarDB-X元数据自动同步,提供一体化的事务处理和数据分析,并能整合多个数据源。用户只需简单配置即可实现数据同步和实时分析。
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop集群基本测试
Hadoop集群基本测试
28 0
|
1月前
|
SQL 关系型数据库 OLAP
PostgreSQL从小白到高手教程 - 第46讲:poc-tpch测试
PostgreSQL从小白到高手教程 - 第46讲:poc-tpch测试
83 3
|
2月前
|
关系型数据库 OLAP OLTP
PostgreSQL从小白到高手教程 - 第45讲:poc-tpcc测试
CUUG PostgreSQL技术大讲堂系列公开课第45讲-POC-TPCC测试的内容,往期视频及文档,请联系CUUG。
45 1