Обсуждение: TSearch2 memory usage
We have a fixed amount of 16 PG backend processes. Once created they stay forever. OLTP load is distributed over them in a SQF fashion. As loading a TSearch dictionary takes a few moments, we have a script that connects to each backend on start up and pushes the dictionary into ram by simply calling ts_debug('foo'); The dictionary has a file size of 9.8MB. If we don't call the script `free' prints: total used free shared buffers cached Mem: 4048056 953192 3094864 0 4 359300 -/+ buffers/cache: 593888 3454168 After the script has called ts_debug('foo') on each backend: total used free shared buffers cached Mem: 4048056 2374508 1673548 0 4 370340 -/+ buffers/cache: 2004164 2043892 Is it supposed to blast so much memory? This is PG 8.2.4 on x86_64. -- Regards, Hannes Dorbath -- Regards, Hannes Dorbath
On Mon, 21 May 2007, Hannes Dorbath wrote: > We have a fixed amount of 16 PG backend processes. Once created they stay > forever. OLTP load is distributed over them in a SQF fashion. > > As loading a TSearch dictionary takes a few moments, we have a script that > connects to each backend on start up and pushes the dictionary into ram by > simply calling ts_debug('foo'); > > The dictionary has a file size of 9.8MB. > > If we don't call the script `free' prints: > > total used free shared buffers cached > Mem: 4048056 953192 3094864 0 4 359300 > -/+ buffers/cache: 593888 3454168 > > After the script has called ts_debug('foo') on each backend: > > total used free shared buffers cached > Mem: 4048056 2374508 1673548 0 4 370340 > -/+ buffers/cache: 2004164 2043892 > > > Is it supposed to blast so much memory? dictionary is just a program ! Are you usin custom dictionaries ? what does 'select * from ts_debug('foo');' prints ? > > This is PG 8.2.4 on x86_64. > > > Regards, Oleg _____________________________________________________________ Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru), Sternberg Astronomical Institute, Moscow University, Russia Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(495)939-16-83, +007(495)939-23-83
On 21.05.2007 11:42, Oleg Bartunov wrote: > dictionary is just a program ! Are you usin custom dictionaries ? Depends on what you mean, it's a standard ispell dict, defined as: DictFile="/foo/bar/german_utf8.dict",AffFile="/foo/bar/german_utf8.aff" You can grab both files here: http://falcon.imos.net/dict.bz2 IIRC I have created them from an older, german OO dict, iconv'd them to UTF-8 and run compound.pl on them. The compound stuff stopped to function on 8.2 and as I couldn't find a solution I stripped the compound z line from the affix file. > what does 'select * from ts_debug('foo');' prints ? ts_name | tok_type | description | token | dict_name | tsvector -------------+----------+-------------+-------+----------------+---------- utf8_german | lword | Latin word | foo | {de_ispell,de} | 'foo' Thanks for your time. -- Regards, Hannes Dorbath