Re: [HACKERS] posmaster failed under high load
От | Tatsuo Ishii |
---|---|
Тема | Re: [HACKERS] posmaster failed under high load |
Дата | |
Msg-id | 199905040505.OAA00448@ext16.sra.co.jp обсуждение исходный текст |
Ответ на | posmaster failed under high load (Oleg Bartunov <oleg@sai.msu.su>) |
Ответы |
Re: [HACKERS] posmaster failed under high load
|
Список | pgsql-hackers |
> Today I run http_load to do some benchmark of my Web-DB application > and found that under high load (it was about 18 postgres running ) postsmaster failed. > Restarting postmaster produces error: > > IpcMemoryCreate: shmget failed (Identifier removed) key=5432010, size=24588, permission=700 > IpcMemoryIdGet: shmget failed (Identifier removed) key=5432010, size=24588, permission=0 > IpcMemoryAttach: shmat failed (Invalid argument) id=-2 > FATAL 1: AttachSLockMemory: could not attach segment > > I checked shared memory: > 23:27[zeus]:~>ipcs -a > > ------ Shared Memory Segments -------- > shmid owner perms bytes nattch status > 10496 postgres 700 24588 5 dest > 10497 postgres 600 8852184 5 dest > 10498 postgres 600 96804 5 dest > > ------ Semaphore Arrays -------- > semid owner perms nsems status > > ------ Message Queues -------- > msqid owner perms used-bytes messages > > Does this error means I need to increase shared memory ? > My setup: Linux 2.0.36, Dual PPRO, 256 Mb RAM > Postgres 6.4.2 I don't think so unless you increased the shared buffer size using -B option. Stock 6.4.2 is very buggy with the shared memory usage. Probably it's the cause. Try Tom Lane's fix or 6.5b. I have tested 6.5b with 128 backends running and it seems very stable. Another possibility is you don't have enough file descriptors. What do you get by: $ cat /proc/sys/kernel/file-max 1024 or so is not enough. You could increase it by: echo 4096 > /proc/sys/kernel/file-max Decreasing the usage of file descriptors per backend is also a good idea. try: ulimit -n 20 before starting postmaster. --- Tatsuo Ishii
В списке pgsql-hackers по дате отправления: