POSTGRESQL 压力测试结果与 POSTGRESQL CPU OR 内存 提升性能提升大

这篇具有很好参考价值的文章主要介绍了POSTGRESQL 压力测试结果与 POSTGRESQL CPU OR 内存 提升性能提升大。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

postgresql 压力测试,数据库,python,mysql,java,大数据

数据库与硬件之间的关系,是一个决定数据库性能,必要条件,即使你参数调整的漂亮,你的SQL 撰写的没有问题,但是硬件不行,那么上面说的这一切对于数据库的性能,只能是杯水车薪。

那么如何对一个数据库或者一个应用要使用的数据库,预先通过压测的方式来满足应用在正式运行后的需求,这一点就十分的重要了。我们对于应用上线都是基于严格的,数据库性能测试分析,以及基于应用端的数据库业务性能测试,合而为之一之后的结果,来驱动到底使用多大的配置来应承应用的需求。

本篇文字,是没有业务方面的测试对于POSTGRESQL 的压力测试,但作为一个正规的数据库部门,我们一定是有,不同硬件在同样配置下的POSTGRESQL 的跑分成绩的,并且还要有不同的

1  数据量

2  并发访问量

3  对数据的操作模式

4  不同的参数对于数据库的影响度

本篇中,就是基于4中配置,对POSTGRESQL 13 这个版本的数据库,在以上不同情况下的跑分结果,也是基于某个云跑分的结果。(什么云,那个云,不要问,此篇文字着重,怎么测,为什么这么测,测完怎么分析)

首先测试的硬件配置,一定是通用的,或者我们负担的起的硬件配置,我们不可能像数据库厂商,弄来512G ,256G ,96CORE, 128 CORE的主机来进行压力测试,然后提供一个很好看的分数。终究我们还是要较大实地的去用实际当中存在的主机来进行压力测试。

以下测试中我们通过如下的配置进行了压力测试

硬件配置
4C 8G
4C  16G
8C 64G
16C 32G

测试选项

测试数据形式
insert
delete
oltp
update

update without index
random select  point select 

测试的总体数据量大小

单表大小
500万
1000万
5000万
1亿

测试表的数量

测试表的数
10个
20个
5个

测试的线程数

并发线程
10
30
50 
70            100

通过不同的匹配项,进行顺序匹配,并且每个选项进行至少10次的测试,以及时间超过5分钟的单次测试。我们总结出如下的一些在POSTGRESQL 13上表现得性能状态。

1   CPU 的核心数的增加,对比内存的增加,在同种压力的情况下,CPU 添加后对系统的性能帮助大。

这点在8C 64G 和 16C 32G 的相关的测试中,对比测试数据的结果很明显,图1是 16C 32G  图2是 8C 64G ,操作的选择项是数据插入,在疯狂的数据插入的过程中线程越多,插入数据之间的行数的差距越大。

所以我们得出一个结论,在数据插入多的系统中,CPU 添加比内存添加要对提升性能更有利,进程越多,越明显。

图 1

postgresql 压力测试,数据库,python,mysql,java,大数据

图 2 

postgresql 压力测试,数据库,python,mysql,java,大数据

2  在数据的删除的操作中,下面图3️⃣为 16C 32G 图4️⃣为 8C 32G,从删除的操作角度来看,实际上无论是内存大还是CPU多,对于删除的操作的差别不是很大,CPU 多的状态略好于 内存多的状态。

图3 

postgresql 压力测试,数据库,python,mysql,java,大数据

图4

postgresql 压力测试,数据库,python,mysql,java,大数据

3  OLTP ,在OLTP 的操作中,CPU 多的情况下,访问线程多的情况下对于POSTGRESQL 的影响就有不同了,在表的行数多的情况下,部分测试结果中内存大的POSTGRESQL 占有小部分优势,而在线程低,表数量小的情况下二者的差别并不大。

这里我们找出规律是,当表的数据量越来越大的情况下,添加内存和添加CPU 要看访问的频度有多大,如果访问的频度并发大,则还是要添加CPU 优先,而不是内存,但如果访问的频度不大,则优先添加内存。

