The question.
>
> Started receiving the follow error from dump:
>
> get_semaphore(): semget() for slave_semid: No space left on device
> dump: SIGTERM received -- Try rewriting
> dump: Unexpected signal -- attempting to rewrite from last checkpoint
> dump: Cannot remove semaphores
> remove_semaphore(): semctl() for slave: Invalid argument
>
> Called CSC they had me check the available space on /tmp. At the time,
> there was ~6M free (/tmp was on /). Linked /tmp to /usr/tmp (~294M free)
> still getting the error.
>
> Tried doing a restore today and it yielded:
>
> bash# restore -ivf /dev/nrmt1h
> Verify tape and initialize maps
> Tape read error: No space left on device
> bash# df .
> Filesystem 1024-blocks Used Available Capacity Mounted on
> /dev/rz8c 1991325 1482638 309554 83% /usr/users
>
> Any advice?
>
I received two answers on this. First from a fellow sysadmin who stated
he saw the same thing until he made sure that the final device name in a
shell script of backups was to the rewind device (rstxx) instead of the
no-rewind (nrstxx) device. Didn't try it, so I don't know if it would
have made a difference.
Second response came from my call to CSC. What follows is the document
that was sent to me to make changes to the sysconfig file on my box.
Made the recommended changes and all is fine.
Thanks to all
Jim
>From sri_at_decatl.alf.dec.com Mon Dec 16 10:04:52 1996
Date: Thu, 12 Dec 1996 11:59:18 -0500
From: Sridhar Chirravuri <sri_at_decatl.alf.dec.com>
To: anderson_at_ocaxp1.cc.oberlin.edu
Subject: How to change/configure ipc and more
How to change the configurable parameters via sysconfigtab
==========================================================
1) To list what are the dynamically configurable sub-systems:
/sbin/sysconfig -s
The output might look like the following:
cm: loaded and configured
generic: loaded and configured
proc: loaded and configured
io: loaded and configured
vm: loaded and configured
vfs: loaded and configured
ufs: loaded and configured
advfs: loaded and configured
ipc: loaded and configured /** (shared memory, semaphore stuff!)
tty: loaded and configured
xpr: loaded and configured
rt: loaded and configured
lsm: loaded and configured
net: loaded and configured
dli: loaded and configured
lat: loaded and configured
bufcall: loaded and configured
kinfo: loaded and configured
strstd: loaded and configured
timod: loaded and configured
tirdwr: loaded and configured
xtiso: loaded and configured
dlb: loaded and configured
dlpi: loaded and configured
ldtty: loaded and configured
pts: loaded and configured
pckt: loaded and configured
knbtcp: loaded and configured
knbtcpd: loaded and configured
knbadm: loaded and configured
nbeadmin: loaded and configured
netbeuid: loaded and configured
netbeui: loaded and configured
2) To look at parameters of individual sub-systems:
/sbin/sysconfig -q sub-system-name
for example:
/sbin/sysconfig -q generic
clock-frequency = 1024
booted_kernel = vmunix
booted_args = vmunix
lockmode = 0
lockdebug = 0
locktimeout = 15
rt_preempt_opt = 0
rt-preempt-opt = 0
cpu_enable_mask = 5
cpu-enable-mask = 5
msgbuf_size = 4096
message-buffer-size = 4096
3) Now, how to change these parameters?
Edit the file "/etc/sysconfigtab" and put the parameters
you want to change under the section with the sub-system
to which that parameter belongs. For example if you want
to change the msgbuf_size from 4096 to 8192, you can put the
following line in the /etc/configtab file:
generic:
msgbuf_size = 8192
A second example:
If you want to change the ubc-maxpercent to 20 you would have
the following thing in the kernel:
vm:
ubc-maxpercent = 20
#{
# Example format of the /etc/sysconfitab file:
<sub-system-heading>:
<tab-space> <parameter> = <value>
<tab-space> <parameter> = <value>
<sub-system-heading>:
<tab-space> <parameter> = <value>
<tab-space> <parameter> = <value>
#}
4) Discussion:
Many subsystems would need a reboot to put these values into effect.
(Note that this procedure doesn't need a kernel re-build)
You might notice that some of these parameters such as "shm-max"
of the ipc subsystem has some correpondece to "shmmax" that is
be hard coded into the kernel via the /sys/conf/HOSTNAME file.
But configuring via sysconfigtab is getting more of a standard.
==============================================================================
NOTE-1:
A typical Oracle or informix database users generally realize
that they want to increase the shared-memory and/or semaphore
parameters. So, I am including a common subset of parameters which
users try to change.
# sysconfig -q ipc
msg-max = 8192
msg-mnb = 16384
msg-mni = 64
msg-tql = 40
shm-max = 67108864
shm-min = 1
shm-mni = 128
shm-seg = 32
sem-mni = 16
sem-msl = 25
sem-opm = 10
sem-ume = 10 (Number of semaphore undo structures)
sem-vmx = 32767
sem-aem = 16384
num-of-sems = 60 (semmns equivalant)
max-kernel-ports = 22487
port-hash-max-num = 1124350
port-reserved-max-num = 22487
set-max-num = 1029
Typically msg-mni can be between 128-256; shm-max can be
134217728; shm-mni would be 128-512; shm-seg would be 64-128;
and sem-mni would be 32-64.
Note that these parameter hold for for mid-size databases
which run on the systems with a typical virtual addresseable space of
(virtual addresseable space is approaximately equivalant to the sum
of physical memory and swap space on the system) 128MB-2Gig.
Also, please note that these guidelines are only, neither supplement
nor complement to what your database require/recommend. Have a nice
start. Please have a upper limit of about 2 Gigabites on system V
parameters memory sizes now.
Also, the real-time "rt" sub-system can be tuned for
kernel asynchronous i/o capabilities. (Used for raw disk I/O access)
NOTE-3:
You might need to increase some process limits in-order to
make available lot more memory for the processes by tuning the
"proc" sub-system of sysconfig utility. Typical values of choice would
be:
# sysconfig -q proc
max-proc-per-user = 256
max-threads-per-user = 32768
per-proc-stack-size = 2097152
max-per-proc-stack-size = 33554432
per-proc-data-size = 134217728
max-per-proc-data-size = 1073741824
max-per-proc-address-space = 1073741824
per-proc-address-space = 1073741824
NOTE-4:
You might need to incease maxusers parameter in your
kernel configuration file (/sys/conf/HOSTNAME) and re-build
the kernel (doconfig -c HOSTNAME) to increase the system
wide number of processes. This is particularly important if
you have lotta memory and lotta users/processes going on the
system. You can check it by:
# echo "p maxusers" | dbx -k /vmunix /dev/mem
(If you don't have enough maxusers values., you might see
a message that task/proc table full messages)
----
_______________________________________________________________________________
James C. Anderson PHONE: (216) 775-6929
Computer Systems Manager FAX: (216) 775-8573
Houck Computing Center Email: anderson_at_ocaxp1.cc.oberlin.edu
Oberlin College Home Page: http://www.oberlin.edu/~anderson/
Oberlin, OH 44074
_______________________________________________________________________________
Received on Mon Dec 16 1996 - 16:30:16 NZDT