Erinevus lehekülje "PgBouncer" redaktsioonide vahel
(→Tööpõhimõte) |
(→Tööpõhimõte) |
||
5. rida: | 5. rida: | ||
===Tööpõhimõte=== | ===Tööpõhimõte=== | ||
− | PgBounceri kasutamise kasu tuleneb sellest, et andmebaasi kliendid teevad suhteliselt palju ühendumisi PgBounceri vastu, kuid PgBouncer teeb ühendumisi andmebaasi enda külge suhteliselt vähe | + | PgBounceri kasutamise kasu tuleneb sellest, et andmebaasi kliendid teevad suhteliselt palju ühendumisi PgBounceri vastu, kuid PgBouncer teeb ühendumisi andmebaasi enda külge suhteliselt vähe, klientide jaoks kasutatakse olemasolevaid ühendusi. Osutub, et andmebaasiga ühenduse tegemine on arvestatava hinnaga tegevus ja selle pealt on mõtet kokku hoida, nt ühel juhtumil muutus veebirakenduse http päringule vastuse saamine ca 2.5 korda kiiremaks. |
PgBouncer kasutab kolme erinevat poolingut | PgBouncer kasutab kolme erinevat poolingut |
Redaktsioon: 13. aprill 2010, kell 17:22
Sisukord
Sissejuhatus
PgBouncer https://developer.skype.com/SkypeGarage/DbProjects/PgBouncer on andmebaasiühenduste pooler.
Tööpõhimõte
PgBounceri kasutamise kasu tuleneb sellest, et andmebaasi kliendid teevad suhteliselt palju ühendumisi PgBounceri vastu, kuid PgBouncer teeb ühendumisi andmebaasi enda külge suhteliselt vähe, klientide jaoks kasutatakse olemasolevaid ühendusi. Osutub, et andmebaasiga ühenduse tegemine on arvestatava hinnaga tegevus ja selle pealt on mõtet kokku hoida, nt ühel juhtumil muutus veebirakenduse http päringule vastuse saamine ca 2.5 korda kiiremaks.
PgBouncer kasutab kolme erinevat poolingut
- Session pooling - soovitatakse üldiselt kasutada
- Transaction pooling
- Statement pooling
Ettevalmistused
PgBounceri kasutamine eeldab libevent teegi olemasolu süsteemis. Otseselt on vaja sellega tegeleda, kui otsustatakse PgBouncer süsteemi paigaldada lähtetekstist.
Paigaldamine
Debian Squeeze
Tarkvara paigaldamiseks Debian Squeeze keskkonnas sobib öelda
# apt-get install pgbouncer
Paigaldatakse muu seas sellised failid
/usr/sbin/pgbouncer /etc/default/pgbouncer /etc/pgbouncer/pgbouncer.ini /etc/pgbouncer/userlist.txt /etc/init.d/pgbouncer
Debian Lenny
Tarkvara tuleb Debian Lenny keskkonnas kompileerida lähtetekstis, kusjuures süsteemis peab olema muu nö kompileerimiseks vajaliku hulgas ka pakett libevent-dev
# apt-get install libevent-dev # ./configure --prefix=/usr/local/pgbouncer # make # make install
Paigaldatakse failid kataloogi /usr/local/pgbouncer, /etc alla midagi ei teki, st kasutaja peab ise tekitama käivitusskriptid.
Seadistamine ja käivitamine
Debian Squeeze
Tarvara tööd kontrollivad seadistusfailid
- /etc/pgbouncer/pgbouncer.ini, mille sisu võiks olla nt
# egrep -v "^$|^;" /etc/pgbouncer/pgbouncer.ini [databases] test = host=127.0.0.1 dbname=test [pgbouncer] logfile = /var/log/postgresql/pgbouncer.log pidfile = /var/run/postgresql/pgbouncer.pid listen_addr = * listen_port = 6432 unix_socket_dir = /var/run/postgresql auth_type = trust auth_file = /etc/pgbouncer/userlist.txt admin_users = postgres stats_users = postgres pool_mode = session server_reset_query = server_check_query = select 1 server_check_delay = 10 max_client_conn = 100 default_pool_size = 20 log_connections = 1 log_disconnections = 1 log_pooler_errors = 1
- /etc/pgbouncer/userlist.txt sisaldab nt
"postgres" "parool"
Käivitamiseks peab olema failis /etc/default/pgbouncer rida
START=1
ja tuleb öelda
# /etc/init.d/pgbouncer start
Töötab üks protsess
$ ps aux | grep pgbouncer | grep -v grep postgres 8730 0.0 0.2 17108 1016 ? S 11:46 0:00 /usr/sbin/pgbouncer -d /etc/pgbouncer/pgbouncer.ini
Debian Lenny
- Lisada süsteemi kasutaja:grupp pgbouncer:pgbouncer
- tekitada kataloogid /var/log/pgbouncer ja /var/run/pgbouncer
- Kasutada seadistusfailis
logfile = /var/log/pgbouncer/pgbouncer.log pidfile = /var/run/pgbouncer/pgbouncer.pid
- Kasutada nt sellist kävitusskripti
TODO
Kasutamine
PgBouceri kasutamiseks tuleb ühenduda PgBounceri porti, nt 192.168.10.205:6432 ja kasutada seda nagu tavalist andmebaasi.
Haldamine
PgBounceri haldamiseks sobib kasutada andmebaasi pgbouncer, nt
$ psql -h 127.0.0.1 -p 6432 -U postgres pgbouncer -c 'show databases;' name | host | port | database | force_user | pool_size | reserve_pool -----------+-----------+------+-----------+------------+-----------+-------------- pgbouncer | | 6432 | pgbouncer | pgbouncer | 2 | 0 test | 127.0.0.1 | 5432 | test | | 20 | 0
(2 rows)