Name |
Description |
Reasonable Values |
SHMMAX |
Maximum size of shared memory segment (bytes) |
250kB + 8.2kB * shared_buffers + 14.2kB * max_connections or infinity |
SHMMIN |
Minimum size of shared memory segment (bytes) |
1 |
SHMALL |
Total amount of shared memory available (bytes or pages) |
if bytes, same as SHMMAX; if pages, ceil(SHMMAX/PAGE_SIZE) |
SHMSEG |
Maximum number of shared memory segments per process |
only 1 segment is needed, but the default is much higher |
SHMMNI |
Maximum number of shared memory segments system-wide |
like SHMSEG plus room for other applications |
SEMMNI |
Maximum number of semaphore identifiers (that is, sets) |
>= ceil(max_connections / 16) |
SEMMNS |
Maximum number of semaphores system-wide |
ceil(max_connections / 16) * 17 + room for other applications |
SEMMSL |
Maximum number of semaphores per set |
>= 17 |
SEMMAP |
Number of entries in semaphore map |
see text |
SEMVMX |
Maximum value of semaphore |
>= 255 (The default is often 32767, do not change unless asked to.) |
於是在linux上安裝oracle時配置的這三個參數的意義就很清楚了。比如:
kernel.shmall = 2097152 ------可用共用記憶體的總量,單位頁,在32位系統上一頁=4k,也就是4096位元組。按照這個設定2097152*4k/1024/1024 = 8G, 就是說可用共用記憶體一共 8G
kernel.shmmax = 2147483648-----單個共用記憶體段的最大數,2147483648/1024/1024=2048M=2G
kernel.shmmni = 4096 -------單個共用記憶體段的最小值1096b=4k
kernel.shmmax = 268435456
kernel.shmmni=4096
kernel.shmall=2097152
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
修改/etc/sysctl.conf檔案。其中的幾個參數的含義是:
kernel.shmmax表示最大共用記憶體,如果小的話可以按實際情況而定,一般為實體記憶體的一半,不過我的虛擬機器只有256M,所以就全部算進去了。
shmmni表示最小共用記憶體固定4096KB
shmall表示所有記憶體大小
sem 4個參數依次是SEMMSL:每個使用者擁有訊號量最大數,SEMMNS:系統訊號量最大數,SEMOPM:每次semopm系統叫用作業數,SEMMNI:系統辛苦量集數最大數。這4個參數為固定內容大小。
file-max固定大小65536
ip_local_port_range表示連接埠的範圍,為指定的內容。