sql >> Databáze >  >> RDS >> PostgreSQL

Nastavení a použití pgmemcache

Předběžné načítání nebo ukládání tabulky do mezipaměti v PostgreSQL je obtížný úkol, protože PostgreSQL nenabízí správu paměti na jedné velké úrovni synchronizace. Všechny vzpomínky jsou nezávislé. Ukládání do mezipaměti je možné pomocí nástrojů třetích stran, jako je memcached.

pgmemcache je sada PostgreSQL uživatelsky definovaných funkcí (API), které poskytují rozhraní pro memcached. pgmemcache, předpoklady doporučují mít libmemcached, ale také se doporučuje nainstalovat spolu s ním memcached. Moje prezentace se skládá z instalace/ukládání do mezipaměti/monitorování pomocí rozhraní API pgmemcache. Protože nejsem vývojář nebo hacker :), můj způsob implementace je velmi jednoduchým způsobem.

Body:

  • Ukládá hodnotu do mezipaměti na základě klíče/hodnoty, doporučuje se uchovávat tabulku s primárním klíčem/jedinečným klíčem.
  • Žádná redundance dat – Pokud dojde k výpadku paměti memcached nebo dojde-li nedostatek místa, nové záznamy a aktualizace budou ztraceny.
  • Podporuje všechny příkazy uložené v memcached (set/get(single/multi)/delete/replace/incr/stats)
  • Po uložení dat do memcached a pokud tabulku z backendu zrušíte, memcached nevyvolá žádné chyby. Je to jen vaše správa, jak ji udržujete.
  • Není možné iterovat data nebo určit, které klíče byly uloženy.
  • Nikdy nemůžete vypnout server s memcached nebo přidat nový do fondu, zatímco lidé hrají nebo jsou připojeni.
  • Pokud se proces aktualizace na pozadí z nějakého důvodu zastaví, aktualizace neproběhnou a je možné, že se server s memcached zaplní.
  • Každý backend PostgreSQL se musí před přístupem k datům vázat na port memcached.
  • Memcached běží na výchozím portu 11211

Předpoklady:

  1. PostgreSQL 8.4. nebo výše
  2. libevent
  3. uloženo do mezipaměti
  4. libmemcached
  5. pgmemcache
  6. Monitorovací nástroje (monitorovací nástroje, damemtop atd.)

Instalace:
Krok 1. (libevent)

Libevent API je důležité při konfiguraci pgmemcache, preferuji mít knihovny jako první krok instalace. Začněme tedy konfigurací knihovny libevent ve výchozím umístění.

Odkaz ke stažení pro libevent:
http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz
tar -xvf libevent-2.0.12-stable .tar.gz
cd libevent-2.0.12-stable
./configure
make
make install

Krok 2 (uloženo do mezipaměti)

Nainstalujte memcached povolením libevent.

Odkaz ke stažení pro memcached:
http://memcached.googlecode.com/files/memcached-1.4.6.tar.gz
cd /usr/local/src/memcached-1.4.6
------na 32bitové verzi
export LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
./configure --prefix=/opt /PostgreSQL/9.0/bin/ --with-libevent=/usr/lib
------na 64bitové verzi
export LD_LIBRARY_PATH=/usr/lib64:/opt/PostgreSQL/9.0/ lib:$LD_LIBRARY_PATH
./configure --prefix=/opt/PostgreSQL/9.0/bin/ --with-libevent=/usr/lib64
provést
provést instalaci

Krok 3. (libmemcached)

pgmemcache je postaven nad libmemcached. Libmemcached hledá binární umístění memcache, takže před pokračováním nastavte cestu k binárním souborům memcached.

export PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
Odkaz ke stažení:
http://launchpad.net/libmemcached/1.0/0.50/+download/libmemcached-0.50.tar.gz
cd libmemcached-0.50
./configure
make
provést instalaci

Krok 4 (pgmemcache)

Pgmemcache API pomůže v interakci s memcached, jako je ukládání do mezipaměti/načítání dat.

