Re: Shared memory error using initdb on Solaris 8
От | jseymour@LinxNet.com (Jim Seymour) |
---|---|
Тема | Re: Shared memory error using initdb on Solaris 8 |
Дата | |
Msg-id | 20040521155715.E15B0430E@jimsun.LinxNet.com обсуждение исходный текст |
Ответ на | Shared memory error using initdb on Solaris 8 ("Kevin Schroeder" <kschroeder@mirageworks.com>) |
Список | pgsql-admin |
> > Hello, > I'm trying to install PostgreSQL 7.4.2 on a brand new SunFire 120 with > 2GB of RAM but when I run initdb -D /usr/local/pgsql/data I get the > following error: > [snip] > creating template1 database in /usr/local/pgsql/data/base/1... FATAL: could > not create shared memory segment: Invalid argument > DETAIL: Failed system call was shmget(key=1, size=1081344, 03600). > HINT: This error usually means that PostgreSQL's request for a shared > memory segment exceeded your kernel's SHMMAX parameter. [snip] > > When I run ulimit -a I get > [snip] You're looking at the wrong thing. You need to do: sysdef |egrep -i 'shm|sem' > > There does not seem to be an option in initdb to reduce the shared buffers > size. It tries to reduce things as far as it "sanely" can to fit within what's available. You can hand-tweak initdb to over-ride its limits, but you'd end-up with a sub-optimal installation. > Plus, with 2GB of RAM I don't know that I'd want to go below the > "lowest common denominator" that Postgres defaults to. Nope. You need to adjust certain values by placing settings in /etc/system and rebooting. I use: /etc/system set shmsys:shminfo_shmmax=0x2000000 (33554432 decimal) set shmsys:shminfo_shmmin=1 set shmsys:shminfo_shmmni=256 set shmsys:shminfo_shmseg=256 set semsys:seminfo_semmap=256 set semsys:seminfo_semmni=512 set semsys:seminfo_semmns=512 set semsys:seminfo_semmsl=32 I arrived at the above values from Google'ing. Jim
В списке pgsql-admin по дате отправления: