lightdb增量檢查點特性及穩定性測試

checkpoint是一個數據庫事件,它將已修改的數據從高速緩存刷新到磁盤,並更新控制文件和數據文件,此時會有大量的I/O寫操作。

在PostgreSQL中,檢查點(後臺)進程執行檢查點;當發生下列情況之一時,其進程將啓動:

  • 檢查點間隔時間由checkpoint_timeout設置(默認間隔爲300秒(5分鐘))
  • 在9.5版或更高版本中,pg_xlog中WAL段文件的總大小(在10版或更高版本中爲pg_WAL)已超過參數max_WAL_size的值(默認值爲1GB(64個16MB文件))。
  • PostgreSQL服務器在smart或fast模式下關閉。
  • 手動checkpoint。
 這裏我們主要關注自動觸發的情況,所以最後兩種情況並不關注。由於沒有增量檢查點的概念,在pg中,當檢查點觸發的時候,會觸發明顯的抖動,如下:
 

 

從lightdb 23.2開始,正式支持增量檢查點機制。啓用增量檢查點後,運行曲線如下:

 

 雖然通過優化相關參數,也能達到比較接近的效果,但是完全依賴於DBA和精細調優的結果。而採用增量檢查點,該過程完全自動化了,大大提升了數據庫的自治性。

其由下列參數控制:

enable_incremental_checkpoint,是否啓用增量檢查點,默認:off

incre_checkpoint_timeout:增量檢查點模式下檢查點的觸發間隔

log_pagewriter:是否在PageWriter內打印日誌

enable_candidate_buf_usage_count:是否在管理頁面空閒隊列時考慮頁面的usage count

enable_double_write=off ,是否啓用雙寫,默認:off。如果未啓用增量檢查點,該參數無效。

dw_file_num:雙寫文件的數量

dw_file_size: 每個雙寫文件的大小

max_io_capacity:用戶預估的磁盤I/O帶寬

pagewriter_thread_num:PageWriter子進程的數量

pagewriter_sleep:PageWriter刷頁的間隔

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章