postgresql进程简介

  1. 启动服务之后,在有无客户端链接的进程对比sql

    上半部分是没有psql链接时的进程状态,下半部分是链接一个psql时候的进程状态。经过对比能够发现,当有客户端链接的时候,启动一个postgres进程。同理,当再增长一个客户端链接的时候,也再起一个postgres进程。数据库

  2. 守护进程postmaster缓存

    数据库服务的主控制进程,负责整个系统的开启和关闭,在其余服务进程发生错误时完成系统恢复,当有客户端请求时,fork一个postgres进程。如上图,增长一个psql链接之后,增长一个postgres进程。函数

    守护进程入口函数postmaste.cpost

void PostmasterMain(int argc, char *argv[])

   3.  checkpointer进程日志

        检查点进程,各类类型的检查点实现。检查的做用主要是缩短数据库恢复的时间。code

        checkpointer进程入口,checkpointer.c进程

void CheckpointerMain(void)

   4.  writer进程内存

        writer进程在适当的时间,将共享内存上的缓存写入磁盘。it

        writer进程入口,bgwriter.c

 

void BackgroundWriterMain(void)

   5.  wal writer进程

        预写日志进程,一种比较高效的日志模式,在数据库进行操做是,先将数据写入到日志文件,而后再写入数据库,因为           是顺序写,效率比通常的日志模式快。相似的,SQLite也有WAL模式。

        wal writer进程入口,Walwriter.c

void WalWriterMain(void)

  6.  autovacuum 进程

        执行自动vacuum任务。

        autovacuum进程入口,autovacuum.c

NON_EXEC_STATIC void
AutoVacLauncherMain(int argc, char *argv[])

   7.  stats colletcor进程

        统计信息收集进程,收集表的访问次数,磁盘的访问次数等信息。

   8.  

相关文章
相关标签/搜索