欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何分析POSTGRESQLFULLPAGE優(yōu)化與CHECKPOINT的矛盾

如何分析POSTGRESQL  FULL PAGE優(yōu)化與CHECKPOINT的矛盾,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)建站2013年至今,先為嘉祥等服務(wù)建站,嘉祥等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為嘉祥企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

在說完MySQL 不要關(guān)DW 后,祭出 POSTGRESQL FULL PAGE 的確是有點(diǎn)不厚道,所以必然會引出 FULL PAGE 也存在性能問題的話題。到底是大公雞和大馬猴的問題,還是小綿羊的牧羊犬的故事。

首先FULL PAGE 和 MYSQL的 DW 一樣,都是為了解決數(shù)據(jù)庫CRASH 時(shí)數(shù)據(jù)的那一刻存在的缺失問題。我看來看看相關(guān)的解釋

PostgreSQL 在 checkpoint 之后在對數(shù)據(jù)頁面的第一次寫的時(shí)候會將整個(gè)數(shù)據(jù)頁面寫到 xlog 里面。當(dāng)出現(xiàn)主機(jī)斷電或者OS崩潰時(shí),redo操作時(shí)通過checksum發(fā)現(xiàn)“部分寫”的數(shù)據(jù)頁,并將xlog中保存的這個(gè)完整數(shù)據(jù)頁覆蓋當(dāng)前損壞的數(shù)據(jù)頁,然后再繼續(xù)redo就可以恢復(fù)整個(gè)數(shù)據(jù)庫了。

看完以后會突然冒出一個(gè)想法

1 checkpoint 越密集,那FULL PAGE 也就越多咯

2 FULL PAGE 第一個(gè)頁面的大小會影響寫性能

那我關(guān)掉FULL PAGE 不就好了

當(dāng)然不是,F(xiàn)ULL  PAGE 在某些時(shí)候,不是你要開就開,要關(guān)就關(guān)的,尤其你在操作  pg_basebackup(或者一連串利用這命令的偽裝者們)的操作時(shí) FULL PAGE 是強(qiáng)制打開的,到底為什么這就不解釋了,和 備份的原理有關(guān)。

其實(shí)這個(gè)想法是比較巧妙的,他僅僅針對CHECK POINT 的第一個(gè)頁面進(jìn)行檢測并寫入到 XLOG 中

如何分析POSTGRESQL  FULL PAGE優(yōu)化與CHECKPOINT的矛盾

而提出異議或否定的意見是,full_page_write需要在xlog(wal)中記錄數(shù)據(jù)頁,會進(jìn)行更多寫操作,不僅數(shù)據(jù)變,還有數(shù)據(jù)頁的信息,這會增加的IO和磁盤消耗,引起主備延遲變大。

另外具體相關(guān)的FULL PAGE 的解釋和講解,參見下邊的圖,如有需要(可以入群,免費(fèi)下載相關(guān)書籍)

如何分析POSTGRESQL  FULL PAGE優(yōu)化與CHECKPOINT的矛盾

于此同時(shí),很多的優(yōu)化的方法就來了 ,有一種就很像 MYSQL的 DW 的方式來優(yōu)化PG 的FULL PAGE 方式, 但需要在PG上打PATCH。(這里不詳細(xì)展開)

另外降低CHECKPOINT 的頻率也可以降低 FULL PAGE 所帶來的性能影響,也有提出將PG的數(shù)據(jù)頁面在編譯的時(shí)候變小(個(gè)人覺得有點(diǎn)過了), 當(dāng)然這還不是終極的優(yōu)化方法,還有的文章中提出了,使用序列,與 UUID 對FULL PAGE 的不同的性能影響,其中指出,如果使用序列的方式,則在插入同樣行數(shù)的數(shù)據(jù)時(shí),對比 UUID ,產(chǎn)生的WAL 的大小相差20倍。

如何分析POSTGRESQL  FULL PAGE優(yōu)化與CHECKPOINT的矛盾

其中關(guān)鍵的一段話在上,提出如果使用序列的方式作為主鍵,則插入到btree索引中的相同葉頁面,只有對頁面的第一次修改才會觸發(fā)整個(gè)頁面的寫入。UUID是完全不同的情況,UUID值完全不是連續(xù)的,實(shí)際上每次插入都可能接觸到全新的葉索引葉頁面,造成寫入日志的量大影響I/O的性能。

