PostgreSQL緩衝詳述

來源:互聯網
上載者:User

目錄:

pg_buffercache
pgfincore
pg_prewarm
dstat
Linux ftools
使用pg_prewarm預先載入關係/索引:
pgfincore 輸出:
怎樣重新整理在作業系統緩衝中的關係/索引 ?
使用pg_prewarm的range功能預先載入隨機塊.

PostgreSQL 的詳細介紹:請點這裡
PostgreSQL 的:請點這裡

推薦閱讀:

Ubuntu下LAPP(Linux+Apache+PostgreSQL+PHP)環境的配置與安裝

緩衝…. !!, 它很難在一篇文章中解釋清楚。但是我會努力分享我從Heikki, Robert Haas, Bruce Momjian那裡學到的知識。在PostgreSQL裡有兩層:PG共用緩衝和作業系統頁面緩衝,任何讀寫都會通過作業系統緩衝(迄今為止還沒有其它途徑)。Postgres把資料寫在作業系統頁面緩衝,使用者覺得資料好像回寫到了磁碟,之後作業系統緩衝才會寫到對應的物理磁碟位置。PG共用緩衝無法控制系統頁面緩衝,甚至連繫統緩衝是什麼都不知道。所以,Postgres DBA或者專家給出的大多數建議都是更快的磁碟讀寫或者更好的緩衝。

PostgreSQL的緩衝/緩衝和其它資料庫十分相像並且十分複雜。因為我有Oracle和mindset背景,所以我使用怎麼樣/什麼時候/什麼/為什麼等提問方式,關於資料庫的緩衝緩衝,固定的緩衝,重新整理資料庫緩衝,以及預先載入資料庫等方面,我都是從這種方式獲得答案的,然而這種方式有點與眾不同。儘管我的問題很煩人,但是他們總是耐心的回答,使我明白擴充我的知識,反過來,你才能閱讀這篇博文…  ..

在一些學習上,我畫了一幅Postgres中資料在記憶體和磁碟之間傳遞的,以及一些重要的工具和Robert Hass提供的新補丁(pg_prewarm).


pg_buffercache
它是一個contrib模組,它會告訴你什麼是PostgreSQL緩衝。像下面安裝:

postgres=# CREATE EXTENSION pg_buffercache
pgfincore
它有一個顯示資料在作業系統頁面緩衝中資訊的功能。Pgfincore和pg_buffercache聯合會十分方便的。現在,它可以同時獲得PG緩衝和作業系統頁面緩衝資訊。感謝Cerdic Villemain。Pgfincore的主幹是fadvise,fincore,它倆是linux ftools。你可以使用源碼安裝fincore/fadvise。你可以使用pgfincore contrib模組或者ftools,都會產生同樣的結果。我試了兩者,它們都十分簡單優秀。

安裝:

下載最新版本:

http://pgfoundry.org/frs/download.php/3186/pgfincore-v1.1.1.tar.gz使用root使用者:

export PATH=/usr/local/pgsql91/bin:$PATH    //設定執行pg_config的路徑
tar -xvf pgfincore-v1.1.1.tar.gz
cd pgfincore-1.1.1
make clean
make
make install現在串連到PG,運行下面的命令:

postgres=# CREATE EXTENSION pgfincore;
pg_prewarm
預先載入關係/索引到PG緩衝中,在PostgreSQL中可能嗎?當然可以了,感謝Robert Hass,他提交一些補丁到社區,期待它能夠在PG 9.2或者PG 9.3中可行。然而,你可以使用這個補丁在PG 9.1做一些測試。
pg_prewarm
有三種模式:

PREFETCH: 非同步擷取資料區塊到作業系統緩衝中,而不是PG緩衝(提示只是作業系統緩衝)
READ:讀取所有的資料區塊到虛擬緩衝中,然後寫到作業系統緩衝中(提示只是作業系統緩衝)
BUFFER:讀取所有的或者一些資料區塊到資料庫緩衝中。
安裝:

我把pg_prewarm補丁加入到PG源碼安裝中,你需要調整你的每步安裝。

解壓PG源碼路徑: /usr/local/src/postgresql-9.1.3
PG安裝路徑: /usr/local/pgsql91
所有下載路徑: /usr/local/src

注意:應用pg_prewarm補丁之前安裝PG

1. 下載補丁,放在/usr/local/src

 

http://archives.postgresql.org/pgsql-hackers/2012-03/binRVNreQMnK4.bin

補丁附加郵件地址


http://archives.postgresql.org/message-id/CA+TgmobRrRxCO+t6gcQrw_dJw+Uf9ZEdwf9beJnu+RB5TEBjEw@mail.gmail.com

2. 在下載之後,到PG源碼目錄,然後執行下面幾步。

# cd /usr/local/src/postgresql-9.1.3
# patch -p1 < ../pg_prewarm.bin        (在下載之後我重新命名了pg_prewarm)
# make -C contrib/pg_prewarm
# make -C contrib/pg_prewarm instal3. 上面的命令會在$PGPATH/contrib/extension目錄裡建立檔案。現在準備添加contrib模組了。

postgres=# create EXTENSION pg_prewarm;
CREATE EXTENSION
postgres=# \dx
                          List of installed extensions
      Name      | Version |  Schema  |              Description
----------------+---------+------------+----------------------------------------
 pg_buffercache | 1.0    | public    | examine the shared buffer cache
 pg_prewarm    | 1.0    | public    | prewarm relation data
 pgfincore      | 1.1.1  | public    | examine and manage the os buffer cache
 plpgsql        | 1.0    | pg_catalog | PL/pgSQL procedural language
(4 rows)文檔:

/usr/local/src/postgres-9.1.3/doc/src/sqml
[root@localhost sgml]# ll pgpre*
-rw-r--r-- 1 root root 2481 Apr 10 10:15 pgprewarm.sgml
dstat
它是vmstat, netstat, top等工具的組合到一起成了一個”dstat”linux命令。當資料庫表現不正常時,從作業系統層級瞭解語句,我們會開啟好幾個終端來顯示進程,記憶體,磁碟讀寫,網路資訊,但是在這些視窗切換是十分痛苦的。所以,dstat有幾個選項來協助顯示所有的命令在一個輸出視窗中。

安裝:
Dstat下載串連:(RHEL 6)


wget http://pkgs.repoforge.org/dstat/dstat-0.7.2-1.el6.rfx.noarch.rpm或者

yum install dstat文檔:http://dag.wieers.com/home-made/dstat/

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.