linux中与Oracle有关的内核参数详解

Linux安装文档中给出的最小值:
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
各参数详解:
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。

设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。

至于导致系统下降的主要原因为在实例启动以及Server Process创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是
其他时候都不会有影响。

官方建议值:
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。

建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。

32位系统对SGA大小有限制,所以SGA肯定可以包含在单
个共享内存段中。

64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。

例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯
定会包含在单个共享内存段中。

kernel.shmall:
该参数控制可以使用的共享内存的总页数。

Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。

一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。

这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA 最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使
用,不能设置太满,比如16G)
kernel.shmmni:
该参数是共享内存段的最大数量。

shmmni缺省值4096,一般肯定是够用了。

fs.file-max:
该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux
系统中可以打开的文件的数量。

fs.aio-max-nr:
此参数限制并发未完成的请求,应该设置避免I/O子系统故障。

kernel.sem:
以kernel.sem = 250 32000 100 128为例:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数
目。

32000是参数semmns的值,表示系统内可允许的信号量最大数目。

100是参数semopm的值,表示单个semopm()调用在一个信号量集合上
可以执行的操作数量。

128是参数semmni的值,表示系统信号量集合总数。

net.ipv4.ip_local_port_range:
表示应用程序可使用的IPv4端口范围。

net.core.rmem_default:
表示套接字接收缓冲区大小的缺省值。

net.core.rmem_max:
表示套接字接收缓冲区大小的最大值。

net.core.wmem_default:
表示套接字发送缓冲区大小的缺省值。

net.core.wmem_max:
表示套接字发送缓冲区大小的最大值。

合集下载

oracle linux 内核参数说明

oracle linux 内核参数说明

linux 内核参数调整说明所有的TCP/IP调优参数都位于/proc/sys/net/目录。

例如, 下面是最重要的一些调优参数, 后面是它们的含义:1. /proc/sys/net/core/rmem_max —最大的TCP数据接收缓冲。

2. /proc/sys/net/core/wmem_max —最大的TCP数据发送缓冲。

3. /proc/sys/net/ipv4/tcp_timestamps —时间戳在(请参考RFC 1323)TCP的包头增加12个字节。

4. /proc/sys/net/ipv4/tcp_sack —有选择的应答。

5. /proc/sys/net/ipv4/tcp_window_scaling —支持更大的TCP窗口. 如果TCP窗口最大超过65535(64KB), 必须设置该数值为1。

6. rmem_default —默认的接收窗口大小。

7. rmem_max —接收窗口的最大大小。

8. wmem_default —默认的发送窗口大小。

9. wmem_max —发送窗口的最大大小。

/proc目录下的所有内容都是临时性的, 所以重启动系统后任何修改都会丢失。

建议在系统启动时自动修改TCP/IP参数:把下面代码增加到/etc/rc.local文件, 然后保存文件, 系统重新引导的时候会自动修改下面的TCP/IP参数:echo 256960 > /proc/sys/net/core/rmem_defaultecho 256960 > /proc/sys/net/core/rmem_maxecho 256960 > /proc/sys/net/core/wmem_defaultecho 256960 > /proc/sys/net/core/wmem_maxecho 0 > /proc/sys/net/ipv4/tcp_timestampsecho 1 > /proc/sys/net/ipv4/tcp_sackecho 1 > /proc/sys/net/ipv4/tcp_window_scalingTCP/IP参数都是自解释的, TCP窗口大小设置为256960, 禁止TCP的时间戳(取消在每个数据包的头中增加12字节), 支持更大的TCP窗口和TCP有选择的应答。

Oracle安装-Linux内核参数-共享内存信号量设置

Oracle安装-Linux内核参数-共享内存信号量设置

含义:semop系统调用允许的信号量最大个数
设置:至少100;或者等于SEMMSL
查看信号量设置:cat /proc/sys/kernel/sem
order:SEMMSL, SEMMNS, SEMOPM, SEMMNI
oracle@lab-rd-01:~$ cat /proc/sys/kernel/sem
设置:最小250;对于processes参数设置较大的系统建议设置为processes+10
SEMMNI
含义:linux系统信号量set最大个数
设置:最少128
SEMMNS
含义:linux系统中信号量最大个数
设置:至少32000;SEMMSL * SEMMNI
SEMOPM
250 32000 100 128
修改:
sysctl -w kernel.sem=”250 32000 100 128″
echo “kernel.sem=250 32000 100 128″ >> /etc/sysctl.conf
ORACLE提供了sysresv工具管理共享内存以及信号量,操作系统级别可以通过ipcs管理。
设置hmmax
$ cat /proc/sys/kernel/shmmax
1073741824
修改:
sysctl -w kernel.shmmax=1073741824
echo “kernel.shmmax=1073741824″ >> /etc/sysctl.conf
Oracle数据库在linux系统上的安装过程中,涉及到设置linux内核参数;
这些内核参数究竟代表什么含义,如何调整这些参数?

