经历过小型机时代的运维人员都有一个感觉,好像是小型机上的CPU更经用一些,特别是IBM的小型机。哪怕是CPU使用率达到100%,系统好像还不感觉太慢。而在LINUX上就不同了,CPU使用率高了确实系统就立马变慢了,甚至不用达到100%,系统就慢的可以了。记得十多年前,一个客户为了图便宜,买了一批P5 的P595,系统刚上线,很快CPU使用率就100%了,虽然系统并没感觉慢,不过网管系统整天发告警也是受不了。于是我建议他们不再关注CPU使用率,而是关注r队列的长度,如果r队列的长度达到CPU核数的3倍,才开始报警,当r队列长度超过CPU核数的4倍的时候,系统才开始感觉有些慢。
wangliyun 发布于 2020-09-24 08:00:00
评论:0
浏览: 5635
顶: 479
踩: 455
本周钉钉线上直播精彩继续,欢迎大家扫描下方活动海报里的二维码加入我们,不见不散哦!
wangliyun 发布于 2020-09-18 08:00:00
评论:0
浏览: 3481
顶: 440
踩: 454
《PostgreSQL 设计优化case - 大宽表任意字段组合查询索引如何选择(btree, gin, rum) - (含单个索引列数超过32列的方法)》
https://github.com/digoal/blog/blob/master/201808/20180803_01.md
《PostgreSQL 任意字段数组合 AND\OR 条件,指定返回结果条数,构造测试数据算法举例》
https://github.com/digoal/blog/blob/master/201809/20180905_03.md
《PostgreSQL ADHoc(任意字段组合)查询(rums索引加速) - 非字典化,普通、数组等组合字段生成新数组》
wangliyun 发布于 2020-09-17 08:00:00
评论:0
浏览: 5394
顶: 414
踩: 483
并发控制是多个事务在并发运行时,数据库保证事务一致性(Consistency)和隔离性(Isolation)的一种机制。主流商用关系数据库使用的并发控制技术主要有三种:严格两阶段封锁(S2PL)、多版本并发控制(MVCC)和乐观并发控制(OCC)。
wangliyun 发布于 2020-09-16 08:00:00
评论:0
浏览: 8759
顶: 415
踩: 524
PostgreSQL中文社区的发展离不开志愿者们的辛苦付出和奉献,在此向所有志愿者们表示由衷的感谢!
为了不断壮大志愿者队伍,扩大PostgreSQL社区影响力,PostgreSQL中文社区诚邀PG技术爱好者加入到我们的翻译团队,自愿贡献时间和精力,在服务社区的同时,不断地提升自我。
wangliyun 发布于 2020-09-15 08:00:00
评论:0
浏览: 3799
顶: 484
踩: 493
本周钉钉线上直播精彩继续,欢迎大家扫描下方活动海报里的二维码加入我们,不见不散哦!
wangliyun 发布于 2020-09-11 08:00:00
评论:0
浏览: 4339
顶: 426
踩: 441
背景
预测营收目标,预测KPI风险。使用PostgreSQL二维线性回归,更高级一点可以使用MADLIB多维线性回归。
预测方法:
例如有最近连续4周的营收数据,预测第一季度,第二季度,第三季度,第四季度的营收。
例如设定了财年的营收目标,有最近连续四周的营收完成比率,预测第一季度,第二季度,第三季度,第四季度的营收完成率。
wangliyun 发布于 2020-09-10 08:00:00
评论:0
浏览: 4155
顶: 414
踩: 470
工作岗位
分布式云数据库开发高级工程师
wangliyun 发布于 2020-09-09 08:00:00
评论:0
浏览: 3962
顶: 496
踩: 508
前几天一位社区朋友咨询一个PostgreSQL的WAL文件膨胀案例,有个生产库最近几天pg_wal目录的WAL文件爆涨到了7万多个,把硬盘空间撑满,造成数据库故障。
为了快速恢复,这位朋友删除了pg_wal目录下10天前的WAL文件,将硬盘空间使用率降下来,使得数据库恢复,但pg_wal目录下的WAL文件依然涨得很快
wangliyun 发布于 2020-09-08 08:00:00
评论:1
浏览: 5282
顶: 424
踩: 454
并发控制是多个事务在并发运行时,数据库保证事务一致性(Consistency)和隔离性(Isolation)的一种机制。主流商用关系数据库使用的并发控制技术主要有三种:严格两阶段封锁(S2PL)、多版本并发控制(MVCC)和乐观并发控制(OCC)。
PostgreSQL使用了多版本并发控制技术的一种变体:快照隔离Sanpshot Isolation(简称SI)。通过SI,PostgreSQL提供了四个事务隔离级别,但实现与ANSI SQL标准有一些差异。
wangliyun 发布于 2020-09-05 08:00:00
评论:0
浏览: 5043
顶: 458
踩: 493
本周钉钉线上直播精彩继续,欢迎大家扫描下方活动海报里的二维码加入我们,不见不散哦!
wangliyun 发布于 2020-09-04 08:00:00
评论:0
浏览: 3459
顶: 477
踩: 443
PostgreSQL heap TABLE AM引擎,使用多版本来解决快照问题,版本处于当前数据文件中,有垃圾回收进程进行回收,那么哪些垃圾不能被回收呢?
WAL是PG的REDO文件,哪些WAL不能被回收重复利用?什么情况下可能会一直增长不清理呢?
wangliyun 发布于 2020-09-02 08:00:00
评论:0
浏览: 4537
顶: 505
踩: 416
背景
PostgreSQL heap TABLE AM引擎,使用多版本来解决快照问题,版本处于当前数据文件中,有垃圾回收进程进行回收,那么哪些垃圾不能被回收呢?
WAL是PG的REDO文件,哪些WAL不能被回收重复利用?什么情况下可能会一直增长不清理呢?
heap或INDEX的膨胀有些时候并不是因为回收慢,而是有些是无法被回收的垃圾,通常被称为膨胀点。本文对膨胀点进行逐一解释(回收慢不解释,可能: worker太少,io太差,worker睡眠太长或频繁,vacuum mem太少放不下所有垃圾行CTID导致多次扫描索引,launcher唤醒周期太长,表太大未支持并行垃圾回收, …)。
除了snapshot too old以外,12新增AM例如zedstore, zheap将彻底解决heap的垃圾版本带来的膨胀问题。
wangliyun 发布于 2020-09-01 08:00:00
评论:0
浏览: 4466
顶: 446
踩: 457
PostgreSQL使用了MVCC作为主要并发控制技术,它有很多好处,但也会带来一些其他的影响,例如关系膨胀。关系(表与索引)膨胀会对数据库性能产生负面影响,并浪费磁盘空间。为了使PostgreSQL始终保持在最佳性能,有必要及时对膨胀的关系进行垃圾回收,并定期重建过度膨胀的关系。
wangliyun 发布于 2020-08-29 08:00:00
评论:0
浏览: 4530
顶: 445
踩: 469
已有分区表,修改分区的范围。
例如拆分分区,合并分区。
语法如下,PG支持非常灵活的分区布局,看本文提到的HASH分区拆分,支持任意层级的分区,支持每个分区的层级深度不一样。特别适合某些数据分布不均匀的情况。例如id=1落在同一个分区但是数据量非常庞大,可以对这个分区再进行二级分区(使用其他分区方法,其他字段都可以,非常灵活)。
wangliyun 发布于 2020-08-27 08:00:00
评论:0
浏览: 7656
顶: 458
踩: 439
pg_cron 是 PostgreSQL(9.5或更高版本)的一个简单的基于cron的作业调度程序,它作为扩展在数据库中运行。它与常规 cron 保持相同的语法,但它允许直接从数据库安排 PostgreSQL 命令。作为一个独立运行的工作者进程,其生命周期管理、内存空间都依赖于 postgreSQL 。本文主要从启动、生命周期、状态机、用法介绍该插件在 postgresQL 数据库中的应用。
wangliyun 发布于 2020-08-26 08:00:00
评论:0
浏览: 4491
顶: 342
踩: 381
知识的学习是越学越不会,越学发现的"黑洞"和自己的欠缺就会越多,所以一直报以心虚的状态来学,可能理解多年的东西他变化了,或者当初就没有理解的彻底,而不自知.
Pgbouncer 看似是一个轻量级的连接缓冲,今天就来整理一下,来看看知识的黑洞
wangliyun 发布于 2020-08-25 08:00:00
评论:1
浏览: 3663
顶: 393
踩: 403
本周直播活动精彩继续
wangliyun 发布于 2020-08-21 08:00:00
评论:0
浏览: 3054
顶: 443
踩: 429
接上期为什么postgresql 需要连接池的问题过后, 本期还是要说说pgbouncer 连接池,并且需要做一个实验看看pgbouncer 到底在处理并发连接到底有多大的功效.
wangliyun 发布于 2020-08-20 08:00:00
评论:0
浏览: 4445
顶: 392
踩: 416
估计很多同学看过之前的月报PgSQL · 特性分析· JIT 在数据仓库中的应用价值,对JIT(just in time)和LLVM(Low Level Virtual Machine)有了一定的了解。概括地来说:
JIT 指的是即时编译,即程序在运行过程中即时进行编译,其中可以把编译的中间代码缓存或者优化。相对于静态编译代码,即时编译的代码可以处理延迟绑定并增强安全性。
LLVM 就提供了一种在程序运行时编译执行代码的程序框架,它对外提供API,使实现JIT 变得更加简单。
PostgreSQL 社区从2016年就开始对JIT 的实现进行了讨论,详见邮件列表。
wangliyun 发布于 2020-08-19 08:00:00
评论:0
浏览: 3483
顶: 400
踩: 413