6
Troubleshooting
This section handles a number of trouble shooting issues, which can cause
problems with a correct functioning of Globule and instructions on how to
overcome obstables in some cases.
6.1 Compatibility with other Apache modules and settings
In general, Globule is well-behaved and follows the Apache interface. However,
some modules or configurations can clash. Most incompatibilities with other
modules and settings emerge because the same environment as the origin server
cannot be emulated on the replica host. This section surveys a number of them.
6.1.1 Modules that won't work
The usage of the following modules will not work when the modules are active
on the web-site being replicates. This means that the modules can be used
within the same server that runs Globule, just not on a web-site that is
Globule replicated:
-
mod_var
-
Also known as type maps. Since this module can be compiled in, you might want
to make sure the module simply isn't active. Type maps are made active with
the line:
AddHandler type-map var
Type maps cannot be supported by Globule, because replica servers cannot
determine beforehand which alternatives are available in the type map.
- mod_rewrite
-
URLs rewriting is unsafe, and can the rewriting cannot interact well with
redirection at this moment for the
6.1.2 Constructions that won't work
The following Directives and constructions will not operate well with Globule.
-
Usage of ``DirectorySlash Off''
-
By default, the Apache configuration has set the DirectorySlash option to
true, turning it off will break DNS redirection to URLs inadvertently not
ending with a slash, but which actually is a directory index.
6.2 System resource usage
In Linux, if Apache/Globule crashes, it sometimes does not deallocate the
semaphores used for process synchronization. Restarting the server may then
fail because it cannot allocate sufficient semaphores. You can cleanup all
semaphores using:
ipcrm `ipcs -s | awk '(int($2)>0){print"-s",$2}'`
Use with care, especially when running as root as this will release all
semaphores, also ones still in use by other programs (X windows amongst
others).
6.2.1
Allow high quantities of shared memory in your operating system
Your operating system must be configured to support the amount of shared
memory specified in directive GlobuleMemSize. You can check
and set this as follows:
Linux:
-
Multiply the values returned by the following two commands:
cat /proc/sys/kernel/shmmax
cat /proc/sys/kernel/shmmni
Alternatively, if you have Perl installed, you can run:
echo print `cat /proc/sys/kernel/shmmax` \* `cat /proc/sys/kernel/shmmni` | perl
- The result (in bytes) should be larger than the amount you want
Globule to allocate. If not, you can adjust them as follows:
echo 33554432 > /proc/sys/kernel/shmmax
echo 4096 > /proc/sys/kernel/shmmni
when logged in as root.
Solaris:
-
Run:
sysdef -i
- Multiply the values listed for ``max shared memory segment size
(SHMMAX)'' and ``shared memory identifiers (SHMMNI)''.
- The result (in bytes) should be larger than the amount you want
Globule to allocate.
- If not, you can adjust them by editing /etc/system as root:
set shmsys:shminfo_shmmax=33554432
set shmsys:shminfo_shmmni=4096
set shmsys:shminfo_shmseg=200
6.2.2
Allow large numbers of locks in your operating system
Your operating system must be configured to support the number of locks
specified in directive GlobuleLockCount. You can check and set
this as follows:
Linux:
-
Run this command:
ipcs -l
- Under the heading ``Semaphore Limits'' there is the value ``max number
of arrays'', which corresponds to the maximum number of (global) mutexes
Globule can allocate.
Solaris:
-
Run this command:
sysdef -i
- Under the heading ``IPC Semaphores'' there is the value ``semaphore
identifiers (SEMMNI)'', which corresponds to the maximum number of
(global) mutexes Globule can allocate.
globule@globule.org
February 27, 2006
|