《腾讯-施博文2(最新版).pdf》由会员分享,可在线阅读,更多相关《腾讯-施博文2(最新版).pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、PostgreSQL中文社区第13届PostgreSQL中国技术大会聚焦云端创新汇聚智慧共享施博文PostgreSQL中文社区内核审计日志冷热存储分离03逻辑复制槽故障转移04进程级监控0102PostgreSQL中文社区目录contentsPostgreSQL中文社区TencentDB for PG 内核功能全景图01进程级监控PostgreSQL中文社区PostgreSQL中文社区01 进程级监控 功能介绍统计指定时间内各进程 CPU 的使率(相对于单核)统计指定时间内各进程 内存 的使量(单位 Byte)通过 GUC 参数来设置每次采样的时(tencentdb_system_stat.s
2、ampling_interval)提供 tencentdb_process_system_usage 视图供户查询,可按照 database/进程/户 分类,适于 SaaS 场景PostgreSQL中文社区01 进程级监控 原理解析/proc/pid/stat:记录对应进程号的状态信息1.pid:进程号m:进程的命令名3.state:进程状态4.ppid:进程组 id.14.utime:进程启动今在户态运的时间(以 clock tick 为单位)15.stime:进程启动今在内核态运的时间(以 clock tick 为单位).22.starttime:当前进程启动的时间,值表示距离操作系统启动
3、已经经过的 clock tick 数;24.rss:进程占的实际内存(以 page 为单位)PostgreSQL中文社区01 进程级监控 原理解析内存使量计算:直接读取 rss 值CPU 使率计算:需要计算 t1,t2 这段时间内,某个进程对 CPU 的占情况jiffies:Linux 内核中的变量,记录从系统启动到现在已经经过的 clock tick 数(记录在/proc/uptime)绿色进程:通过公式 2 计算 CPU 使用率蓝色进程:通过公式 1 计算 CPU 使用率 白色进程:不统计在内02内核审计日志PostgreSQL中文社区PostgreSQL中文社区02 内核审计日志 功能介
4、绍审计志功能:记录数据库操作员、操作对象、操作对象等系列信息的志。持以下两种模式审计:1.极速版:对标原 log_statement=all,新增审计影响数、执时2.精细版:对标 pgaudit 插件提供的能,新增审计影响数、执时定义 csv 格式审计志件,可扩展性(对接 dbbrain)审计志与原志分流,保障可读性和性能PostgreSQL中文社区02 内核审计日志 原理解析新增 audit logger 进程,后台进程通过 管道/socket 将志消息发送给该进程,该进程不断的将审计志专刷到对应的审计志件中:以 pgaudit 插件为基础进修改,后台进程通过 hook 机制获取审计志需要的
5、信息,最终将其发送给 audit logger 进程PostgreSQL中文社区02 内核审计日志 性能优化PG 原开启 log_statement=all 后性能下降明显,开启 pgaudit 后会进步导致性能下降;对性能瓶颈进针对性优化:后台进程给 logger 进程发消息时会抢操作系统的 pipe 锁PostgreSQL中文社区02 内核审计日志 性能优化核心优化思路:减少 pipe 锁的争抢 减少后台进程发消息的频率 多攒条志消息起发给每个后台进程建的志缓冲区缓冲区可通过参数动态调整缓冲区满将消息统发送给 logger 进程缓冲区内存复,减少实例的内存使量将审计志的落盘机制由 缓冲 改
6、为 全缓冲PostgreSQL中文社区02 内核审计日志 性能优化现 8C32G 实例的性能测试结果如下,并发场景下性能提升明显03冷热存储分离PostgreSQL中文社区PostgreSQL中文社区03 冷热存储分离 功能介绍提供 cos_fdw 插件,户可以将不常的数据放到 COS(对象存储)上,使 cos_fdw 可直接将对象存储中的数据当作外部表来访问SELECT a.id,b.name,c.valueFROMtbl_a a,tbl_b b,tbl_cos cosWHEREa.id=b.id.Postgre