Linux内核参数说明

Linux内核参数说明

Linux内核参数说明转载⾃:https:///tolimit/p/5065761.html 因个⼈能⼒有限,不能保证所有描述都正确,还请⼤家集思⼴益,有错误的地⽅欢迎⼤家留⾔指正,同时也欢迎⼤家留⾔对未标注项进⾏补偿,谢谢。

内核参数列表kernel.acct acct功能⽤于系统记录进程信息,正常结束的进程都会在该⽂件尾添加对应的信息。

异常结束是指重启或其它致命的系统问题,不能够记录永不停⽌的进程。

该设置需要配置三个值,分别是:1.如果⽂件系统可⽤空间低于这个百分⽐值,则停⽌记录进程信息。

2.如果⽂件系统可⽤空间⾼于这个百分⽐值,则开始记录进程信息。

3.检查上⾯两个值的频率(以秒为单位)。

kernel.auto_msgmni 系统⾃动设置同时运⾏的消息队列个数。

0:不⾃动1:⾃动kernel.blk_iopollkernel.cad_pid接收Ctrl-alt-del操作的INT信号的进程的PIDkernel.cap_last_cap系统capabilities最⾼⽀持的权限等级。

详见:/iamfy/archive/2012/09/20/2694977.html pat-logkernel.core_pattern设置core⽂件保存位置或⽂件名,只有⽂件名时,则保存在应⽤程序运⾏的⽬录下kernel.core_pipe_limit 定义了可以有多少个并发的崩溃程序可以通过管道模式传递给指定的core信息收集程序。

如果超过了指定数,则后续的程序将不会处理,只在内核⽇志中做记录。

0是个特殊的值,当设置为0时,不限制并⾏捕捉崩溃的进程,但不会等待⽤户程序搜集完毕⽅才回收/proc/pid⽬录(就是说,崩溃程序的相关信息可能随时被回收,搜集的信息可能不全)。

kernel.core_uses_pid Core⽂件的⽂件名是否添加应⽤程序pid做为扩展0:不添加1:添加kernel.ctrl-alt-del 该值控制系统在接收到 ctrl+alt+delete 按键组合时如何反应:1:不捕获ctrl-alt-del,将系统类似于直接关闭电源0:捕获ctrl-alt-del,并将此信号传⾄cad_pid保存的PID号进程进⾏处理kernel.dmesg_restrict 限制哪些⽤户可以查看syslog⽇志0:不限制1:只有特权⽤户能够查看kernel.domainname⽹络域名(重启失效)kernel.ftrace_dump_on_oops 确定是否将ftrace的缓冲区的信息打印出来,是通过printk来打印的0:不打印1:在系统oops时,⾃动dump堆栈信息到输出终端kernel.hostname主机名(重启失效)kernel.hotplug该⽂件给出了当前系统⽀持热插拔(hotplug)时接收热插拔事件的程序的名字(包括路径)。

oracle 安装 内核参数

