乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Linux內(nèi)核參數(shù)和Oracle相關(guān)參數(shù)調(diào)整

       guolijiegg 2012-01-18

      Linux 內(nèi)核參數(shù) 和 Oracle相關(guān)參數(shù)調(diào)整

      分類: Oracle 基礎(chǔ)知識 3378人閱讀 評論(0) 收藏 舉報

       

             Linux 內(nèi)核參數(shù)的大小和Oracle 有很大的關(guān)閉,比如ORA-27102的錯誤,就是因為內(nèi)核參數(shù)的大小不當(dāng)造成。具體參考Blog

             Upon startup of Linux database get ORA-27102: out of memory Linux-X86_64 Error: 28: No space left on device

             http://blog.csdn.net/tianlesoftware/archive/2011/05/16/6424945.aspx

       

      Oracle 11gR2 里也有一個類似的問題:

             Oracle 11gR2 RAC ORA-00845 MEMORY_TARGET not supported on this system 解決方法

             http://blog.csdn.net/tianlesoftware/archive/2010/11/17/6013777.aspx

       

             安裝Oracle的時候,可以參考Oracle 的安裝文檔,來設(shè)置相關(guān)的值,但是有些參數(shù)的值還是需要根據(jù)我們自己的情況來進行調(diào)整。

       

       

      1.  Linux 系統(tǒng)下的核心參數(shù)

      # vi /etc/sysctl.conf

      kernel.shmall = 2097152

      kernel.shmmax = 2147483648

      kernel.shmmni = 4096

      kernel.sem = 250 32000 100 128

      fs.file-max = 65536

      net.ipv4.ip_local_port_range = 9000 65000

      net.core.rmem_default = 4194304

      net.core.rmem_max = 4194304

      net.core.wmem_default = 262144

      net.core.wmem_max = 262144

       

      該參數(shù)保存在/etc/sysctl.conf 下,修改該文件不需要重啟OS,只需要使用如下命令:

      # /sbin/sysctl -p

       

      就可以讓修改的參數(shù)生效。

       

       

      2.  kernel.shmmax 參數(shù)

      2.1 說明

             SHMMAX Available physical memory Defines the maximum allowable size of one shared memory segment. The SHMMAX setting should be large enough to hold the entire SGA in one shared memory segment. A low setting can cause creation of multiple shared memory segments which may lead to performance degradation.

       

             Shmmax 是核心參數(shù)中最重要的參數(shù)之一,用于定義單個共享內(nèi)存段的最大值,shmmax 設(shè)置應(yīng)該足夠大,能在一個共享內(nèi)存段下容納下整個的SGA ,設(shè)置的過低可能會導(dǎo)致需要創(chuàng)建多個共享內(nèi)存段,這樣可能導(dǎo)致系統(tǒng)性能的下降 。

             SHMMAX 僅僅是在共享內(nèi)存段被創(chuàng)建的時候用來比較的一個數(shù)字,當(dāng)共享內(nèi)存段被一個進程(Process)創(chuàng)建,操作系統(tǒng)檢查是否被要求的共享內(nèi)存段的值大于shmmax 的值 ,如果是,那么將會拋出一個錯誤。這個時候系統(tǒng)會創(chuàng)建另外的一個或多個共享內(nèi)存段滿足進程的需求 。一般來說,共享內(nèi)存段個數(shù)和系統(tǒng)性能沒有太直接的關(guān)系,也不會對性能產(chǎn)生太大的影響。

       

             在實例啟動以及Server Process 創(chuàng)建的時候,多個小的共享內(nèi)存段可能會導(dǎo)致當(dāng)時輕微的系統(tǒng)性能的降低(在啟動的時候 需要去創(chuàng)建多個虛擬地址段,在進程創(chuàng)建的時候要讓進程對多個段進行“識別”,會有一些影響),但是其他時候都不會有影響。這意味著如果你的程序不是經(jīng)常Create Processes(以及Destroy Them,性能方面就不是考慮的問題。

       

           Oralce 建議 SHMMAX > SGA(SGA_MAX_SIZE),這樣在任何時候都不會有甚至輕微的性能下降的隱患。

       

      2.2 示例

             在上節(jié)說了,如果shmmax 小與SGA,Oracle 會創(chuàng)建多個共享內(nèi)存段,我們可以使用Ipcs -sa 查看看到共享內(nèi)存段個數(shù)。

       

      1)查看

      [root@rac01 ~]# cat /etc/sysctl.conf | grep kernel.shmmax
      kernel.shmmax = 20971520
      [root@rac01 ~]# ipcs -sa

      ------ Shared Memory Segments --------
      key shmid owner perms bytes nattch status
      0x00000000 65537 oracle 640 4194304 27
      0x00000000 98306 oracle 640 20971520 27
      0x00000000 131075 oracle 640 20971520 27
      0x00000000 163844 oracle 640 20971520 27
      0x00000000 196613 oracle 640 20971520 27
      0x00000000 229382 oracle 640 20971520 27
      0x00000000 262151 oracle 640 20971520 27
      0x00000000 294920 oracle 640 20971520 27
      0xd2776b04 327689 oracle 640 20971520 27

      ------ Semaphore Arrays --------
      key semid owner perms nsems
      0xfafd7074 360449 oracle 640 104

      ------ Message Queues --------
      key msqid owner perms used-bytes messages

      因為kernel.shmmax設(shè)置過小,導(dǎo)致分配了多個共享內(nèi)存段。


      下邊改大一些:
      [root@rac01 ~]# cat /etc/sysctl.conf | grep kernel.shmmax
      kernel.shmmax = 2147483648
      [root@rac01 ~]# sysctl -p
      [root@rac01 ~]# su - oracle
      [oracle@rac01 ~]$ sqlplus '/as sysdba'

      SQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 16 05:50:00 2009

      Copyright (c) 1982, 2005, Oracle. All rights reserved.

      Connected to:
      Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
      With the Partitioning, Real Application Clusters, Oracle Label Security, OLAP
      and Data Mining Scoring Engine options

      SQL> startup force
      ORACLE instance started.

      Total System Global Area 167772160 bytes
      Fixed Size 1218316 bytes
      Variable Size 104859892 bytes
      Database Buffers 58720256 bytes
      Redo Buffers 2973696 bytes
      Database mounted.
      Database opened.
      SQL> quit
      Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
      With the Partitioning, Real Application Clusters, Oracle Label Security, OLAP
      and Data Mining Scoring Engine options

      再看一下:
      [root@rac01 ~]# ipcs -sa

      ------ Shared Memory Segments --------
      key shmid owner perms bytes nattch status
      0xd2776b04 360449 oracle 640 171966464 27

      ------ Semaphore Arrays --------
      key semid owner perms nsems
      0xfafd7074 491521 oracle 640 104

      ------ Message Queues --------
      key msqid owner perms used-bytes messages
      只有一個內(nèi)存段分配了

       

      3.  kernel.shmall

       

             kernel.shmall 參數(shù)是控制共享內(nèi)存頁數(shù)。該參數(shù)大小為物理內(nèi)存除以pagesize;

       

      查看os系統(tǒng)頁的大小

      #getconf PAGESIZE

      4096

       

             這里顯示的pagesize 4k假設(shè)一個共享內(nèi)存段的最大大小是16G,那么需要共享內(nèi)存頁數(shù)是 16GB/4KB=16777216KB/4KB=4194304 (頁),也就是64Bit 系統(tǒng)下16GB 物理內(nèi)存,設(shè)置 kernel.shmall = 4194304 才符合要求,幾乎是原來設(shè)置2097152的兩倍。

       

       

      4. kernel.shmmni 參數(shù)

             shmmni 內(nèi)核參數(shù)是共享內(nèi)存段的最大數(shù)量(注意這個參數(shù)不是 shmmin,

      shmmni, shmmin 表示內(nèi)存段最小大小 )。shmmni 缺省值 4096 ,一般肯定是夠用了。

       

       

      5. fs.file-max 參數(shù)

             fs.file-max512 乘以 processes。

             128process,則file-max=512*128=65536。

       

       

      6.  Oracle 下需要做調(diào)整的參數(shù)

       

             Oracle 10g 中引入了一個非常重要的參數(shù):SGA_TARGET這也是Oracle 10g的一個新特性。自動共享內(nèi)存管理(Automatic Shared Memory Management ASMM),控制這一特性的,就僅僅是這個參數(shù)SGA_TARGE。設(shè)置這個參數(shù)后,你就不需要為每個內(nèi)存區(qū)來指定大小了。SGA_TARGET 指定了SGA 可以使用的最大內(nèi)存大小,而SGA 中各個內(nèi)存的大小由Oracle 自行控制,不需要人為指定。

             Oracle 可以隨時調(diào)節(jié)各個區(qū)域的大小,使之達到系統(tǒng)性能最佳狀態(tài)的個最合理大小,并且控制他們之和在SGA_TARGET 指定的值之內(nèi)。一旦給SGA_TARGET 指定值后(默認為0,即沒有啟動ASMM),就自動啟動了ASMM

      特性。

       

             10g 下設(shè)置 SGA_TARGET 之后啟動ASSM 特性之后, 只有以下的這些區(qū)的內(nèi)存大小動態(tài)共享起來:

      * Buffer cache (DB_CACHE_SIZE)

      * Shared pool (SHARED_POOL_SIZE)

      * Large pool (LARGE_POOL_SIZE)

      * Java pool (JAVA_POOL_SIZE)

      * Streams pool (STREAMS_POOL_SIZE)

       

             SGA 中的其他區(qū)域的內(nèi)存大小仍然是固定不共享的。它的含義和SGA_MAX_SIZE 的一樣,也表示SGA 最大的大小,于是它也就有了一個限制,那就是它的大小不能大于SGA_MAX_SIZE 的大小。

             Oracle10g 下, SGA_MAX_SIZE 仍然表示SGA 的大小的上限值,而SGA_TARGET SGA 的所有組件的大小的最大值之和,即當(dāng)SGA_TARGET< SGA_MAX_SIZE 的時候,oracle 就會忽略SGA_MAX_SIZE 的值,SGA_TARGET 也就成了SGA 的在此實例中的上限制,它能動態(tài)改變大小,但是不能夠大于SGA_MAX_SIZE 的值。

       

             當(dāng)SGA_TARGET< SGA_MAX_SIZE 時,實例重啟以后SGA_MAX_SIZE 就變成SGA_TARGET 的大小了。

       

             11g 中,這個SGA_TARGET 只能設(shè)置是等于SGA_MAX_SIZE 的大小了,設(shè)置比它小,oracle 會自動幫你調(diào)整,設(shè)置比它大,那還是出錯?,F(xiàn)在可以自己想想,oracleSGA_TARGET 的大小處理在往正確的簡單的方向前進中。

       

             SGA_TARGET 帶來一個重要的好處就是,能使SGA 的利用率達到最佳,從而節(jié)省內(nèi)存成本。因為ASMM 啟動后,Oracle 會自動根據(jù)需要調(diào)整各個區(qū)域的大小,大大減少了某些區(qū)域內(nèi)存緊張,而某些區(qū)域又有內(nèi)存空閑的矛盾情況出現(xiàn)。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多