Odkaz ke stažení:
http://pgfoundry.org/frs/download.php/3018/pgmemcache_2.0.6.tar.bz2
cd pgmemcache
PATH=/opt/PostgreSQL/ 9.0/bin:$PATH provést USE_PGXS=1 nainstalovat
nebo
provést
provést instalaci

Instalace vytvoří soubor pgmemcache.sql se všemi API pro interakci s memcache v umístění příspěvku PG. Chcete-li vytvořit rozhraní API pgmemcache, stačí spustit soubor pgmemcache.sql v celé databázi.

psql -p PGPORT -d PGDATABASE -f /opt/PostgreSQL/9.0/share/postgresql/contrib/pgmemcache.sql

Seznam rozhraní API pgmemcache:

Poznámka: Při spouštění souboru .sql se můžete setkat s chybou jako „ISTFATAL:nelze načíst knihovnu „/opt/PostgreSQL/9.0/lib/postgresql/pgmemcache.so“:libmemcached.so.8:nelze otevřít soubor sdíleného objektu:Žádný takový soubor nebo adresář". To znamená, že instance PG nebyla načtena s nově vytvořenou knihovnou. Rozlišení, nastavte PATH a LD_LIBRARY_PATH a restartujte instanci, aby byly rozpoznány knihovny.

Např.:-
export PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
$pg_ctl -D $PGDATA restart

Pokud chcete načíst pgmemcache jako výchozí do vaší instance PG, upravte soubor postgresql.conf a změňte následující parametry a restartujte cluster.

shared_preload_libraries='pgmemcache'
custom_variable_classes='pgmemcache'

Konfigurace:
Krok 1.

Pro ukládání dat do mezipaměti musíte nejprve inicializovat paměť, jakmile je paměť přidělena, později je PG backend zodpovědný za vazbu a vložení dat do mezipaměti. Zde jsem spustil svou memcache na localhost s 512 MB na výchozím portu 11211. -d znamená spuštění démona. Všechna moje cvičení jsou na localhost.

$./memcached -d -m 512 -u postgres -l localhost -p 11211

Poznámka:Chcete-li načíst data z mezipaměti, každý backend PostgreSQL by měl nejprve svázat a načíst data.

Krok 2.

Svažte instanci se spuštěným portem memcache. Po navázání zkontrolujte statistiku memcached.

Krok 3.

Nyní, je čas ukládat data do mezipaměti do memcached, Memcached používá klíče/hodnotu k uložení dat ve své paměti, takže se ujistěte, že vaše tabulka má primární/jedinečný klíč, aby bylo načítání snadné. Jak již bylo zmíněno, existují velmi dobrá API, která si můžete pohrát s udržováním hodnoty a přístupem k nim, v mém příkladu používám memcache_set() k zachování hodnoty a memcache_get() k načítání dat.

Jakmile je hodnota nastavena v memcached, nyní je vaší odpovědností svázat váš backend s memcached a pomocí rozhraní pgmemcache API můžete přistupovat k datům. Každý backend Postgres se musí před přístupem vázat. Níže naleznete příklad.

Získávání dat z mezipaměti

Monitorování

Pokud jste velmi dobří v linuxu, můžete získat maximum informací o paměti memcached, nicméně existuje několik nástrojů, které přicházejí spolu se zdrojovým balíčkem memcached, jako jsou monitorovací nástroje, damemtop atd. Používám nástroj Monitoring-tools pro monitorování memcache.

use:-
memcached-tool localhost display
memcached-tool localhost dump
memcached-tool localhost stats | grep bajtů

Příklad:

Malá snaha z mé strany nastavit pgmemcache a pochopit základy. Doufám, že to bylo užitečné. Posílejte své komentáře nebo návrhy, které si velmi vážíme.


  1. Jak vypočítat věk v MariaDB

  2. Jak najít název omezení v PostgreSQL

  3. Jak nasadit databázi Chamilo MySQL pro vysokou dostupnost

  4. přístup odepřen uživateli @ 'localhost' do databáze ''