Operating System Installation
Prior to installation of Sybase, the Unix Server needs to be prepared for Sybase installation. This is a task that will be performed by the local Unix system administrator (and it should not be assumed that he/she will be familiar with all aspects of data server setup, i.e. preparing a Unix host as a data server). You need to check the Unix operating system (OS) level to be installed. You need to check the application and its corresponding data server to ensure that the package is certified with Sybase databases on Solaris 2.8 (most common Solaris level at this moment, I think), etc. and you have the correct Unix and kernel patches.
Shared memory settings
The shared memory value of the operating system needs to be adjusted, otherwise Sybase server cannot be created. On Solaris 2.8, which is a 64-bit OS, the maximum shared addressable memory is 7FFFFFFFFFFFFFFF in HEX. For a 32-bit OS, the maximum value that can be set is 4096 MB.
The maximum size of a single shared memory is set by the shmsys:shminfo_shmmax parameter in /etc/system. This depends on how much physical memory is available on the host. The upper limits on shmsys:shminfo_shmmax parameter are given below.
For a 32-bit OS this setting would be:
Set shmsys:shminfo_shmmax = (4096 x 1024 x 1024)-1 = 4294967295For a 64-bit OS:
Set shmsys:shminfo_shmmax = (available physical memory [in multiples of 1024MB] x 1024 x 1024)-1 = 4294967295999999For example, for a host with 8192 MB of physical memory running under a 64-bit OS this would be:
eqpgdbdev1:/apps/sybase/lon_epg_sql_dev2/data% prtconf | grep Mem Memory size: 8192 Megabytes eqpgdbdev1:/apps/sybase/lon_epg_sql_dev2/data% bc (8192*1024*1024)-1 8589934591 eqpgdbdev1:/apps/sybase/lon_epg_sql_dev2/data% cat /etc/system |grep shminfo_shmmax set shmsys:shminfo_shmmax=8589934591Note that the 32-bit Sybase cannot address more than 3.5-3.75 GB of memory per server in practice. That is to say the total memory of Sybase cannot be more than 3750 MB. For Sybase version 12 (64-bit), the maximum amount of shared memory that has been set so far is something around 150+ GB.
The shared memory segments parameter in /etc/system file may need to be adjusted. The default value is 6, which should be sufficient for most of our requirements. Otherwise if you are using multiple servers with large number of dump and load devices you may have to increase this.
Set shmsys:shminfo_shmseg = 50There should be a forceload of semaphores in /etc/system. An example is shown below:
forceload: sys/semsys forceload: sys/shmsys 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
As an additional data point, large applications such as Sybase tend to have processes with large virtual address spaces. This is typically the result of attaching to large shared memory segments used by Sybase and large copy-on-write (COW) segments that get mapped but sometimes never actually get touched. The net effect of this is that on this host supporting multiple Sybase servers, the virtual address space requirements will grow to be quite large, typically exceeding the physical memory size of 8 GB in this case. Consequently, we will require a fair amount of swap disk configured to support these multiple Sybase servers with large virtual address space running concurrently. As a result we will need to configure 1.5 or 2 times the amount of RAM for swap so Sybase processes can fully utilize all of the physical memory without running out of virtual swap space.
This was first published in November 2003