数据库修仙炼气篇八——postgresql之IO调优

gaussdb 数据库参数说明【内存、磁盘空间、内核资源、后台写进程、异步IO】【03】 1. 内存 注意: 这些参数只能在数据库服务重新启动后生效。 shared_buffers 参数说明:设置GaussDB使用的共享内存大小。增加此参数的值会使GaussDB比系统默认设置需要更多的System V共享内存。需要重新设置共享内存和信号灯。 设置原则如下: 服务器内存小于1GB时,建议设置shared_buffers占用内存比例小于25%,这样可以留下更多的内存空间给操作系统调用。 服务器内存大于1GB小于4GB时,建议设置shared_buffers值为系统内存的25%。 服务器内存大于4G 阅读详情

pg_io_调优

检查点

检查点是数据库的关键行为,同时也是IO敏感的;其保证了数据库的一致性状态,定期执行检查点是很重要的,确保数据变化持久保存到磁盘中并且数据库的状态是一致的。不当的检查点配置会导致IO性能问题。我们需要关注检查点的配置,确保没有任何IO的尖刺(这同样也取决于磁盘性能的好坏,以及数据文件的组织)。

  • checkpoint_timeout

    统自动执行checkpoint之间的最大时间间隔。系统默认值是5分钟,这个值可以在压测过程中调大,尽量避免执行checkpoint争抢IO。

  • max_wal_size

    写满多少个WAL时执行checkpoint,也是同理,这个值可以在压测过程中调大,尽量避免执行checkpoint争抢IO

  • min_wal_size

    只要wal日志目录使用空间小于该值,那么旧的wal日志就会循环使用而不是进行删除。这个参数是为了确保足够的wal空间预留给突发情况,比如大的跑批操作。

  • checkpoint_completion_target

    分散检查点,默认为0.5,即表示每个checkpoint需要在checkpoints间隔时间的50%内完成,然后立马进行fsync,fsync执行是很快的。checkpoint_completion_target设置的越高的情况下,写入速度越低,对客户而言,体验越好,性能越高。反之,较低的值可能会引起I/O峰值,导致“卡死”的现象,可以设置0.9 +。

  • full_page_writes

    服务器在检查点之后对页面的第一次写入时将整个页面写到WAL里面。如果checkpoint发生太频繁,会导致写放大,默认为on,假如调为off,需要确保数据库在压测期间不要崩溃,不然重启后可能发生数据块部分写,导致重启失败。full_page_writes就是为了确保数据页一致性,不发生块折断

