background writer我知道, checkpointer,walwriter和之間的區別parallel_worker:
- wal writer vs bg writer vs checkpointer
- client_backend 與 parallel_worker
但我對client backend. 我使用opensnoopandtrace來查找client backend通常會pwrite(2)在資料檔案和 wal 檔案中寫入 ( ) 的內容。
PID COMM FD ERR PATH
18365 (client backend) postgres 51 0 base/16384/16403
18365 (client backend) postgres 52 0 pg_wal/0000000100000001000000E1
問題
client backend負責什么?client backend每個連接最多一個?
uj5u.com熱心網友回復:
客戶端后端是與客戶端通信并代表客戶端執行 SQL 陳述句的服務器行程。每個資料庫會話都有一個客戶端后端行程。
但是,客戶端后端行程通常不必寫入資料檔案:后端僅將表資料寫入共享緩沖區(快取),而“檢查點”和“后臺寫入器”行程完成大部分實際寫入磁盤的作業. 這里的設計思想是客戶端后端不應該被這些可能很慢的任務所困擾,而是可以盡可能快地處理 SQL 陳述句。當事務提交時,WAL 由后端行程撰寫,否則 WAL 撰寫器行程負責處理。因此,您在后端看到這些寫入是正常的。
如果后臺寫入器的速度不足以應付作業負載,則可能會發生后端行程必須進行一些寫入的情況。這不應經常發生,而應僅在資料修改活動高峰期間發生。通常,這表明如果您增加共享緩沖區的大小,您可以提高 SQL 陳述句的性能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/497548.html
標籤:PostgreSQL
