jak limitowac postgresql?
Norbert - 01-01-2007 00:25
jak limitowac postgresql?
Witam Grupę w Nowym Roku :-)
Mam następujący problem. Jest sobie serwer - debian sarge, na nim postgresql 7.4 W tym postgresie kilka (na razie), a później może i kilkadziesiąt baz.
Chciałbym doprowadzić do sytuacji w której jedno zapytanie/polecenie nie spowoduje mi zawieszenia systemu poprzez 100% utylizację procesora przez np. 5 minut. Tak więc chciałbym przyciąć takie zapytanie po np. 3 minutach.
Trochę czytałem i nasunęła mi się myśl że może mi ulimit pomoże, ale się nie udało (choć może źle testowałem).
/etc/security/limits.conf: postgres hard cpu 3
Jako ze nie mam skryptu ktory sie bedzie przetwarzal przez 3 minuty postanowilem odpalic pgdumpa na w miare duzej bazie. Mielil przez ponad 4 minuty (pozniej go skilowalem), top pokazywal dzialajacego postgresa .... wniosek - nie zadzialalo.
No ale moze to kwestia pg_dumpa ... ale innego pomyslu nie mam.
Jesli macie jakies pomysly bede wdzieczny za podpowiedzi :-)
Z gory dzieki
Pozdrawiam
Norbert
Paweł Matejski - 02-01-2007 01:26
Norbert wrote: > Witam Grupę w Nowym Roku :-) > > Mam następujący problem. > Jest sobie serwer - debian sarge, na nim postgresql 7.4 > W tym postgresie kilka (na razie), a później może i kilkadziesiąt baz. > > Chciałbym doprowadzić do sytuacji w której jedno zapytanie/polecenie nie > spowoduje mi zawieszenia systemu poprzez 100% utylizację procesora przez np. > 5 minut. Tak więc chciałbym przyciąć takie zapytanie po np. 3 minutach.
Ech... Jak proces zużywa 100% czasu procesora, to znaczy, że procesor nie ma nic lepszego do roboty. Inaczej mówiąc, jedno połączenie nie może zabrać wszystkich zasobów!
> Trochę czytałem i nasunęła mi się myśl że może mi ulimit pomoże, ale się nie > udało (choć może źle testowałem). > > /etc/security/limits.conf: > postgres hard cpu 3 > > Jako ze nie mam skryptu ktory sie bedzie przetwarzal przez 3 minuty > postanowilem odpalic pgdumpa na w miare duzej bazie. > Mielil przez ponad 4 minuty (pozniej go skilowalem), top pokazywal > dzialajacego postgresa .... wniosek - nie zadzialalo.
A pokazywał ile czasu procesora zużył po tych 4 minutach?
> No ale moze to kwestia pg_dumpa ... ale innego pomyslu nie mam.
No bo to jest głównie przerzucanie danych - procesy czekają głównie na dysk. Zrób sobie cross joina kilku dużych tabel i obserwuj czas zużycia procesora.
No ale to i tak nie jest dobry pomysł, bo nie ogranicza jednego zapytania, a czas procesora poświęconego na jedno połączenie. Do tego ogranicza też inne procesy postgresa....
> Jesli macie jakies pomysly bede wdzieczny za podpowiedzi :-)
a) olać b) krótki rzut oka na config i można zobaczyć: #statement_timeout = 0 c) włączyć stats_start_collector = true (chyba), i napisać skrypt, co co jakiś czas będzie zerkał w tabelkę pg_stat_activity i na tej podstawie kilował złe procesy
-- P.M.
Herakles - 03-01-2007 00:23
"Norbert" <norbertn_at_post.pl.i.dont.like.sp_a_m> wrote:
> Witam Grupę w Nowym Roku :-) > > Mam następujący problem. > Jest sobie serwer - debian sarge, na nim postgresql 7.4 > W tym postgresie kilka (na razie), a później może i kilkadziesiąt baz. > > Chciałbym doprowadzić do sytuacji w której jedno zapytanie/polecenie nie > spowoduje mi zawieszenia systemu poprzez 100% utylizację procesora przez > np. 5 minut. Tak więc chciałbym przyciąć takie zapytanie po np. 3 > minutach.
Zapuść 5 pg_dumpów na raz! jeżeli planujesz wcisnąć kilkadziesiąt bazek do sera, to polecałbym Ci zmienić bazkę na jakąś wyższą wersję niż 7.4, bo prędzej czy później będziesz potrzebował wyższych wersji, a jak masz kilka baz to taki apgrejd jest o wiele mniej stresujący niż kilkudziesięciu. wyższe wersje postgresa znajdziesz w paczkach na backports.org. Robisz po prostu apt-get -t sarge-backports postgresql-8.1* Możesz też zawsze pokompilować, aby w pełni wgrać postgresa musisz dokompilować do systemu też nowsze wersje readline i zliba.
> > Trochę czytałem i nasunęła mi się myśl że może mi ulimit pomoże, ale się > nie udało (choć może źle testowałem). > > /etc/security/limits.conf: > postgres hard cpu 3 > > Jako ze nie mam skryptu ktory sie bedzie przetwarzal przez 3 minuty > postanowilem odpalic pgdumpa na w miare duzej bazie. > Mielil przez ponad 4 minuty (pozniej go skilowalem), top pokazywal > dzialajacego postgresa .... wniosek - nie zadzialalo. > > No ale moze to kwestia pg_dumpa ... ale innego pomyslu nie mam. > > Jesli macie jakies pomysly bede wdzieczny za podpowiedzi :-) > > Z gory dzieki > > Pozdrawiam > > Norbert
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?=
postgresql - int/int
postgresql Select count(*) czy raczej Select count(ID)
[PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?=
[postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?=
[postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?=
[PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?=
Postgres - replikcja master-master
Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL]
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
zanotowane.pldoc.pisz.plpdf.pisz.plwawa19wwa91.pev.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|