SUMMARY : shmget failed

From: Muller, Esther (emr@wcomp.gov.za)
Date: Tue Apr 04 2000 - 03:57:10 CDT


Original Question:
=============

> We have a sun ultra enterprise 6000 running solaris 2.5.1 (patched).
>
> Since about a week ago one of the applications running on this server is
> giving the following errors:
>
> getparm/putparm: shmget failed(IPC_EXCL), No space left on device
> Cannot get shared memory segment for PRB, errno = 28
> UNIX SIGNAL RECEIVED: <6> SIGIOT/SIGABRT IOT instruction /
> used by abort, replace SIGIOT in the future
>
> I checked the swap space (swap -s)
> total: 1115744k bytes allocated + 297784k reserved = 1413528k used,
> 5670112k
> available
>
> None of the filesystems are full
>
> current /etc/system settings
>
> set maxusers=400
> set tune_t_flckrec=1024
>
> set shmsys:shminfo_shmmax=201326592
> set shmsys:shminfo_shmmin=8
> set shmsys:shminfo_shmseg=200
> set shmsys:shminfo_shmmni=200
>
> set semsys:seminfo_semmap=250
> set semsys:seminfo_semmni=500
> set semsys:seminfo_semmns=500
> set semsys:seminfo_semmsl=500
> set semsys:seminfo_semmnu=500
> set semsys:seminfo_semume=100
>
>
> I'm baffled by these errors. Can anyone tell me what I should
> check/change?
> Any response would be appreciated.
==========================================

Thanks to all those who replied. I haven't changed anything yet since I'm
waiting for the error to reoccur.

Almost everyone referred me to ipcs and ipcrm. As well as to adjusting
shmseg and shmni.

Replies:
======
Lisa Wallace (lisa.wallace@doniatel.com)

Do an ipcs which will show you all of your active shared memory segments.
Then I would suggest taking all of the applications and databases down that
are running and remove all of the shared memory segments with ipcrm.  Read
the manpage on ipcs and ipcrm.  Then you can restart everything fresh and it

will re-allocate the shared memory.  If this doesn't clean up the errors you

may have some bad code or not enough memory available.  You can run top
and it will show you what memory is available and being used or check some
of the sar output for the time period when the errors are being reported.

----------------------------------------------------------------------------
------------
Dieter Wurm (dieter.wurm@de.origin-it.com)

> the errormessage you got has nothing to do with disks or usable Ports.
> Your Trouble is that the Memory-Management does not have enough Devices to
> allow more Segments. This means allmost, that your
> /etc/system-configuration is
> quite bad configured.
> As you have listed your shmmax is big enoug, but not your shmseg and
> shmni.
> I would expect you to adjust these two Parameters to allow the
> memory-manager getting more segments...
>
----------------------------------------------------------------------------
------------
Micha Arndt (M.Arndt@science-computing.de)

Have a look and try to the Semaphore Controls ipcs and ipcrm
There you can show shared mem and semaphores
might be your Problem is not running out of mem
but running out of semaphores
most systems 10 -15
If a Process tends not to free used semaphores correct that number is
exhausted very fast.

----------------------------------------------------------------------------
------------
Jay Lessert (jayl@latticesemi.com)

Not familiar with this error in particular, but here's how to begin finding
out
what's going on in general:

% egrep 28 /usr/include/sys/errno.h
#define ENOSPC 28 /* No space left on device */

% man shmget
[clip, clip]
     ENOSPC A shared memory identifier is to be created
                    but the system-imposed limit on the maximum
                    number of allowed shared memory identifiers
                    system-wide would be exceeded.

Since you're already yanking on /etc/system, you probably have some
documentation, and you need to check there to find out how to increase
"the maximum number of allowed shared memory identifiers".



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:14:05 CDT