图5

postgresql 压力测试,数据库,python,mysql,java,大数据

图6

postgresql 压力测试,数据库,python,mysql,java,大数据

4  在查询中还有两种查询的方式,如random 查询,也就是我们查询的数据在页面中可能是不关联的,另一种是 range查询,也就是我们搜寻的数据很可能在一个页面或连续的页面中。

这里先说说,这两者查询在在同种配置的查询中,POSTGRESQL 更喜欢的是random point 的查询方式,因为这样的查询方式本身比range的查询的方式在TPS QPS 均有优势。

另外还是在线程的更多需求的状态下,CPU 更多的情况下 random 查询的差距并不是太明显,而在range 查询的状态中,CPU 多比内存多,要多个40%--45%的速度。图7为8C 64G 图8 为 16C 32G

图7

postgresql 压力测试,数据库,python,mysql,java,大数据

图8

postgresql 压力测试,数据库,python,mysql,java,大数据

通过这个查询,我们明确了一个问题,在进行范围查询的过程中,CPU 对于数据的提取的速度有明显的提高。

5  那么我们是否就可以得出POSTGRESQL 在数据处理中对于数据的操作应该给更多的CPU 要有利于给更多的内存,----下面的结果就给出了明确的结果

不是

下面的测试中,主要对于数据的UPDATE 有明显差异,尤其是带有索引的数

据在数据更新中。与之前CPU 对所有的数据库操作都有利相反,随着数据量和进程的量的增大的情况下内存更大的情况下,处理的速度更快这点我们在图9 8C 64G 和图10 16C 32G 的测试中可以看出,所以对于大量UPDATE 的操作中,并且你的表有大量的索引的情况下,这样的操作,内存是一个有利提升你操作速度的点。

图9

postgresql 压力测试,数据库,python,mysql,java,大数据

图10

postgresql 压力测试,数据库,python,mysql,java,大数据

当然我们还应该针对这些数据,在更多的层面上进行分析,如索引的数量,以及表行数的增长对于计算处理的衰减等等之类更细致的分析。基于时间的因素,我们可能后面在进行更详细的分析。

最后我们得出的结论,如果你的系统不是大量的UPDATE 的数据库系统,则CPU 对于你的大部分操作都有利,大于内存的添加,但如果你的操作中堆表有大量的UPDATE with index的操作,则内存是你需要考虑的提高性能的部分。

同时,数据库方面以上的测试结果是在未进行大幅度优化的情况下,其中我们发现如果将PG 中的与事务刷新有关的参数的值调整后,整体的性能会提高10-30%,但在实际的工作场景中我们并不能因为性能而放弃数据库的安全性。

postgresql 压力测试,数据库,python,mysql,java,大数据文章来源地址https://www.toymoban.com/news/detail-531141.html

