当前位置:  数据库>oracle

Linux 内核参数优化(for Oracle)

    来源: 互联网  发布时间:2017-05-19

    本文导语: 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开头,下面对这几个重要参数进行逐一描述。


    
 
 

您可能感兴趣的文章:

  • Linux内核中影响tcp三次握手的一些协议配置
  • 我想学习linux桌面编程,那么有没有必要学习linux的内核以及内核的相关编程呢?
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 现有linux内核中共享内存机制如何移植到linux0.11内核中
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 读懂 Linux 内核代码不难,难的是读懂 Linux 内核代码背后的哲学!
  • linux内核中的likely宏和unlikely宏介绍及用法
  • Linux中内核线程不访问内核态地址空间?
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • linux为什么要升级内核?升级内核有何作用?
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  • 《Linux内核情景分析》值得推荐的内核学习参考两用资料
  • *******是不是对内核模块编程然后再重新编译内核就可以把此模块整合到linux系统中
  • Linux下的Oracle安装问题(非常问题) iis7站长之家
  • 想看linux内核源代码,另外手头上有一本《unix环境高级编程》,需要先把《unix环境高级编程》看完之后再看内核吗?
  • 请问重新编译LINUX内核是否能将没有用的外设的驱动程序删除并减少内核占有内存的资源?请好心人仕指教!
  • Linux内核工具包 TOMOYO Linux
  • 请问:构建嵌入式linux环境时,“Linux内核的移植”是达到什么目的啊?
  • 求教,Linux下键盘输入的所有数据都会经过Linux内核吗???
  • 高深问题:有了linux内核源代码如何做成一个linux操作系统
  • linux内核编译一定要在linux环境下么?
  • Linux下curl的下载,安装以及curl命令的详细参数,用法介绍
  • 如何实现linux下ant调用sh(带输入参数),参数自动填入并执行sh
  • linux下top命令详解包括top命令参数使用及结果(virt,res,shr)排序举例说明
  • Linux0.11 内核源码 main函数的参数问题
  • linux/centos源码安装nginx编译配置选项参数介绍
  • linux的shell的参数个数限制
  • linux命令后的参数问题
  • 关于linux命令参数顺序的问题
  • 【请教】怎么修改linux内核参数
  • linux下什么语言获得参数是~1
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • Linux系统下Oracle的启动与Oracle监听的启动
  • 在linux 中如何删除oracle db 与卸载oracle.
  • 如何将Aix上的oracle 物理备份 然后再在linux 系统上还原oracle
  • 那里有免费的oracle odbc driver for linux?或怎么破解easysoft oracle odbc driver安装包?急
  • XP Oracle客户端进入Linux Oracle服务端
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • 在Red Hat Linux 9 和 Oracle 9.2 环境下,如何配制字符集,让Oracle能存入并显示日语里的假名?
  • 红帽Linux表示Oracle提供Linux支持是不完美的
  • Linux+Oracle学习笔记
  • Linux下的Oracle安装问题(非常问题)
  • Linux安装oracle,菜鸟急用!
  • 我载了oracle8i_linux81701.tar 在linux下解包,怎么是乱码啊?
  • Linux平台下Oracle 密码文件重建
  • Suse linux使用oracle问题
  • Linux系统下利用java连接Oracle 10G
  • 在Linux下安装ORACLE
  • Oracle商业数据库对Linux的策略是什么
  • Gartner:Oracle的Linux 可以先用后买
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,