热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux内核参数优化(forOracle)

Oracle不同平台的数据库安装指导为我们部署Oracle提供了一些系统参数设置的建议值,然而建议值是在通用的情况下得出的结论,并非

Oracle 不同平台的数据库安装指导为我们部署Oracle提供了一些系统参数设置的建议值,然而建议值是在通用的情况下得出的结论,并非

Oracle 不同平台的数据库安装指导为我们部署Oracle提供了一些系统参数设置的建议值,然而建议值是在通用的情况下得出的结论,并非能完全满足不同的需求。使用不同的操作系统内核参数将使得数据库性能相差甚远。本文描述了linux下几个主要内核参数的设置,供参考。


1、Linux共享内存
共享内存是在系统内核分配的一块缓冲区,多个进程都可以访问该缓冲区。
由于进程可以直接读写内存,避免了在内核空间与用户空间的切换,所以共享内存读写效率很高。
当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。共享内存类似与windows环境编程中的内存映像文件。

Linux的IPC(Interprocess Communication)通信机制:是指多个进程之间相互通信,交换信息的方法。
通过使用共享内存允许两个或多个进程共享一定的存储区,因为不需要拷贝数据。
Oracle SGA即是基于此方式来实现Oracle进程之间数据共享。因此SGA的合理设置对Oracle性能有重大的影响。
可以通过ipcs -lm来查看所有的共享内存设置。

2、参数修改的方式
由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。
但是,当系统重新启动后,原来设置的参数值就会丢失,而系统每次启动时都会自动去/etc/sysctl.conf文件中读取内核参数。
如果是临时修改,则可以采用echo或sysctl -w方式,如果永久修改,,建议修改sysctl.conf文件
下面是几种参数修改方式的描述
a、echo 方式
echo >
将值输出到文件,该方式使得内核参数修改立即生效,无需重启系统,但重启后失效(以sysctl.conf永久配置文件为准)
b、sysctl 命令方式
sysctl -w =
使用sysctl 命令行方式是修改的运行时的内核参数,参数值当重启后失效,同上
c、永久性更改
vi /etc/sysctl.conf #直接修改对应参数的值,然后执行命令使更改立即生效# sysctl -p
echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf #不太建议该方式,这样子同一参数会有多个值出现在sysctl.conf

3、sysctl.conf配置文件
几乎所有的重要参数都保持在sysctl.conf配置文件中,因此对于永久性修改,直接修改该文件是最简单不过的方式了
下面是基于x86_64 RHEL5 下Oracle 给出的参数建议值

Oracle10gR2 On RHEL 5/OEL 5 (x86_64) [ID 421308.1]
kernel.shmall = physical RAM size / pagesize
For most systems, this will be the value 2097152. See Note 301830.1 for more information.
kernel.shmmax = 1/2 of physical RAM.
This would be the value 2147483648 for a system with 4Gb of physical RAM. See Note 567506.1 for more information.
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 512 x processes (for example 65536 for 128 processes)
Development recommends a minimum of 327679 for active systems.
net.ipv4.ip_local_port_range = 9000 65500
(The runInstaller (OUI) checks may expect this to be the old guidance of 1024 65000.
The new guidance from Oracle development is 9000 65500.
Please allow the runInstaller (OUI) to proceed with the new guidance from Oracle development.)
net.core.rmem_default = 262144
net.core.rmem_max = 2097152
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

Oralce 11g R2 on RHEL (and OEL) 5 on AMD64/EM64T [ID 880989.1]
kernel.shmall = physical RAM size / pagesize
For most systems, this will be the value 2097152. See Note 301830.1 for more information.
kernel.shmmax = 1/2 of physical RAM.
This would be the value 2147483648 for a system with 4Gb of physical RAM.
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 512 x processes (for example 6815744 for 13312 processes)
fs.aio-max-nr = 1048576
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 = 1048576

对于Oracle 11g,Oracle建议如果系统当前设置的值大于上述列出的值,则无需修改,保留原值。
从上面可知,sysctl.conf包含了所有的内核参数文件,且以kernel开头,下面对这几个重要参数进行逐一描述。


推荐阅读
  • 本文探讨了SSD购买后是否需要进行4K对齐的问题,并详细解释了4K对齐的原理及其重要性。通过对比机械硬盘与固态硬盘的结构,文章深入分析了4K对齐对SSD性能的影响,并提供了具体的对齐方法。 ... [详细]
  • 本文将详细探讨PHP中C的作用,并对比其他编程语言如Java和C的特点及其适用场景。 ... [详细]
  • 本文详细介绍了如何在Windows操作系统中通过Samba服务访问Red Hat Linux中的资源,包括配置Samba服务器、设置工作组名称、添加用户和共享目录等步骤。 ... [详细]
  • 从零开始编译Linux系统:第16章 全新起点
    本章将详细介绍如何从零开始编译一套完整的Linux系统,涵盖关键组件如glibc库的介绍及其重要性。通过本文,读者将了解从源代码构建Linux系统的全过程。 ... [详细]
  • 本文介绍了如何在Linux和Windows环境中使用C语言中的beep函数来生成不同频率的声音,并提供了详细的代码示例和解释。 ... [详细]
  • 本文通过基准测试(Benchmark)对.NET Core环境下Thrift和HTTP客户端的微服务通信性能进行对比分析。基准测试是一种评估系统或组件性能的方法,通过运行一系列标准化的测试来衡量其表现。 ... [详细]
  • 本文介绍了如何在 Python 脚本中规范文件编码,并提供了在不同字符集之间进行转换的方法,特别是在处理中文字符时的注意事项。 ... [详细]
  • 申请地址:https://developer.apple.com/appstore/contact/?topic=expedite 常见申请理由:1. 我们即将发布新产品,这是一个媒体活动,我们无法承担任何风险,因此在多个方面努力提升应用质量。 ... [详细]
  • 近年来,区块链技术备受关注,其中比特币(Bitcoin)功不可没。尽管数字货币的概念早在上个世纪就被提出,但直到比特币的诞生,这一概念才真正落地生根。本文将详细探讨比特币、以太坊和超级账本(Hyperledger)的核心技术和应用场景。 ... [详细]
  • 使用外部样式表实现盒子居中对齐
    本文介绍如何在HTML文件中引入外部CSS样式表,并通过CSS实现盒子的居中对齐。 ... [详细]
  • Python学习day3网络基础之网络协议篇
    一、互联网协议连接两台计算机之间的Internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列网络协议。二、为什么要有互联网协议互联网协议就相当于计 ... [详细]
  • 线段树,注 ... [详细]
  • Java毕业设计项目:“传情旧物”网站(含源码与数据库)
    本项目介绍了如何配置和运行“传情旧物”网站,包括所需的技术栈、环境配置以及具体的操作步骤。 ... [详细]
  • Gty的二逼妹子序列 - 分块与莫队算法的应用
    Autumn 和 Bakser 正在研究 Gty 的妹子序列,但遇到了一个难题。他们希望计算某个区间内美丽度属于 [a, b] 的妹子的美丽度种类数。本文将详细介绍如何利用分块和莫队算法解决这一问题。 ... [详细]
  • 年前,我发表了一篇文章,分享了自己通过在线教育平台学习IT技能的经历。文中详细探讨了在线教育与传统线下教育在技能培训方面的优缺点。许多网友在讨论在线教育时,常常提到“在线教育是否缺乏学习氛围”的问题。本文将对此进行深入分析。 ... [详细]
author-avatar
陈汉文爱_290
这个家伙很懒,什么也没留下!
RankList | 热门文章