oracle 安装 内核参数
oracle 安装 内核参数详解
一、对交换空间的考虑因素
安装 Oracle10g 第 2 版至少需要 512MB 内存。(注:安装期间交换容量不足会导致 Oracle Universal Installer“挂起”或“死机”) 要检查您已经分配的内存/交换容量,键入: # cat /proc/meminfo | grep MemTotal MemTotal:1034352 kB 如果您的内存少于 512MB(介于 RAM 与 SWAP 之间),您可以通过创建临时交换文件添加临时交换空间。这样,您就不必使用原始设备甚至更彻底地重建系统了。
SHMMAX 参数定义共享内存段的最大大小(以字节为单位)。Oracle SGA 由共享内存组成,且错误设置 SHMMAX 可能会限制 SGA 的大小。在设置 SHMMAX 时,切记 SGA 的大小应该适合于一个共享内存段。SHMMAX 设置不足可能会导致以下问题:
ORA-27123:unable to attach to shared memory segment 您可以通过执行以下命令确定 SHMMAX 的值: # cat /proc/sys/kernel/shmmax 33554432 SHMMAX 的默认值为 32MB。通常,这个值对于配置 Oracle SGA 而言太小了。我通常使用以下方法将 SHMMAX 参数设置为 2GB: 可以通过使用以下命令直接更改 /proc 文件系统 (/proc/sys/kernel/shmmax) 来更改 SHMMAX 的默认设置,而不必重新引导计算机: # sysctl -w kernel.shmmax=2147483648
(注:如果需要增大 /proc/sys/fs/file-max 中的值,请确保正确设置 ulimit。对于 2.4.20,通常将其设置为 unlimited。使用 ulimit 命令验证 ulimit 设置:

Oracle数据库教程 —— linux系统中配置hugepage,提升oracle数据库性能

Oracle数据库教程 —— linux系统中配置hugepage,提升oracle数据库性能

Oracle数据库教程—— linux系统中配置hugepage,提升oracle数据库性能linux配置大内存技术1、理论介绍系统进程通过虚拟地址访问内存,CPU必须把它转换成物理内存地址才能真正访问内存。

为了提高这个转换效率,CPU会缓存最近的虚拟内存地址和物理内存地址的映射关系,并保存在一个由CPU维护的映射表中。

为了尽量提高内存的访问速度,需要在映射表中保存尽量多的映射关系。

在linux 系统中,所有内存都是以页的形式划分的,默认情况下每页是4096B,这就意味着如果物理内存很大,映射表的条目数会很多,系统cpu在检索的过程中,需要检索的条目数就会很。

从另一个角度说,如果能够让cpu减少检索内存条目的数量,可采取的办法只有增加页的尺寸,hugepage应时而生。

hugepage,一直被cache,不会被交换出去,也就是说使用hugepage的内存不能被其他的进程使用。

随着内存技术的发展,现在上T的内存配置也出现,所以内存已经不是问题,在实际应用中,如果你的物理内存能够达到8g以上,那么都可以使用大内存技术。

在oracle数据库中,sga与大内存配合使用,将会对性能产生非常大的提升。

2、oracle中大内存技术的配置建议oracle针对大内存技术,提供了一个脚本如下:#!/bin/bash## hugepages_settings.sh## Linux bash script to compute values for the# recommended HugePages/HugeTLB configuration## Note: This script does calculation for all shared memory# segments available when the script is run, no matter it# is an Oracle RDBMS shared memory segment or not.## This script is provided by Doc ID 401749.1 from My Oracle Support# # Welcome textecho "This script is provided by Doc ID 401749.1 from My Oracle Support() where it is intended to compute values forthe recommended HugePages/HugeTLB configuration for the current sharedmemory segments. Before proceeding with the execution please make surethat:* Oracle Database instance(s) are up and running* Oracle Database 11g Automatic Memory Management (AMM) is not setup(See Doc ID 749851.1)* The shared memory segments can be listed by command:# ipcs -mPress Enter to proceed..."read# Check for the kernel versionKERN=`uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'`# Find out the HugePage sizeHPG_SZ=`grep Hugepagesize /proc/meminfo | awk '{print $2}'`# Initialize the counterNUM_PG=0# Cumulative number of pages required to handle the running shared memory segments for SEG_BYTES in `ipcs -m | awk '{print $5}' | grep "[0-9][0-9]*"`doMIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q`if [ $MIN_PG -gt 0 ]; thenNUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q`fidoneRES_BYTES=`echo "$NUM_PG * $HPG_SZ * 1024" | bc -q`# An SGA less than 100MB does not make sense# Bail out if that is the caseif [ $RES_BYTES -lt 100000000 ]; thenecho "***********"echo "** ERROR **"echo "***********"echo "Sorry! There are not enough total of shared memory segments allocated for HugePages configuration. HugePages can only be used for shared memory segmentsthat you can list by command:# ipcs -mof a size that can match an Oracle Database SGA. Please make sure that:* Oracle Database instance is up and running* Oracle Database 11g Automatic Memory Management (AMM) is not configured"exit 1fi# Finish with resultscase $KERN in'2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`;echo "Recommended setting: vm.hugetlb_pool = $HUGETLB_POOL" ;;'2.6') echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;;*) echo "Unrecognized kernel version $KERN. Exiting." ;;esac# End[root@hdyydb1 u02]# chmod u+x hugepages_settings.sh[root@hdyydb1 u02]# ./hugepages_settings.shThis script is provided by Doc ID 401749.1 from My Oracle Support() where it is intended to compute values forthe recommended HugePages/HugeTLB configuration for the current sharedmemory segments. Before proceeding with the execution please make surethat:* Oracle Database instance(s) are up and running* Oracle Database 11g Automatic Memory Management (AMM) is not setup(See Doc ID 749851.1)* The shared memory segments can be listed by command:# ipcs -mPress Enter to proceed...Recommended setting: vm.nr_hugepages = 2588可以看到,运行脚本显示,将vm.nr_hugepages设置为25883、hugepage在oracle中的配置应用--检查系统是否启用hugepage,或者是否可以启用[root@hdyydb1 u02]# cat /proc/meminfo | grep -i hugeAnonHugePages: 75776 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 2048 kB可以看到,HugePages_Total,HugePages_Free均为零,证明没有使用,但可以配置。

Oracle 在linux 平台上的调优

Oracle 在linux 平台上的调优
endations
• 一些经验性的建议
– 0.5 GB RAM 1 GB - 2 GB Swap Space – 1 GB RAM 2 GB - 3 GB Swap Space – 2 GB RAM 2 GB - 3 GB Swap Space – 3 GB RAM 3 GB Swap Space – 4 GB RAM 4 GB Swap Space – 8 GB RAM 4 GB Swap Space – 16 GB RAM 8 GB Swap Space
4
Linux系统平台提供的一些特点
• Asynchronous I/O • 与 CPU 、cache 、每运行队列消耗的CPU 以及锁管理
密切相关的进程调度的性能将更好
• “mapped base” (base address for shared libaries) 可
以被动态修改大小以适应用户的SGA 需求
• 交换页面(Page frame)大小可以设置为4 MB 而不是4
KB 将会使大SGA的性能更好
• 内核可以设置以使用“high memory” pool (physical
memory above 1 GB) ,这样将会分配支持更多用户连 接的页分配表记录—page table entries (PTE)
• The default size on RH 2.1 AS is 2097152 • this value should be sufficient
– cat /proc/sys/kernel/shmall
20
Setting Semaphores
• Semaphores can best be described as counters

OracleLinux7中Oracle配置参数

OracleLinux7中Oracle12c环境配置1、OracleLinux7为Oracle公司配置的环境,预安装了Oracle12c2、OracleLinux7中,ftp服务器已经安装,可用scp、LeapFTP等工具登陆,传文件到OracleLinux7中,方便使用3、OracleLinux7中,ssh服务器已经安装,可用Putty等工具登陆到系统中进行操作4、OracleLinux7中,已配置gcc、g++编译器# yum install gcc-c++ libstdc-devel --安装gcc g++ 编译器5、OracleLinux7中,oracle用户的密码为oracle,具体细节如下:All passwords are oracle or noted if otherwise.The SQL Developer and Data Modeler scripts are in the directory:/home/oracle/Desktop/Database_Track/sqldevdmand/home/oracle/Desktop/Database_Track/sqldevThe Application Express scripts are in the directory:/home/oracle/Desktop/APEX_Track/filesTo Reset the labs:SQL Developer: /home/oracle/reset_sqldev (includes ORDS, Data Modeler, Unit Test)JSON : /home/oracle/reset_jsonApplication Express: /home/oracle/reset_apexREST Data Services : /home/oracle/reset_rest (APEX related)SODA4REST : /home/oracle/reset_soda4restSoup to Nuts : /home/oracle/reset_soup-- APEX Labs Only /home/oracle/reset_soup_apex_onlyXML DB : /home/oracle/reset_xmldbSODA4REST documentation is under:/home/oracle/Desktop/Database_Track/SODA4RESTDatabase Information:Oracle SID : orcl12cPluggable DB : orclPluggable DB : ords create if required by running:'newpdbords' in the terminal - takes a few minutes.ALL PASSWORDS ARE : oracle*** Please note that this appliance is for testing purposes only,as such it is unsupported and should not be used as a production environment.。

Oracle下Linux参数设置介绍


oracle
共享内存的设置
kernel.shmmax=4294967296 kernel.shmall=16777216 kernel.shmmax: the maximum (System V IPC) shared memory segment size. kernel.shmall: This file contains the system-wide limit on the total number of pages of System V shared memory.
多个实例,如何查看当前实例的IPC?
oracle@osdba-laptop:/opt/oracle/products/9.2.0/bin$ sysresv IPC Resources for ORACLE_SID "oratest" : Shared Memory: ID KEY 5242893 0xd1cef574 Semaphores: ID KEY 98304 0xb3be8f54 131073 0xb3be8f55 163842 0xb3be8f56 196611 0xb3be8f57 229380 0xb3be8f58 Oracle Instance alive for sid "oratest"
大页的设置
oracle用户下ulimit -l看到的max locked memory的值 应该大于等于共享内存的值: max locked memory (kbytes, -l) unlimited 在/etc/security/limits.conf增加两行: * hard memlock -1 * soft memlock -1 在/etc/sysctl.conf设置: vm.nr_hugepages = n n是大页的页数,大页每页的值是2M

Linux内核参数及Oracle相关参数调整

Linux内核参数及Oracle相关参数调整修改内核参数的⽅法RedHat向管理员提供了⾮常好的⽅法,使我们可以在系统运⾏时更改内核参数,⽽不需要重新引导系统。

这是通过/proc虚拟⽂件系统实现的。

/proc/sys⽬录下存放着⼤多数的内核参数,并且设计成可以在系统运⾏的同时进⾏更改。

更改⽅法有两种:⽅法⼀:修改/proc/sys⽬录下的相应⽂件,⽐如:/proc/sys/net/ipv4/ip_forward,修改后⽴刻可⽤,不⽤重启系统,但重启系统,会恢复到默认值。

⽅法⼆:修改/etc/sysctl.conf ⽂件,该⽂件中以(变量=值)的形式设置内核参数,修改后,不能⽴刻⽣效,需要执⾏/sbin/sysctl –p 命令,使配置⽂件⽣效。

注意: /etc/sysctl.conf和/proc/sys下的⽂件其实都对应着⼀个参数,它们之间的对应关系,有简单规则:将/proc/sys中的⽂件转换成sysctl中的变量的规则:1.去掉前⾯部分/proc/sys2.将⽂件名中的斜杠变为点这两条规则可以将/proc/sys中的任⼀⽂件名转换成sysctl中的变量名。

例如:/proc/sys/net/ipv4/ip_forward =》 net.ipv4.ip_forward/proc/sys/kernel/hostname =》 kernel.hostname可以使⽤下⾯命令查询所有可修改的变量名例⼦:以打开内核的转发功能。

IP转发是指允许系统对来源和⽬的地都不是本机的数据包通过⽹络,RedHat默认屏蔽此功能,在需要⽤本机作为路由器、NAT等情况下需要开启此功能。

⽅法⼀:修改/proc下内核参数⽂件内容直接修改内核参数ip_forward对应在/proc下的⽂件/proc/sys/net/ipv4/ip_forward。

⽤下⾯命令查看ip_forward⽂件内容:# cat /proc/sys/net/ipv4/ip_forward该⽂件默认值0是禁⽌ip转发,修改为1即开启ip转发功能。

ORACLE内核参数释疑

ORACLE内核参数释疑以服务器内存为4G 为例修改/etc/sysctl.conf文件 (ROOT账户)kernel.shmmax = 2147483648//公式:2G*1024*1024*1024=2147483648(字节)//表示最大共享内存,如果小的话可以按实际情况而定,一般为物理内存的一半(单位:字节)kernel.shmmni=4096//表示最小共享内存固定4096KB(由于32位操作系统默认一页为4K)kernel.shmall=1048576//公式:4G*1024*1024/4K = 1048576(页)//表示所有内存大小(单位:页)kernel.sem=250 32000 100 128//4个参数依次是SEMMSL:每个用户拥有信号量最大数,SEMMNS:系统信号量最大数,SEMOPM:每次semopm系统调用操作数,SEMMNI:系统辛苦量集数最大数。

这4个参数为固定内容大小fs.file-max=65536//file-max固定大小65536net.ipv4.ip_local_port_range=1024 65000//ip_local_port_range表示端口的范围,为指定的内容以上步骤做完执行 /sbin/sysctl -p 使内核生效验证参数(root账户执行):#/sbin/sysctl -a | grep shm#/sbin/sysctl -a | grep sem#/sbin/sysctl -a | grep file-max#/sbin/sysctl -a | grep ip_local_port_range1、与oracle相关的信号量和共享内存段参数一般unix系统中和信号量相关的是三个参数SEMMNI SEMMSL SEMMNS。

他们相互关联决定系统可以分配的信号量。

Oracle使用信号量完成内部进程之间的通信。

关于共享内存段使用shmmx参数进行总体控制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档