1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網營銷解決方案
      個人筆記:ORACLE大頁內存hugepage和SGA、PGA的經驗,SGA并不是越大越好

      背景:ORACLE 11.2,SGA 64G,PGA 8G,壓測出現(xiàn)操作系統(tǒng)內存耗盡
      WARNING: Heavy swapping observed on system in last 5 mins.
      pct of memory swapped in [1.94%] pct of memory swapped out [1.32%].

      瑞昌ssl適用于網站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

      分析:
      1、連接到數(shù)據(jù)庫的每個系統(tǒng)連接進程大概會占用10M左右,1000個連接那么也就接近10G了;
      2、在32位系統(tǒng)下,一個進程訪問1GB的內存,會產生1M(110241024/44/1024/1024)的頁表,如果是在64位系統(tǒng),將會增大到2M。
      SGA設置為64G,有1000個ORACLE用戶進程(在linux中每個進程頁表獨立,都有自己的頁表),64位LINUX的系統(tǒng)上,最大的頁表占用內存為:64
      2*1000/1024=125G;

      解決方法:
      1、控制SGA大小, sga+pga最好控制在50%物理內存以內,pga內存不要操作sga內存的20%;
      2、當主機的物理內存為64G,設SGA>=32G時,建議開啟大頁;
      內存都是以頁的形式劃分的,默認情況下每頁是4K,這就意味著如果物理內存很大,則映射表的條目將會非常多,會影響CPU的檢索效率。因為內存大小是固定的,為了減少映射表的條目,可采取的辦法只有增加頁的尺寸。
      在Linux中配置hugepage可以提高oracle的性能,減少oracle sga的頁交換,類似于aix中的lagepage。

      設置方法(參考第三方材料):
      1、關閉Oracle Database 11g中的AMM(Automatic Memory Management),即把兩個參數(shù)MEMORY_TARGET / MEMORY_MAX_TARGET設為0
      如果alter system set MEMORY_MAX_TARGET=0 scope=spfile;重啟后發(fā)現(xiàn)沒有改為0,可以alter system reset memory_max_target; 來設置

      2、參考metalink(文檔 ID 401749.1)提供的腳本,計算hugepages的大小

      3、對hugepages_settings.sh這個腳本授可執(zhí)行的權限
      chmod +x hugepages_settings.sh

      4、執(zhí)行執(zhí)行hugepages_settings.sh得到建議值
      得出大頁的大小為1028頁(注:一頁為2M,這個值不可改,1028*2M=2056M),實際上hugepages與參數(shù)sga_max_size有關,比sga_max_size的值稍微大一點點(比SGA_MAX_SIZE最少要多加一頁,2M的頁不要分配超過sga_max_size太多,會造成內存的浪費)
      注意:使用Hugepage內存是共享內存,它會一直keep在內存中的,不會被交換出去,也就是說使用hurgepage的內存不能被其他的進程使用,所以,一定要合理設置這個值,避免造成浪費。對于只使用Oracle的服務器來說,把Hugepage_pool設置成大于SGA大小才能被Oracle使用。
      SQL>show parameter sga_max_size
      NAME TYPE VALUE


      sga_max_size big integer 2G

      5、設置hugepages,在內核參數(shù)中添加一行,vi /etc/sysctl.conf
      vm.nr_hugepages = 1028

      6、修改內核參數(shù)立即生效
      [root@el5 ~]# sysctl -p

      7、別忘記設定內存鎖memlock,以K為單位,memlock數(shù)量要大于大頁的數(shù)量,當然也要大于sga_max_size,這里設定為2056000,設置為-1,表示不限制。
      [root@el5 ~]# vi /etc/security/limits.conf
      oracle soft memlock 2056000
      oracle hard memlock 2056000

      8、檢查limits是否正確
      [root@el5 ~]# su - oracle
      [oracle@el5 ~] ulimit -l
      2056000

      9、重啟數(shù)據(jù)庫

      10、查看大頁,已被使用
      [oracle@el5 ~]$ watch -n1 'cat /proc/meminfo |grep -i HugePage'
      HugePages_Total: 總共頁
      HugePages_Free: 空閑頁
      HugePages_Rsvd: 操作系統(tǒng)承諾給Oracle預留頁
      Hugepagesize: 2048 kB 每頁是2M,不可修改

      如:
      HugePages_Total: 1028 ---總共1028頁
      HugePages_Free: 869 ---空閑869 頁,即當前大頁被使用了1028-869=159頁,即被用了1592M=118M,小于sga_target。
      HugePages_Rsvd: 842 ---操作系統(tǒng)承諾給Oracle預留842頁,即842
      2M=1684M(1684+118==SGA_MAX_SIZE)

      使用了hugepage之后,SGA就默認pin在內存里了,那么就不用lock sga了。接下來我們研究一下參數(shù):pre_page_sga,這個參數(shù)默認是false,我把它打開。
      sys@OCM> alter system set pre_page_sga=true scope=spfile;
      sys@OCM> show parameter sga
      NAME TYPE VALUE


      lock_sga boolean FALSE
      pre_page_sga boolean TRUE
      sga_max_size big integer 2G
      sga_target big integer 1G
      HugePages_Total: 1028 ---總共1028頁
      HugePages_Free: 548 ---空閑548頁,即當前大頁被使用了1028-548=480頁,即被用了4802M=960M,約等于sga_target,參數(shù)pre_page_sga起作用了。
      HugePages_Rsvd: 521 ---操作系統(tǒng)承諾給Oracle預留521頁,即521
      2M=1042M(理解為sga_max_size-sga_target)
      Hugepagesize: 2048 kB --每頁是2M,不可修改

      參考metalink:USE_LARGE_PAGES To Enable HugePages (文檔 ID 1392497.1)

      補充關于內存申請的OverCommit
      Linux下的OverCommit機制,主要是為了應對可能的異常的大量內存申請對OS本身造成沖擊。
      Linux有三種OverCommit機制,可以通過:/proc/sys/vm/overcommit_memory來配置,三種配置的具體含義:
      0:啟發(fā)式策略,后果比較嚴重的Overcommit將不能成功,而輕微的Overcommit將被允許。
      1:永遠允許Overcommit,這種策略適合那些不能承受內存分配失敗的應用,比如某些科學計算應用。
      2:永遠禁止Overcommit,在這個情況下,系統(tǒng)所能分配的內存不會超過swap+RAM*系數(shù)(/proc/sys/vm /overcmmit_ratio,默認50%,你可以調整),如果這么多資源已經用光,那么后面任何嘗試申請內存的行為都會返回錯誤,這通常意味著此時 沒法運行任何新程序。


      本文標題:個人筆記:ORACLE大頁內存hugepage和SGA、PGA的經驗,SGA并不是越大越好
      當前鏈接:http://www.ef60e0e.cn/article/gjopoh.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        双峰县| 利川市| 吉木萨尔县| 积石山| 新绛县| 沛县| 即墨市| 虎林市| 凤山县| 滕州市| 秦安县| 徐水县| 云梦县| 宁安市| 抚远县| 丹寨县| 新沂市| 宣城市| 苍南县| 华宁县| 固安县| 巩义市| 孝义市| 杨浦区| 福清市| 卢湾区| 交口县| 百色市| 兴安县| 高密市| 都昌县| 香河县| 禹城市| 光山县| 伊金霍洛旗| 鹤壁市| 彰武县| 巨鹿县| 五指山市| 长沙县| 昌乐县|