今天才知道,原来postgresql进行写数据时,并不会即时的写入磁盘文件,而是先缓存在内存里。直到当数据达到或超过预设的wal缓存区大小后才会进行checkpoint,以保证内存和文件的数据同步。这些相应的参数可在postgresql.conf里调整
#checkpoint_segments = 3 # in logfile segments, min 1, 16MB each
#checkpoint_timeout = 5min # range 30s-1h
#checkpoint_warning = 30s # 0 is off
这个是调整check的时间间隔
#wal_buffers = 64kB # min 32kB
这个应该是调整wal缓存的大小