Postgresql 进程分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a964921988/article/details/80618527
Linux上执行 ps -ef | grep postgres 查看postgresql进程

wal sender process/ wal receiver process
wal sender 进程和wal receiver进程是实现postgresql复制(streaming replication)的进程。
Wal sender进程通过网络传送WAL日志,而其他PostgreSQL实例的wal receiver进程则接收相应的日志。
Wal receiver进程的宿主PostgreSQL(也称为Standby)接受到WAL日志后,在自身的数据库上还原,生成一个和发送端的PostgreSQL(也称为Master)完全一样的数据库。

wal startup
     wal startup 进程是用来apply日志的

Writer process
Writer process在适当的时间点把共享内存上的缓存写往磁盘。
通过这个进程,可以防止在检查点的时候(checkpoint),大量的往磁盘写而导致性能恶化,使得服务器可以保持比较稳定的性能。
Background writer起来以后就一直常驻内存,但是并非一直在工作,它会在工作一段时间后进行休眠,休眠的时间间隔通过postgresql.conf里面的参数bgwriter_delay设置,默认是200微秒。
这个进程的另外一个重要的功能是定期执行检查点(checkpoint)。检查点的时候,会把共享内存上的缓存内容往数据库文件写,
使得内存和文件的状态一致。通过这样,可以在系统崩溃的时候可以缩短从WAL恢复的时间,另外也可以防止WAL无限的增长。
可以通过postgresql.conf的checkpoint_segments、checkpoint_timeout指定执行检查点的时间间隔。

WAL writer process
WAL writer process把共享内存上的WAL缓存在适当的时间点往磁盘写,通过这样,可以减轻后端进程在写自己的WAL缓存时的压力,提高性能。
另外,非同步提交设为true的时候,可以保证在一定的时间间隔内,把WAL缓存上的内容写入WAL日志文件。
stats collector process
统计信息的收集进程。收集好统计表的访问次数,磁盘的访问次数等信息。
收集到的信息除了能被autovaccum利用,还可以给其他数据库管理员作为数据库管理的参考信息。

Logger process
把postgresql的活动状态写到日志信息文件(并非事务日志),在指定的时间间隔里面,对日志文件进行rotate.
Archive process
Archive process把WAL日志转移到归档日志里。如果保存了基础备份以及归档日志,即使实在磁盘完全损坏的时候,也可以回复数据库到最新的状态。

猜你喜欢

转载自blog.csdn.net/a964921988/article/details/80618527