zoukankan      html  css  js  c++  java
  • PostgreSQL进程和内存结构

     
     
    进程结构
    1、postgres server process是所有PostgreSQL数据库管理的父进程,在早期的版本种称为postmaster。
    (1)随着pg_ctl start,postgres server process也随之启动。
    (2)分配shared memory
    (3)启动一系列后台进程,复制相关的进程,后台工作者进程
    (4)当客户端连接的时候,通过调用操作系统命令fork()出一个backend process
    (5)监听数据库的端口
     
    2、backend process 负责处理客户端连接的请求处理。
    (1)必须指定要在连接到PostgreSQL服务器时显式使用的数据库,且只能指定一个db。
    (2)允许多个客户端同时连接PostgreSQL服务器,受参数max_connections控制,默认100
    (3)如果客户端频繁与服务器端建立和断开链接,增加建立连接和创建后端进程的成本,可使用连接池中间件(pgbouncer 或pgpool-II)进行连接复用。
    

      

    3、backgroud processes 是一系列各种功能特性的执行进程,比如vacuum,checkpoint等等。
    (1)background writer,共享内存中的脏页数据被有规律的定期持久化写入到磁盘,在pg9.1和之前版本还充当checkpoint的功能。
    (2)checkpointer,在9.2和之后的版本,执行检查点的过程。
    (3)autovacuum launcher 申请自动垃圾清理的创建
    (4)WAL writer 定期将WAL缓冲区上的WAL数据写入并刷新持久化到磁盘。
    (5)statistics collector 收集诸如pg_stat_activity和pg_stat_database等统计信息。
    (6)logger 将错误消息写入日志文件
    (7)archiver 归档日志
    

      

    4、replication associated processes 复制相关的进程
    (1)master端的walsender,
    (2)standby端的walreceiver。
    

      

    5、backgroud worker processes,
    (1)PostgreSQL启动时候可以通过模块中shared_preload_libraries包含的模块来初始化后台工作者进程。
    (2)可动态注册,注册的后台工作者的最大数量受max_worker_processes控制,默认为8。
    

      

    内存结构
    1、本地内存(类似于oracle的PGA),每个backend process 分配一个本地存储area,主要包括以下:
    work_mem :order by 和distinct操作对元组进行排序,通过merge-join和hash-join操作对表进行连接时使用
    maintenance_work_mem :某些维护操作(例如VACUUM,REINDEX)使用
    temp_buffers :临时表使用
    

      

    2、共享内存(类似于oracle的SGA),PostgreSQL服务器启动时将分配一个共享内存区域,主要包括以下:
    shared_buffers PostgreSQL对表或索引的操作都是在内存中进行的,如果访问的相关数据或者索引不在此区域,将从持久性存储加载到此处, 并直接对其进行操作。
    WAL buffer  是在写入磁盘之前WAL数据的缓冲区
    commit log  pg_xact记录所有事务的状态,事务进行中,已提交,已回滚。
    

      

  • 相关阅读:
    过渡效果
    生命周期
    事件处理
    列表的搜索和排序
    DotNetBar for Windows Forms 12.1.0.0_冰河之刃重打包版 原创发布
    DotNetBar for Windows Forms 11.8.0.8冰河之刃重打包版
    闲读
    POJ 3253 Fence Repair 贪心 优先级队列
    POJ 2431 Expedition 贪心 优先级队列
    优先级队列-堆-STL实现
  • 原文地址:https://www.cnblogs.com/imdba/p/13554507.html
Copyright © 2011-2022 走看看