PostgreSQL 进程类型 PostgreSQL有四种进程类型 - Postmaster (Daemon) Process(主后台驻留进程)
- Background Process(后台进程)
- Backend Process(后端进程)
- Client Process(客户端进程)
Postmaster Process主后台驻留进程是PostgreSQL启动时第一个启动的进程。启动时,他会执行恢复、初始化共享内存爱你的运行后台进程操作。正常服役期间,当有客户端发起链接请求时,它还负责创建后端进程。 如果通过pstree命令查看进程之间的关系,你会发现Postmaster进程是其他所有进程的父进程。 Background ProcessPostgreSQL操作需要的后台进程列表如下: 进程作用
logger将错误信息写到log日志中
checkpointer当检查点出现时,将脏内存块写到数据文件
writer周期性的将脏内存块写入文件
wal writer将WAL缓存写入WAL文件
Autovacuum launcher当自动vacuum被启用时,用来派生autovacuum工作进程。autovacuum进程的作用是在需要时自动对膨胀表执行vacuum操作。
archiver在归档模式下时,复制WAL文件到特定的路径下。
stats collector用来收集数据库统计信息,例如会话执行信息统计(使用pg_stat_activity视图)和表使用信息统计(pg_stat_all_tables视图)
Backend Process最大后台链接数通过max_connections参数设定,默认值为100。后端进程用于处理前端用户请求并返回结果。查询运行时需要一些内存结构,就是所谓的本地内存(local memory)。本地内存涉及的主要参数有: - work_mem:用于排序、位图索引、哈希链接和合并链接操作。默认值为4MB。
- maintenance_work_mem:用于vacuum和创建索引操作。默认值为64MB。
- temp_buffers:用于临时表。默认值为8MB。
Client Process客户端进程需要和后端进程配合使用,处理每一个客户链接。通常情况下,Postmaster进程会派生一个紫禁城用来处理用户链接。
|