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表示端口的範圍,為指定的内容。