<del id="nnjnj"></del><track id="nnjnj"></track>

<p id="nnjnj"></p>

<address id="nnjnj"></address>

    <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

      <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>

      • 自動秒收錄
      • 軟件:1973
      • 資訊:57811|
      • 收錄網站:279872|

      IT精英團

      從PG15開始WAL壓縮優化

      從PG15開始WAL壓縮優化

      瀏覽次數:
      評論次數:
      編輯: 澤洋
      信息來源: ITPUB
      更新日期: 2022-09-20 00:46:07
      摘要

      PG15傳聞中的超級令人激動的功能大多數跳票了,年初我也寫過一個關于PG15新功能跳票的文章。PG15BETA已經發出幾個月了,似乎PG15里令人激動人心的功能不多,不過從長長的新功能列表里,

      • 正文開始
      • 相關閱讀
      • 推薦作品

      大部分傳聞中的PG 15的超級刺激功能都跳票了。年初的時候,我也寫過一篇關于PG15新特性的文章。PG 15 BETA已經發布好幾個月了??雌饋鞵G 15并沒有太多令人興奮的特性,但我還是能從這一長串新特性中學到很多。數據庫的發展與現代硬件技術的發展密切相關,數據庫在某一方面的突破可以為應用提供更大的舞臺,讓應用更好地適應一些特定的場景

      其實在幾個重要特性之后,我對PG 15的期待主要集中在整頁寫的優化上。我之前寫過很多次文章,研究PG的WAL代,以及檢查點對高負載應用的寫性能的影響。實際上,這些性能影響大多來自整頁寫入。因為當檢查點完成后第一次寫入臟塊時,需要進行整頁寫入,以避免數據庫需要恢復時發生塊斷裂。但是當整頁寫大規模產生時,由于WAL寫的量大大增加,會導致高并發寫應用的性能問題。其實我們在做pg_basebackup之類的在線備份操作時,也會造成大量的整頁寫入。緩解這個問題的辦法是增加檢查點的延遲,讓兩個檢查點之間的間隔更長,這樣會大大減少整頁寫。增加CHEKPOINT的延遲也是一把雙刃劍,因為它會使數據庫在恢復時需要恢復更多的頁面,同時會在一個檢查點集中寫入大量的數據塊。瞬間對木衛一產生更大的影響。在PG中關閉整頁寫也是一個選項,但是你只需要找到一個支持PG關閉整頁寫的文件系統或者存儲系統就可以了。我們之前在ZFS上嘗試過關閉整頁書寫,效果相當不錯。但是,ZFS在我們大多數PG運行環境中并沒有使用,所以我們仍然期待PG 15在整頁寫入上的優化。我還考慮了WAL壓縮來緩解整頁寫的問題。我們在PG 12上做了一個測試,打開了WAL壓縮。但開啟WAL壓縮后,PG數據塊的高并發寫入性能并沒有提高,反而略有下降。從先前的PG 12的WAL壓縮中可以獲得性能改進的場景非常有限。PG 15的沃爾壓縮有一個非常令人興奮的改進。除了支持PGLZ,WAL壓縮還支持LZ4和z標準壓縮算法。

      從官方的對比來看,ZSTD是一種優秀的壓縮算法,在壓縮和解壓縮吞吐量與壓縮比之間取得了平衡。LZ雖然在壓縮比上不如ZSTD,但是在壓縮吞吐量上卻有著特別優異的表現。這兩種壓縮算法的引入必將提高WAL壓縮的性能。因為時間關系,目前我們還沒有全面測試PG 15。我覺得還是等正式版出來再做完整測試吧。不過從目前一些外國友人對PG 15的測試來看,還是很刺激的。讓我們根據馬克卡拉漢的測試案例來看看效果。

      正如我們所料,使用之前的pglz對只有PK的場景影響不大。對于PG來說,第一次數據寫入是新創建的塊,不同算法之間的影響不會太大。但是對其他場景影響很大。使用LZ4的效果非常好,裝載性能有了明顯的提高。當存在多個索引時,zstd的數據加載表現出良好的性能。不過從上面的測試來看,還是比較簡單的,所以這個測試結果頁面并沒有說明太多問題。不過有一點是肯定的,那就是LZ4和ZSTD的引入將會大大優化WAL壓縮的性能,從而緩解整頁寫的問題,同時也大大減少了DBA在優化檢查點方面的工作。在大多數情況下,檢查點的優化可能會變得更簡單。我們只需要根據自己的場景需求選擇設置WAL壓縮參數即可。無獨有偶,在PG 15中,增加了一個新的權限:pg_checkpointer。過去,checkpint命令只能由超級用戶執行。在PG 15中,只要授予了該權限的用戶就可以在自己的應用程序中執行checkpoint命令。分散檢查點命令的權限是PG 15細粒度權限控制優化的一部分。但是,既然你敢授權,就說明checkpoint帶來的副作用已經得到了控制。隨著現代硬件的發展,IO問題得到了極大的緩解。同時,由于WAL壓縮的優化,也為檢查點的去中心化提供了有力的支持。但是業務場景很復雜,這個權限不要隨便授予,因為目前我還沒有想清楚這個權限下放的真正好處是什么,在什么場景下,應用需要自己控制檢查點。如果有一天,DBA發現某個應用系統頻繁執行檢查點導致的抓撓IO性能問題,那就麻煩大了。對于開發人員來說,盡快把每一條記錄寫到磁盤上絕對是一件喜歡的事情,但是對于DBA來說,可能就是一場災難。

      標簽:性能 場景 權限
      深入了解美團葉子發射器開源方案
      ? 上一篇 2022-09-20
      教大家如何處理Spring Boot易流中的用戶和群體!
      下一篇 ? 2022-09-20
      • 如何在Ubuntu中保留文件系統并備份當前開發板鏡像
        0閱讀 0條評論 個贊
        在Ubuntu保留文件系統或者說備份當前開發板鏡像的需求在不斷增加。比如Ubuntu文件系統需要安裝庫文件的話直接使用apt-get工具就可以下載,但由于需要下載的核心板較多,比較費時間,這時需要將安……
      • 國產核心板全志T507助力消防系統升級
        0閱讀 0條評論 個贊
        9月16日下午,位于湖南長沙市區內的中國電信大樓發生火災,建筑高度218米,現場濃煙滾滾,數十層樓體燃燒劇烈。消防救援人員趕到現場后很快將火勢控制住,目前大樓火勢已被撲滅,所幸未發現人員傷亡。湖南電信……
      • 教大家如何處理Spring Boot易流中的用戶和群體!
        0閱讀 0條評論 個贊
        1.準備工作2.用戶操作2.1添加用戶2.2修改用戶2.3刪除用戶2.4查詢用戶3.組操作3.1添加組3.2修改組3.3刪除組3.4查詢組4.查看表詳情雖然說我們在實際開發中,……
      • 深入了解美團葉子發射器開源方案
        0閱讀 0條評論 個贊
        大家好,我是樹哥。之前我們有聊過「如何設計一個分布式ID發號器」,其中有講過4種解決方案,分別是:UUID類雪花算法數據庫自增主鍵Redis原子自增美團以第2、3種解決方案為基礎,開發出……
      • 內存泄漏——原因、避免和位置
        0閱讀 0條評論 個贊
        .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
      發表評論 共有條評論
      用戶名: 密碼:
      驗證碼: 匿名發表
      • 在i.MX8MP開發板中移植OpenSSL工具
        0閱讀 0條評論 個贊
        飛凌嵌入式OKMX8MP-C開發板采用NXPi.MX8MPlus高性能處理器開發,AI計算能力高達2.3TOPS,可滿足輕量級邊緣計算需求。同時靈活的I/O接口配置和先進豐富的多媒體資源,方便客戶……
      • 多線程技術的歷史發展和簡單使用
        0閱讀 0條評論 個贊
        進程與線程進程是應用的執行實例,可狹義理解為一個應用程序就是一個進程。啟用一個應用程序時就是啟動了一個進程。該應用運行所需的所有地址空間,代碼,數據及系統資源都屬于此進程。進程所使用的所有資源會在進程……
      • Python入門系列(七)開發常說的"累"與"對象"
        0閱讀 0條評論 個贊
        類與對象Python是一種面向對象的編程語言。要創建類,請使用關鍵字classclassMyClass:x=5創建一個名為p1的對象,并打印x的值p1=MyClass()print(p1……
      • 你知道信息架構圖和功能架構圖的區別嗎?
        0閱讀 0條評論 個贊
        .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
      • 基于 網絡6的輕量級Webapi框架緊固點
        0閱讀 0條評論 個贊
        大家好,我是等天黑。FastEndpoints是一個基于.NET6開發的開源webapi框架,它可以很好地替代.NETMinimalAPIs和MVC,專門為開發效率而生,帶來了全……
      • web端pdf編輯能力的設計與實踐
        0閱讀 0條評論 個贊
        本期作者顧伊凡嗶哩嗶哩資深開發工程師2021年加入B站,負責UP主創作激勵、收益中心、電子簽約平臺前端建設。本文將從業務場景與技術實現等角度對“web端pdf編輯能力”進行基本的介紹。01背景B站電……
      • 金牛座入門 MVC微服務框架開發教程:項目部署:4 微服務應用發布到Docker進行部署
        0閱讀 0條評論 個贊
        前言:本篇教程,演示ASP.NETCore微服務應用程序,如何最簡方式發布到Docker中部署,并運行起來。新手兩個簡易概念:1、映像:可以理解為Class,用于定義;2、容器:可以理解為Clas……
      • 新零售SaaS架構:商品系統架構設計
        0閱讀 0條評論 個贊
        SaaS產品就像一座冰山,冰山以上的部分是功能、數據(可見部分)、用戶界面,冰山以下是系統架構、完整的數據模型、開放體系、非功能性需求(擴展性、可維護性、性能、安全等)。短期內想要快速上線產品,可能只……
      • 設計模式介紹——單一模式
        0閱讀 0條評論 個贊
        簡介一個類只允許創建一個對象(或實例),那么這個類就是一個單例類,這種設計模式稱作單例設計模式(SingletonDesignPattern),簡稱單例模式。單例模式保證系統內存中只存在一個對象,……
      • 如何使用helm優雅地安裝prometheus-operator并監控k8s集群微服務
        0閱讀 0條評論 個贊
        前言:隨著云原生概念盛行,對于容器、服務、節點以及集群的監控變得越來越重要。Prometheus作為Kubernetes監控的事實標準,有著強大的功能和良好的生態。但是它不支持分布式,不支持數據……
      • Hadoop(簡介)大數據技術概述 運行環境構建 運行模式
        0閱讀 0條評論 個贊
        文章目錄1Hadoop概述1.1Hadoop是什么1.2Hadoop優勢1.3Hadoop組成(面試重點)1.3.1HDFS架構概述1.3.2YARN架構概述1.3.3Map……
      • 強大的多云混合多K8S集群管理平臺Rancher入門級實戰
        0閱讀 0條評論 個贊
        目錄概述定義為何使用其他產品安裝簡述規劃基礎環境Docker安裝Rancher安裝創建用戶創建集群添加Node節點配置kubectl創建項目和名稱空間發布應用偏好設置概述定義Rancher官網htt……
      • SQL Server數據庫性能優化
        0閱讀 0條評論 個贊
        分析比較執行時間計劃讀取情況1.查看執行時間和cpusetstatisticstimeonselect*fromBus_DevHistoryDatasetstatisticstime……
      • 詳細解釋MySQL隔離級別
        0閱讀 0條評論 個贊
        一個事務具有ACID特性,也就是(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔離性、持久性),本文主要講解一下其中的Isolation,也……
      • 與docker卷一起安裝的注意事項
        0閱讀 0條評論 個贊
        目錄Content使用數據卷(volume)使用掛載點(共享宿主目錄,bindmount)目錄兼容性可移植性目錄替代相關指定位置--volume與--mount區別鏡像保存docker-compos……
      • Oracle服務器遷移的一些經驗
        3閱讀 0條評論 個贊
        前言通過此文章來分享一下Oracle服務器遷移過程中的一些經驗,希望對大家有些許幫助。本文旨在幫助更多的同學,會提及一些基本命令或技巧,但不贅述,后續有機會再進一步分享各個細節。背景之前因機房遷移……
      • Go語言知識|基本數據類型
        0閱讀 0條評論 個贊
        前言學習Go半年之后,我決定重新開始閱讀《TheGoProgramingLanguage》,對書中涉及重點進行全面講解,這是Go語言知識查漏補缺系列的文章第二篇,前一篇文章則對應書中一二兩章。我……
      • 數據庫發展史1-傳統數據庫
        0閱讀 0條評論 個贊
        1946年,美國賓夕法尼亞大學誕生了人類第一臺電子計算機--ENIAC(ElectronicNumericalIntegratorAndComputer,即電子數字積分計算機),這個占地170……
      • 在一本書中閱讀所有的Hive Sql(20 000字的最完整解釋)
        0閱讀 0條評論 個贊
        HiveSql大全本文基本涵蓋了Hive日常使用的所有SQL,因為SQL太多,所以將SQL進行了如下分類:一、DDL語句(數據定義語句):對數據庫的操作:包含創建、修改數據庫對數據表的操作:分……
      • 滲透攻擊和防御網絡-簡單的SQL注入
        0閱讀 0條評論 個贊
        1背景京東SRC(SecurityResponseCenter)收錄大量外部白帽子提交的sql注入漏洞,漏洞發生的原因多為sql語句拼接和Mybatis使用不當導致。2手工檢測2.1前置知識……
      最近發布資訊
      更多
      警花高潮嗷嗷叫
      <del id="nnjnj"></del><track id="nnjnj"></track>

      <p id="nnjnj"></p>

      <address id="nnjnj"></address>

        <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

          <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>