到了这里,关于POSTGRESQL 压力测试结果与 POSTGRESQL CPU OR 内存 提升性能提升大的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【AI绘画】Stable Diffusion学习——安装与使用教程(一)

    【AI绘画】Stable Diffusion学习——安装与使用教程(一)

    1、Python 官网:https://www.python.org/downloads/ 建议安装3.10开头的版本号,下载安装包后运行即可 (安装python,建议安装3.10.6版本,这个是Stable Diffusion WebUI作者推荐安装版本) 将Python添加到默认路径,否则后面很多调用Python进行的操作都会失灵 安装完成之后,检查Python版本 按

    2024年02月03日
    浏览(12)
  • ICN6202 MIPIDSI转LVDS桥接芯片的功能及特征 调试文档资料

    产品特征功能: 输入:MIPI DSI 支持MIPI ® D-PHY Version 1.00.00 和 MIPI ® DSI Version 1.02.00. 可接收MIPI DSI 18bpp RGB666 and 24bpp RGB888 packets 4 lane data+1 lane clock 4对数据线可以选择1、2、3、4lane data 每对差分数据传输线最大可传输1Gbps,总共最大传输数据4Gbps。 支持mipi低功耗,超低功耗和休眠

    2024年02月14日
    浏览(11)
  • 【运维知识大神篇】超详细的ELFK日志分析教程10(kafka集群原理+基本使用+zookeeper和kafka堆内存调优+kafka监控和压力测试+filebeat和logstash对接kafka)

    【运维知识大神篇】超详细的ELFK日志分析教程10(kafka集群原理+基本使用+zookeeper和kafka堆内存调优+kafka监控和压力测试+filebeat和logstash对接kafka)

    本篇文章继续给大家介绍ELFK日志分析,我们先前介绍了ELFK架构,zookeeper部署使用,kafka的部署,仅差kafka使用就将整个体系融汇贯通了。我们本篇文章将以kafka为核心,详细介绍kafka使用,最终将kafka融入ELFK架构中,大致内容见下面目录。 目录 kafka集群原理 一、专业术语 二、

    2024年02月04日
    浏览(10)
  • Vue3前端开发,如何获取组件内dom对象以及子组件的属性和方法

    Vue3前端开发,如何获取组件内dom对象以及子组件的属性和方法

    Vue3前端开发,借助Ref来获取组件内dom对象,借助defineExpose编译宏可以获取到子组件的属性和方法。 app入口文件,我们作为父组件,在里面调用了自定义组件TestCom.vue。 先做了一个测试,借助于ref来访问自身的dom对象。如图所示是可以拿到的。 ref又称谓钩子函数,在vue2版本中

    2024年01月22日
    浏览(12)
  • 【unity小技巧】实现没有动画的FPS武器摇摆和摆动效果

    【unity小技巧】实现没有动画的FPS武器摇摆和摆动效果

    添加程序摇摆和摆动是为任何FPS游戏添加一些细节的非常简单的方法。但是并不是所以的模型动画都会配有武器摆动动画效果,在本文中,将实现如何使用一些简单的代码实现武器摇摆和摆动效果,这比设置动画来尝试实现类似效果要容易得多 新增SwayNBobScript代码 代码挂载在

    2024年01月18日
    浏览(12)
  • 洛谷题单 Part 6.7.1 矩阵

    应队友要求,开始学线性代数,具体路线是矩阵 → rightarrow → 高斯消元 → rightarrow → 线性基。为多项式做个准备 题面 板子,用结构体写的,感觉有点丑,一会儿看看题解有没有写得好看的 题面 搞个方阵 A 3 = [ a 3 a 2 a 1 0 0 0 0 0 0 ] , X = [ 1 1 0 0 0 1 1 0 0 ] , A_3=left [ begin{ma

    2024年02月15日
    浏览(7)
  • 健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)

    健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)

    健身管理小程序 目录 基于微信开发健身管理小程序设计与实现 一、前言 二、系统设计 三、系统功能设计  小程序端: 后台 四、数据库设计  五、核心代码  六、论文参考 七、最新计算机毕设选题推荐 八、源码获取:   博主介绍 :✌️大厂码农|毕设布道师,阿里云开发

    2024年04月17日
    浏览(13)
  • 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMI

    1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMI

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月10日
    浏览(16)
  • 【设计规范】TVS管如何选型/浪涌静电防护

    【设计规范】TVS管如何选型/浪涌静电防护

             TVS管作为浪涌静电防护的主力选手,人们往往只看TVS的电压进行选型,这是显然错误的,下面先回顾TVS的相关概念,再对选型与浪涌防护做具体分析。         TVS管在电路当中与被保护线路并联,,当电路正常工作时,它处于截止状态(高阻态),不影响线路

    2024年02月16日
    浏览(9)
  • python运行sh文件

    python运行sh文件

    1. 首先得有一个sh文件 2. 如果windows系统 则需要先下git软件 在Windows操作系统下运行Shell脚本,缺少的只是一个Git软件。其下载路径为Git - Downloading Package。 安装之后,将安装路劲下的 bin文件夹 的路径添加到系统环境变量。 3. cmd中修改路径 (转载) 4. pycharm 中terminal 运行sh文

    2024年02月11日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包