BgWriter

  • bgwriter_delay

    background writer每次扫描之间的时间间隔,也就是刷shared buffer脏页的进程调度间隔,尽量高频调度,减少用户进程申请不到内存而需要主动刷脏页的可能(导致RT升高

  • bgwriter_lru_maxpage

    一次最多刷多少脏页

  • bgwriter_lru_multiplier

    写出至多bgwriter_lru_multiplier * N个脏页,并且不超过bgwriter_lru_maxpages值的限制。其中N是最近一段时间在两次BgWriter运行期间系统新申请的缓冲区页数。后台写进程根据最近服务进程需要的buffer数量乘上这个比率估算出下次服务进程需要的buffer数量,再使用后台写进程刷脏页面,使缓冲区能使用的干净页面达到这个估计值

  • bgwriter_flush_after

    每当bgwriter写入的字节数超过bgwriter_flush_after时,就会强制OS从page cache中写出。这样做将限制page cache中脏数据量,从而减少在检查点末尾发出fsync或操作系统在后台大批量写回数据时出现停顿的可能性

vacuum

  • autovacuum

    自动清理进程,在压测期间,可以关闭,减少IO争抢

reference

  1. https://www.modb.pro/db/28822
全景相机APP 以下是一款**全景相机APP**的完整源码,支持全景照片拍摄(多帧拼接)、全景预览、鱼眼矫正、图片保存/分享、360°全景查看等核心功能,基于Android原生Camera2 API(替代过时的Camera API) + OpenCV(图像拼接) + GLSurfaceView(全景预览)实现,适配Android 8.0+设备,可直接编译运行。runOnUiThread(() -> tvFrameCount.setText("已拍摄:" + frameCount + "帧"));// X轴旋转(上下) 阅读详情

相关推荐

Axure RP 9在Windows 11环境下的高效安装与配置指南

本文提供Axure RP 9在Windows 11系统下的详细安装步骤与配置指南。针对Win11安全特性,从获取官方安装资源、调整系统权限,到定制化安装路径、精准汉化及性能优化,系统性地解决了安装闪退、汉化失败、运行卡顿等常见问题,确保用户获得稳定流畅的原型设计体验。

mango的博客 480

PostgreSQL检查点(checkpoint)详解

checkpoint简单点说就是一个数据库事件,用来保证数据一致性和完整性。 当我们在数据库中执行checkpoint时,就会将其之前的脏数据刷到磁盘,从而实现数据缩短数据库崩溃恢复时间的目的。 例如当我们更新任何数据的时候,对应于包含该数据的块将在shared buffers中更新。所做更改的记录保存在wal缓冲区中。提交后,我们所做的更改将被写入磁盘上的wal文件,从而使它们永久生效。如果实例立即崩溃,则将清除数据库共享缓冲区,但是在重新启动数据库时,PostgreSQL将把WAL文件中记录的更改应用于

Focus on PostgreSQL 1万+

stm32教程之三重ADC交错采样

ps:本文基于stm32F407ZGT6单片机 stm32F4单片机单通道采集的最大采样率为2.4M,所以有时会难以满足较高频率的采样,于是查阅芯片手册,发现stm32F4支持多重ADC采集,利用每个通道的转换时间,错位采样,从而提高采样率,最大把采样率开到2.4*3=7.2M. (去年初学ADC时研究的,基于cube和HAL库的三重ADC交错采样参考资料不多,我也是研究了一段时间,写下这篇博客希望可以帮助到更多人。) 示意图如下: 以下是官方例子的说明, In this ex...

weixin_52178036的博客 8877

一次服务器IO占用率高的定位分析

背景:请假在外中,听平台组同事反馈了一个问题,在往生产数据库中导入部分数据时会造成客户端的访问超时,初步定位是因为服务器磁盘占用IO过高,导数据时IO会飙升到100%,因此引起了不少数据库的慢查询操作导致客户端响应超时,无奈只好暂时停止了导入数据的脚本,同时也延误了针对这部分数据的生产测试工作。于是我第二天回到公司就投入了对这个问题的跟踪定位工作。环境描述:操作系统文件系统数据库首先我们数据库某最...

weixin_34062469的博客 889

Cisco三层交换机的详细配置

** 本文适用于新手小白以及微微基础的同学来用于参考,实验是在Cisco Packet Tracer Student 进行,实验最终效果如图所示,所有命令配置与图中的一致。 使用到的机器型号为:五台电脑,一台服务器,三个普通交换机(2960型号),一个三层交换机(3560-24PS),两台普通服务器(2811) 文章目录一、什么是三层交换机二、配置交换机步骤1.配置二层交换机2.配置三层交换机3.配置两台路由器以及最后一台电脑 一、什么是三层交换机 1.三层交换机 = 三层路由+二层交换机 2.工作在

真正的大师,永远都怀着一颗学徒的心。 4万+

Windows中的TLS 1.2启用方法(IIS、C#、.Net framework)

折腾几天了windows中的tls1.2启用方法!特此记录一下 开发背景: 在一个用.net framework 2.0开发的客户端程序里面嵌入功能调用第三方物联网相关接口,服务器上有一个restful接口用于接收第三方上报的数据及处理,最后再调用第三方的物联网相关接口。本机开发环境Windows 10,客户服务器是Windows Server 2008 R2。 第一次写这种物联网相关的接口调用,而且第三方提供的文档比较简单,最基本的报文示例都没。开发环境里面各种摸索一步一个坑,首先在发送HTTP请求前

dl1314ld的博客 1万+

数据库修仙炼气篇三——postgresql进程之BgWriter

BgWriter Bgwriter是一个Background Writer进程的简称,Bgwriter会定时将缓存中一些已经更改的数据(脏缓冲区)写入到磁盘。 BgWriter是postmaster通过fork创建的子进程。 源码分析 启动 主进程fork子进程 #mermaid-svg-MeTM8vpGMQzNuLFf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-

growdu的网络博客 1047

stackelberg博弈_博弈论、多智能体、强化学习(随便记点东西)

多智能体应用场景:已实现:游戏AI。正在努力:UAV,物资运输,快递分发,交通系统。未来:社会学,预测群体行为,城市区域合作,国际关系。博弈论基本定义:玩家集合: 策略集合: 收益函数: 囚徒困境:两智能体矩阵博弈坦白抵赖坦白1,13,0抵赖0,32,2占优策略与最佳应对:上表中两者均具有占优策略,即无论如何都应该选坦白。那么构造下表。坦白抵赖坦白1,13,0抵赖0,12,2对于玩家一来说,坦白...

weixin_39611722的博客 3000

解决mysql占用IO过高

因为查询日志打开之后会将MySQL中执行的每一条Query都记录到日志中,会该系统带来比较大的IO负担,而带来的实际效益却并不是非常大。MySQL的日志包括错误日志(ErrorLog),更新日志(UpdateLog),二进制日志(Binlog),查询日志(QueryLog),慢查询日志(SlowQueryLog)等。MySQL的日志包括错误日志(ErrorLog),更新日志(UpdateLog),二进制日志(Binlog),查询日志(QueryLog),慢查询日志(SlowQueryLog)等。

神棍之路 1205

基于NB-IoT的智慧路灯监控系统(NB-IoT专栏—实战篇1:项目简介)

基于NB-IoT技术的城市道路智慧路灯监控系统,在每个照明节点上安装一个集成了NB-IoT模组的单灯控制器,单灯控制器再经运营商的网络,与路灯控制平台实现双向通信,路灯控制平台直接对每个灯进行控制,包括开关灯控制、光照检测、自动调节明暗、电耗分析等操作。

不脱发的程序猿 5万+

rk3568 rk628桥片 rgb2hdmi

RK628 是瑞芯微全新推出的视频桥接芯片,支持丰富的显示接口,支持高分辨率大屏产品转换需求。基于DRM、FB的显示框架易于使用。 输入信号支持:HDMI、RGB、BT.1120,输出信号支持 HDMI、GVI、Dual LVDS、Dual MIPI、MIPI-CSI、RGB、BT.1120,最高支持4K 60fps 输入/输出转换,并且支持输入到输出 1/4~4倍的缩放。

weixin_35723192的博客 452

pg的checkpoint相关参数

是一个关键的配置参数,它用于指定自上次checkpoint之后经过的时间间隔,当超过这个指定的时间后,系统会执行checkpoint操作。

shulu的专栏 658

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数据库修仙炼气篇十一——postgresql 存储管理

pgsql 存储管理 内存管理 包括共享内存、本地内存、内存上下文、缓冲区的管理。 共享内存 共享内存中存储了所有进程的公共数据,例如锁变量、进程通信状态、共享缓冲区中的页面块等。 本地内存 为每个后台进程所专有,是他们的工作区域,存储着属于该进程的Cache(高速缓存)、事务管理信息、进程信息等 内存上下文 内存上下文(MemoryContext)用于统一管理内存分配和回收。 缓冲区 磁盘中的文件块读入内存,被存放在缓冲区中, 称之为页面块或缓冲块。一个标准缓冲块大小为8K。PG设立了共享

growdu的网络博客 1496

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

数据库修仙炼气篇四——WalWriter

WalWriter 预写式日志WAL机制是对数据文件的修改必须是只能发生在这些修改已经记录到日志之后,即先写日志再写数据。 WalWriter进程负责定期从WAL缓冲区写出日志,并确定写出日志的起点和终点来调用XlogWriter将日志写入到磁盘。 参数配置 wal_level 控制wal存储的级别。wal_level确定有多少信息被写入到WAL。默认值是replica,它添加了WAL归档信息,包括只读服务器(流复制)所需的信息。还可以将其设置为minimal,即只写入从崩溃或立即关闭中恢复所需的信息。

growdu的网络博客 660

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

数据库修仙炼气篇十二——数据库数据完整性问题(块折断)

数据库数据完整性问题(块折断) 数据库保证数据库完整性(解决块折断问题)当前主要有如下三种方式: 操作日志加double write机制(mysql采用该机制); 操作日志加full page write机制(postgresql同时采用这两种机制); 混合方式,既支持操作日志加double write,又支持操作日志加full page write(openguass采用该机制); 基本概念 块折断 数据库在将数据写入磁盘时一般是按page写入磁盘的,而page的大小一般与操作系统的文件块

growdu的网络博客 1023

金仓数据库KingbaseES checkpoint_timeout参数对wal日志量的影响

在KingbaseESV8R6数据库中,必须先将更改写入WAL日志(老版本称为 xlog),然后才能将这些更改从内存shared_buffer 写入到磁盘。前两天有个同事遇到一个问题,wal日志每天生成120GB,于是我们检查了参数checkpoint_timeout参数是默认的5min。然而这个参数应该根据实际的业务类型进行调整,建议调整为30-60分钟。增加检查点之间的距离会导致WAL日志减少,相当于增加checkpoint_timeout参数,就相对减少wal日志量生成。

arthemis_14的博客 583

【PostgreSQL的“double buffers“刷脏机制和参数】

PostgreSQL数据库使用双缓存写数据,shared_buffer + OS page cache,下图是PG与OS内存交互的过程 ,在PostgreSQL中,shared_buffers所代表的内存区域可以看成是一个以8KB的block为单位的数组,即最小的分配单位是8KB。这正好是一个page的大小,每个page以page内部的元数据(Page Header)互相区分。

小怪兽的博客 2240

PostgreSQL checkpoint(检查点)参数设置

1.简介 PostgreSQL是依靠预写日志(WAL)的数据库之一,所有的更改首先被写入一个日志(一个变化的流),然后再写入数据文件.这提高了数据的安全性,因为在崩溃的情况下,数据库会使用WAL执行恢复,从WAL读取更改并将其重新应用于数据文件.虽然这可能会使写入量增加一倍,但实际上可能会提高性能,用户只需要等待WAL(刷新到磁盘),而数据文件仅在内存中修改,然后在后台刷新. WAL写入本质上是顺序写入的,而对数据文件的写入往往是随机写入的. 非常频繁的检查点(比如几秒一次).只保留少量的...

是个好男人的博客 4130

理解postgresql.conf中的check_completion_target参数

理解postgresql.conf中的check_completion_target参数: 开始新一系列的博客–解释各种配置参数。当然了 我不会遵循任何时间表或命令,除非它是我的工作,我认为我这样的方式很有趣。 第一篇参数配置是关于checkpoint_completion_target. 首先,让我们先想想什么是checkpoint? 你可能知道PostgreSQL把缓存页(默认是8kB的磁盘块...

weixin_42009082的博客 1504

数据库log日志文件说明

数据库文件的分类 数据库文件分为正常操作日志,此日志默认自动开启,在/var/log/mysqld.log.可以直接查看 二进制日志 主要用于备份和还原 需要在/etc/my.cnf的配置文件自己开启 方法为: vim /etc/my.cnf #插入内容为 log_bin server-id=1 然后我们所有的操作除查询外都会记录到二进制文件里面 每次重启数据库会自动形成一个新的文件在 /var/lib/mysql/ 数据库报错文件: 先进入到/etc/my.cnf 的配置文件进行查看是否开启 .

weixin_43469486的博客 1532

postgresql性能参数配置

查询Linux服务器配置 在进行性能调优之前,需要清楚知道服务器的配置信息,比如说 CPU,内存,服务器版本等信息。 查询系统版本信息 root@ubuntu160:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.3 LTS Release...

大壮的博客 5721

postgresql中的checkpoint_completion_target

postgresql checkpoint_completion_target

朝着梦想 渐行前进 2139

checkpoints相关参数

checkpoint就是把共有内存里面更新过的数据写到磁盘(磁盘缓存)里面的处理。有两个参数控制写入的时机和频率,两个参数同时有效,满足任何一个条件都会执行写入处理。(应该是。。^_^;) checkpoint_segments:定量,写入大小。 一个是16MB,默认是3,所以就是48MB。到了这个量就会调用写入处理。 checkpoint_timeout:定时,写入间隔。默认是5mi

rudy gao 2712

关于PostgreSQL的IO

关于PostgreSQL的IO 如果数据库的IO出现瓶颈,通常可以通过PG的参数进行调优。为了更好的优化IO应该了解PG的IO。 哪些地方会产生IO? PG产生的IO可以归结到下面这几个地方。 WAL写入 每个事务执行都会产生IO,同步提交下提交时还会刷新磁盘。Checkpoint...

weixin_34341229的博客 997

驱动加载失败PGIO口测试问题

今天在测试GPIO口的时候遇到了这样的一个问题:/dev/xxxx open failed public class GPIO_Test { static{ System.loadLibrary("gpiotest"); } public native int open(); public native int write(int count);

超越梦想 2581

postgresql.conf bgwriter_flush_after

baidu_24377669的博客 290
上一篇: 数据库修仙炼气篇三——postgresql进程之BgWriter
下一篇: 数据库修仙炼气篇四——WalWriter
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我在数据库世界里修仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值