Linux 下 Oracle 内核参数优化
数据库的性能优化涉及到整个数据库运行环境的方方面面,诸如操作系统,Oracle自身,存储,网络等等几个大块。而操作系统则是Oracle稳定运行与最大化性能的基石。本文主要描述基于Linux系统下 Oracle 内核参数的配置。
校验下面的列表中显示的内核参数的值被设置为大于或等于下面所显示的最小值。
如果你的系统中下面的任意参数的当前值已经大于或高于下面列出的值,请不要做任何修改。
下面的步骤给出了如何去校验并设置这些参数的值。
通过执行下面的命令进行校验
/sbin/sysctl -a | egrep "kernel.shmall|kernel.shmmax|kernel.shmmn|kernel.sem"
然后比较下表所列出的值
注意:下表显示的是内核参数以及shell 限制所需的最小值。对于生产数据库,Oracle建议去调整这些值使得数据库性能达到最优。有关优化内核参数更多信息请参考操作系统相关文档。
Oracle 内核参数参考值
Parameter |
Minimum Value |
Recommended value |
File |
semmsl semmns semopm semmni |
250 32000 100 128 |
Set only if those that are set by OS or other applications are lower |
/proc/sys/kernel/sem |
shmall |
2097152 |
shmmax/page_size |
/proc/sys/kernel/shmall |
shmmax |
Minimum of the following values: · Half the size of the memory · 4GB - 1 byte Note: The minimum value required for shmmax is 0.5 GB. However, Oracle recommends that you set the value of shmmax to 2.0 GB for optimum performance of the system. |
Half of RAM or if swap file is less then half of RAM the size of swap file |
/proc/sys/kernel/shmmax |
shmmni |
4096 |
/proc/sys/kernel/shmmni |
|
file-max |
512 * PROCESSES |
/proc/sys/fs/file-max |
|
ip_local_port_range |
Minimum:9000 Maximum: 65000 |
/proc/sys/net/ipv4/ip_local_port_range |
|
rmem_default |
262144 |
/proc/sys/net/core/rmem_default |
|
rmem_max |
4194304 |
/proc/sys/net/core/rmem_max |
|
wmem_default |
262144 |
/proc/sys/net/core/wmem_default |
|
wmem_max |
1048576 |
/proc/sys/net/core/wmem_max |
|
tcp_wmem |
262144 |
/proc/sys/net/ipv4/tcp_wmem |
|
tcp_rmem |
4194304 |
/proc/sys/net/ipv4/tcp_rmem |
校验内核参数
按照下面的步骤去查看指定参数的值,如果有必要的话对其进行修改
执行下表中相应的命令来显示这些内核参数的值,并标记该参数的值是否需要修改。
Parameter |
Command |
semmsl, semmns, semopm, and semmni |
# /sbin/sysctl -a | grep sem This command displays the value of the semaphore parameters in the order listed. |
shmall, shmmax, and shmmni |
# /sbin/sysctl -a | grep shm This command displays the details of the shared memory segment sizes. |
file-max |
# /sbin/sysctl -a | grep file-max This command displays the maximum number of file handles. |
ip_local_port_range |
# /sbin/sysctl -a | grep ip_local_port_range This command displays a range of port numbers. |
rmem_default |
# /sbin/sysctl -a | grep rmem_default |
rmem_max |
# /sbin/sysctl -a | grep rmem_max |
wmem_default |
# /sbin/sysctl -a | grep wmem_default |
wmem_max |
# /sbin/sysctl -a | grep wmem_max |
tcp_wmem |
# /sbin/sysctl -a | grep tcp_wmem |
tcp_rmem |
# /sbin/sysctl -a | grep tcp_rmem |
修改内核参数
如果上述查询的内核值小于最小值,按照下面的步骤进行修改:
使用任意的文本编辑器编辑/etc/sysctl.conf 文件, 添加或编辑下列类似的行:
注:仅仅修改你需要调整的参数。对于信号量参数 (kernel.sem), 你必须指定所有的四个值。 如果当前的值大于最小值,那么使用或保留当前值。
fs.file-max = 512 * PROCESSES
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
or
kernel.sem = 250 256000 100 1024
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304
注:参数shmmax 最小值是 0.5 GB。然而 Oracle 建议设置该参数的值到2GB去最大化系统性能。
在/etc/sysctl.conf文件里指定的这些参数值,重新启动系统后依然被保留。 然而在 SUSE Linux Enterprise Server 系统中,重新启动系统前输入下面的命令来确保系统启动时读到 /etc/sysctl.conf 文件:
# /sbin/chkconfig boot.sysctl on
输入下面的命令以使得当前修改的这些内核参数的值立即生效:
# /sbin/sysctl -p
上面的这个命令同时可以看到刚刚设置的参数及值,如果不正确再次编辑该文件并输入正确的值。
可以通过命令/sbin/sysctl -a 显示当前所有可用值.
在 SUSE 系统中,输入下面的命令使得系统读取/etc/sysctl.conf文件当系统启动的时候:
# /sbin/chkconfig boot.sysctl on
在 SUSE 系统中,你必须输入oinstall 组的gid作为参数 /proc/sys/vm/hugetlb_shm_group的值. 主要是为oinstall组内的成员授予许可去创建共享内存段
# echo 501 > /proc/sys/vm/hugetlb_shm_group
运行上述命令后,使用vi添加下列文本到 /etc/sysctl.conf,以允许 boot.sysctl 随操作系统启动时运行:
注:仅仅一个组能够被定义给vm.hugetlb_shm_group.
一旦在/etc/sysctl.conf 文件更新参数后,要么重新启动计算机或者运行命令 sysctl -p 激活 /etc/sysctl.conf 文件的新值,并使之生效。
为提高oracle性能,必须为oracle用户增加下列shell限制:
Shell Limit |
Item in limits.conf |
Hard Limit |
Maximum number of open file descriptors |
nofile |
65536 |
Maximum number of processes available to a single user |
nproc |
16384 |
添加下列行到/etc/security/limits.conf 文件:
添加或编辑/etc/pam.d/login 文件,当下面的条目不存在时:
session required pam_limits.so
取决于Oracle用户缺省的shell环境,为缺省的shell启动文件作下列更改:
对于Bourne, Bash, or Korn shell, 添加下列行到/etc/profile 文件 (SUSE Linux 则添加到/etc/profile.local):
if [ $SHELL = "/bin/ksh" ]; then
原文出处:Oracle kernel parameters tuning on Linux
Linux 下 Oracle 内核参数优化相关推荐
- Linux系统TCP内核参数优化总结
简介:Linux系统TCP内核参数优化总结 日常运维工作中,会遇到很多TCP相关的问题,网上有很多文章介绍需要优化哪些TCP内核参数,但是并没有很详细说明优化的依据.适用的场景是什么,如果我们不了解各 ...
- LINUx设置ip导致内核挂死,Linux之TCPIP内核参数优化
本文以Ubuntu 12.04 LTS Desktop (x64)默认配置为例(机器的内存为4GB),推荐先阅读<TCP连接的状态与关闭方式,及其对Server与Client的影响>.&l ...
- Linux之TCPIP内核参数优化
/proc/sys/net目录 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失),例如下面这 ...
- 【必看】Linux 下的 TCP参数优化
简介 TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式 (1)基于流的方式: (2)面向连接: ...
- aix内核是linux,linux和aix内核参数检查
安装oracle软件时需要设置操作系统级别的用户限制,后期检查可以使用如下命令,方便问题的排查工作 linux: tail -15 /etc/security/limits.conf tail -30 ...
- Linux集群和自动化维1.4.2 优化Linux下的内核TCP参数以提高系统性能
1.4.2 优化Linux下的内核TCP参数以提高系统性能 内核的优化跟服务器的优化一样,应本着稳定安全的原则.下面以Squid服务器为例来说明,待客户端与服务器端建立TCP/IP连接后就会关闭Soc ...
- Linux(debian)的网络内核参数优化来提高服务器并发处理能力
提高服务器性能有很多方法,比如划分图片服务器,主从数据库服务器,和网站服务器在服务器.但是硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题. 要 ...
- linux安装oracle 操作系统内核参数 aio,Oracle Study之案例--安装Oracle内核参数配置
Oracle Study之案例--安装Oracle内核参数配置 在Linux系统下,安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其中最主要的是和内 ...
- linux 的内核参数优化,Linux服务器内核参数优化
Linux服务器内核参数优化 cat >> /etc/sysctl.conf << EOF #kernel optimization net.ipv4.tcp_fin_time ...
最新文章
- html.textboxfor id,How to update the textbox value @Html.TextBoxFor(m = m.MvcGridModel.Rows[j].Id)
- android从放弃到精通 第六天 excellent
- Qt Designer设置背景图片、颜色不影响其它组件小技巧,控件层级设置,组件的继承,styleSheet设置样式。
- 2015 UESTC Winter Training #10【Northeastern Europe 2009】
- Spring 自动装配模式之byType
- C语言strstr函数实现
- Python 字串处理
- 正则表达式匹配日期时间
- 关于某学习通网页鼠标不能移出视频窗口的问题
- Hi3519AV100 sdk 介绍
- wps折线图如何画多条折线_如何用wps制作折线图
- 手机连接Fiddler后无法上网问题解决
- 计算机二级考试真题李阳答案,英语二级笔译_二级笔译培训_二级笔译真题 - 沪江英语...
- @TableLogic注解
- 将Excel文件(xlsx)中的联系人和电话转换成vcard文件(.vcf),并用pyinstaller打包发布
- 基于ESP32CAM的物联网相机系统⑧(用原生JavaWeb实现双摄像头WIFI图传)
- 金蝶K/3 ERP 基于Citrix Access Gateway 的SSL ××× 部署方案
- 【微信支付付款至零钱】
- 一级造价工程师和一级建造师,你更想考哪一个?
- JavaScript变量提升(Hoisting)详解