Thread: Postgres not using shared memory
Hi, I can't seem to get postgresql to use shared memory and performance is terrrible. PostgreSQL 7.4.6 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-42) $ uname -a Linux artsdata 2.4.21-20.0.1.ELsmp #1 SMP Wed Nov 24 20:34:01 EST 2004 i686 i686 i386 GNU/Linux $ free total used free shared buffers cached Mem: 2055336 1614408 440928 0 4240 1488104 -/+ buffers/cache: 122064 1933272 Swap: 2096440 1216 2095224 $ /sbin/sysctl -a | grep shm ... kernel.shmall = 1073741823 kernel.shmmax = 1073741823 (I had both above 1 larger, and tried cutting it down by one out of endpoint paranoia. That should be 1GB.) postgresql.conf: #shared_buffers = 126976 # 1GB - 32MB (just to leave some below kernel limit) shared_buffers = 6000 # testing to get _some_ shared memory => select * from pg_settings where name = 'shared_buffers'; name | setting | context | vartype | source | min_val | max_val ----------------+---------+------------+---------+--------------------+---------+------------ shared_buffers | 6000 | postmaster | integer | configuration file | 16 | 2147483647 (1 row) I've see my setting in pg_settings all along, but free never shows me any shared memory used. I've tried shutting down all the other daemons and restarting postgresql and nothing changes. What am I doing wrong here? Thanks. Karl <kop@meme.com> Free Software: "You don't pay back, you pay forward." -- Robert A. Heinlein
"Karl O. Pinc" <kop@meme.com> writes: > Hi, > > I can't seem to get postgresql to use shared memory and performance is > terrrible. 1) Linux doesn't track shared pages (which is not the same as shared memory) anymore--the field the in 'free' output is just there to avoid breaking software. Use the 'ipcs' command to list shared memory segments--you'll find Postgres is using what you told it to (otherwise it woudn't start up at all). 2) The -performance list is a good place to find out why queries are running slowly. -Doug
Karl O. Pinc wrote: > Hi, > > I can't seem to get postgresql to use shared memory and performance is > terrrible. > > PostgreSQL 7.4.6 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) > 3.2.3 20030502 (Red Hat Linux 3.2.3-42) > > $ uname -a > Linux artsdata 2.4.21-20.0.1.ELsmp #1 SMP Wed Nov 24 20:34:01 EST 2004 > i686 i686 i386 GNU/Linux > > $ free > total used free shared buffers cached > Mem: 2055336 1614408 440928 0 4240 1488104 > -/+ buffers/cache: 122064 1933272 > Swap: 2096440 1216 2095224 > > $ /sbin/sysctl -a | grep shm > ... > kernel.shmall = 1073741823 > kernel.shmmax = 1073741823 free will not correctly show shared memory usage if you are allocating more than 512 megs (I think). I don't recall the exact amount but this is a limitation of free. What type of hard drives do you have? What does a sar 1 or iostat report? Sincerely, Joshua D. Drake > (I had both above 1 larger, and tried cutting it down by one out of > endpoint paranoia. That should be 1GB.) > > postgresql.conf: > #shared_buffers = 126976 # 1GB - 32MB (just to leave some > below kernel limit) > shared_buffers = 6000 # testing to get _some_ shared memory > > => select * from pg_settings where name = 'shared_buffers'; > name | setting | context | vartype | source > | min_val | max_val > ----------------+---------+------------+---------+--------------------+---------+------------ > > shared_buffers | 6000 | postmaster | integer | configuration file > | 16 | 2147483647 > (1 row) > > I've see my setting in pg_settings all along, but free never shows me > any shared > memory used. > > I've tried shutting down all the other daemons and restarting > postgresql and nothing > changes. > > What am I doing wrong here? > > Thanks. > > Karl <kop@meme.com> > Free Software: "You don't pay back, you pay forward." > -- Robert A. Heinlein > > ---------------------------(end of broadcast)--------------------------- > TIP 9: the planner will ignore your desire to choose an index scan if > your > joining column's datatypes do not match -- Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC Postgresql support, programming shared hosting and dedicated hosting. +1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com PostgreSQL Replicator -- production quality replication for PostgreSQL
Attachment
On Wed, Dec 08, 2004 at 05:53:51PM -0600, Karl O. Pinc wrote: > Hi, > > I can't seem to get postgresql to use shared memory and performance is > terrrible. The shared column in free doesn't represent the amount of SysV shared memory used. If the system can't allocate the amount you ask it'll tell you. Running ipcs as root will show you the segment. Perhaps you should tell us what the actual problem is... -- Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/ > Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a > tool for doing 5% of the work and then sitting around waiting for someone > else to do the other 95% so you can sue them.
Attachment
On 2004.12.10 15:30 Doug McNaught wrote: > "Karl O. Pinc" <kop@meme.com> writes: > > > Hi, > > > > I can't seem to get postgresql to use shared memory and performance > is > > terrrible. > > 1) Linux doesn't track shared pages (which is not the same as shared > memory) anymore--the field the in 'free' output is just there to > avoid breaking software. Use the 'ipcs' command to list shared > memory segments--you'll find Postgres is using what you told it to > (otherwise it woudn't start up at all). > 2) The -performance list is a good place to find out why queries are > running slowly. Thank you all for your replies and your help. I found out hours after sending the original post that Linux does not report shared memory in 'free', and for some reason the first time I tried 'ipcs' (before I posted) I must have done something wrong because I wasn't seeing it there either. Moments after I posted the network crashed, and hilarity ensued. It's taken me until now to get back to everybody, and determine that my problems are not postgresql related. Thanks again for the help and sorry for the delay in my response. Karl <kop@meme.com> Free Software: "You don't pay back, you pay forward." -- Robert A. Heinlein