During the operation, the Oracle Runtime CPU utilization reached more than 90%, and the following parameter values were adjusted to return to normal.
Fs.file-max = 65536
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
When installing Oracle, you need to adjust the kernel parameters of Linux, but what do the parameters mean?
Minimum values given in the Linux installation documentation:
FS.AIO-MAX-NR = 1048576
Fs.file-max = 6815744
Kernel.shmall = 2097152
Kernel.shmmax = 4294967295
Kernel.shmmni = 4096
Kernel.sem = 250 32000 100 128
Net.ipv4.ip_local_port_range = 9000 65500
Net.core.rmem_default = 262144
Net.core.rmem_max = 4194304
Net.core.wmem_default = 262144
Net.core.wmem_max = 1048586
Each parameter is detailed:
Kernel.shmmax :
is one of the most important parameters in the core parameter that defines the maximum value for a single shared memory segment. Settings should be large enough to accommodate the entire SGA under a shared memory segment, too low a setting may result in the need to create multiple shared memory segments, which can result in degraded system performance. As for the main cause of the system degradation is the start of the instance and serverprocess creation, a number of small shared memory segments may result in a slight decrease in system performance at that time (when starting to create multiple virtual address segments, when the process is created to allow the process to "identify" multiple segments, will have some impact), but no other time will be affected.
Official Recommended values:
32-bit Linux system: The maximum value is 4GB (4294967296bytes) -1byte, or 4294967295. The recommended value is more than half of the memory, so if 32 is the system, it is generally desirable to have a value of 4294967295. The 32-bit system has a limit on the SGA size, so the SGA can certainly be included in a single shared memory segment.
64-bit Linux system: the desired maximum value is the physical memory value -1byte, the recommended value is more than half of physical memory, the general value is greater than sga_max_size, you can take physical memory -1byte. For example, if you are 12GB of physical memory, the desirable 12*1024*1024*1024-1=12884901887,SGA will certainly be included in a single shared memory segment.
Kernel.shmall :
This parameter controls the total number of pages of shared memory that can be used. The size of the Linux Shared memory page is 4KB, and the size of the shared memory segment is an integer multiple of the shared memory page size. The maximum size of a shared memory segment is 16G, then the number of shared memory pages is 16gb/4kb=16777216kb/4kb=4194304 (page), which is 64Bit system 16GB physical memory, set Kernel.shmall = 4194304 to meet the requirements (almost twice times the original setting 2097152). At this time can adjust the Shmmax parameter to 16G, while you can modify the Sga_max_size and Sga_target 12G (you want to set the maximum size of the SGA, of course, it can be 2g~14g, but also to coordinate the PGA parameters and the OS and other memory use, can not be set too full, such as 16G)
Kernel.shmmni :
This parameter is the maximum number of shared memory segments. Shmmni the default value of 4096, it is generally sufficient.
Fs.file-max :
This parameter determines the maximum number of file handles allowed in the system, and the file handle setting represents the number of files that can be opened on the Linux system.
Fs.aio-max-nr :
This parameter limits the concurrent outstanding requests and should be set to avoid I/O subsystem failures.
Kernel.sem :
Take Kernel.sem = 250 32000 100 128 For example:
250 is the value of the parameter SEMMSL, which represents the maximum number of semaphores that can be contained in a semaphore collection.
32000 is the value of the parameter Semmns, which indicates the maximum number of semaphores that can be allowed within the system.
100 is the value of the parameter semopm that represents the number of operations that a single semopm () call can perform on a semaphore collection. Q
128 is the value of the parameter Semmni, which represents the total number of system semaphore sets.
Net.ipv4.ip_local_port_range :
Represents the range of IPV4 ports that an application can use.
Net.core.rmem_default :
Represents the default value for the socket receive buffer size.
Net.core.rmem_max :
Represents the maximum value of the socket receive buffer size.
Net.core.wmem_default :
Represents the default value for the socket send buffer size.
Net.core.wmem_max :
Represents the maximum value of the socket send buffer size.