上文中也提出可以調(diào)整 CHECK POINT 的間距,來降低FULL PAGE 造成的影響,具體怎么調(diào)整CHECK POINT 的間距。

如何分析POSTGRESQL  FULL PAGE優(yōu)化與CHECKPOINT的矛盾

上面是我們在每個(gè)PG 中都能看到的與CHECKPOINT 有關(guān)的東西,在一個(gè)負(fù)載很重的系統(tǒng)中,我們是否可以將MAX_WAL_SIZE 調(diào)大,(有人可能會問這個(gè)數(shù)字初期是怎么來的,那我覺得你可能對PG的安裝方面還可以在了解一下),調(diào)整到多大,8 - 10G 是沒有問題的。增加檢查點(diǎn)之間的距離可以減少WAL -但是為什么會發(fā)生這種情況呢?請記住:將事務(wù)日志放在首位的目的是確保系統(tǒng)在崩潰后仍然能夠正常運(yùn)行。將WAL中的這些更改應(yīng)用到數(shù)據(jù)文件將修復(fù)數(shù)據(jù)文件并在啟動時(shí)恢復(fù)系統(tǒng)。為了安全起見,PostgreSQL不能簡單地記錄對一個(gè)塊所做的更改—如果一個(gè)塊在通過檢查點(diǎn)后第一次被更改,那么整個(gè)頁面都必須被發(fā)送到WAL。

兩個(gè)檢查點(diǎn)之間的距離不僅由于檢查點(diǎn)的減少而提高了速度,更少的檢查點(diǎn)還會影響所寫事務(wù)日志的數(shù)量。所以在優(yōu)化FULL PAGE 的時(shí)候是要考慮,降低檢查點(diǎn),其實(shí)這和 MYSQL 里面調(diào)整innodb log file size 是一個(gè)意思。

在 Postgresql 11 Administratoration Cookbook, 這本書中的427頁也中對這兩個(gè)參數(shù)也有相關(guān)的講解,

兩個(gè)參數(shù)控制CHECKPOINT發(fā)生的頻率與預(yù)期,首先checkpoint_timout 這個(gè)參數(shù)會觸發(fā)在上一次CHECKPOINT 發(fā)生后多少秒后,進(jìn)行HECKPOINT,這直接影響有多少量的 WAL data 將要寫入目標(biāo)文件,實(shí)際上控制WAL寫入的數(shù)量的參數(shù)有兩個(gè)地方 

MAX_WAL_SIZE 

CHECKPOINT_TIMEOUT

然而當(dāng)你調(diào)大參數(shù),你應(yīng)該考慮系統(tǒng)如果CRASH 后的恢復(fù)時(shí)間,與多長時(shí)間做一次CHECKPOINT 之間做一個(gè)衡量,并且也要考慮WAL 日志的空間在磁盤上是否有充足的空間。

同時(shí)除2個(gè)參數(shù)可以優(yōu)化FULL PAGE 的性能的同時(shí),是否還有其他的方法,我們知道 WAL 日志的也是有緩沖,默認(rèn)是同步提交,只要是有COMMIT 日志信息就會刷入到磁盤, wal_buffers可以調(diào)整wal_buffer 的大小,并且調(diào)整 synchronous_commit  不在同步提交,減少磁盤交互,但這會打破系統(tǒng)CRASH 后的數(shù)據(jù)庫安全,有數(shù)據(jù)庫丟失的風(fēng)險(xiǎn)。

那怎么有的放矢的更大利用wal_buffers ,可以根據(jù)業(yè)務(wù),在某些情況下,通過調(diào)整下面的參數(shù)在session 的級別,來對某些可以容忍 1秒內(nèi)數(shù)據(jù)庫丟失的情況中,將syschronous_commit = off.

如何分析POSTGRESQL  FULL PAGE優(yōu)化與CHECKPOINT的矛盾

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

當(dāng)前標(biāo)題:如何分析POSTGRESQLFULLPAGE優(yōu)化與CHECKPOINT的矛盾
本文URL:http://chinadenli.net/article36/geospg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄動態(tài)網(wǎng)站App設(shè)計(jì)ChatGPT響應(yīng)式網(wǎng)站品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司