Oracle Swap居高不下處理

2021-08-21 19:46:28 字數 1880 閱讀 1378

環境描述:

system: rhe5.3 x86_64bit

oracle:oracle 11.1.7.0

記憶體:8g

現像:現場運維發郵件回來前端應用緩慢,不時會丟擲異常!

分析:通過檢視伺服器程序使用情況發現一些程序使用記憶體相當高,通過vmstat 查詢,系統層面已經大量使用swap交換分割槽了。說明記憶體使用不足,系統層面反應也是比較緩慢

vmstat情況:

但檢視oracle程序查詢沒發現有消耗效能的sql,

調整:1:伺服器記憶體:

2:調整/dev/shm

3:調整核心引數

4:調整資料庫引數

5:監控db情況

先為兩台伺服器增加16g記憶體,輪流重啟伺服器,完成記憶體增加後,修改sga,hugepage size hugepage_setting.sh查詢出vm.nr_hugepages = 6146

節點正常,但節點2不正常,和未增加記憶體前一樣,swap交換分割槽被大量使用。

解決:通過分析及查詢資料發現hugepage 沒被使用

進一步分析 :還是與hugepage設定及系統引數有關:

hugepages配置

程序需要訪問記憶體的資料時,它的虛擬記憶體位址段先連線到page tables(page table是用來存放虛擬記憶體也和物理記憶體頁對應關係的記憶體結構),然後再連線到物理記憶體。所以在訪問記憶體時需要先訪問page tables得到虛擬記憶體和物理記憶體的對映關係,然後再訪問物理記憶體。page size越小,相應的記憶體結構也會越大,在rhel 系統中,預設為4k為乙個單位,則物理記憶體越大,page tables相對越大。無形增加程序掃瞄記憶體的成本。

當物理記憶體大於8g時,建議使用hugepages配置,hugepages的常見page size為2m,是4k size的500倍,所以可以大大減小page table的尺寸,提交掃瞄記憶體的效率。

同時cpu cache中有一部分tlb(translation lookaside buffer)用來存放部分page table以提高這種裝換的速度。因為page size變大了,所以同樣大小的tlb,所覆蓋的記憶體大小也變大了。提高了tbl命中率,也就是提高了位址轉換的速度。

hugepages配置方法:

1、在 /etc/security/limits.conf 增加memlock配置

* hard memlock unlimited

* soft memlock unlimited

2、利用官方的提供的指令碼hugepages_settings.sh[id 401749.1],計算需要配置的記憶體引數

$ ./hugepages_settings.sh  

......

press enter to proceed...

recommended setting: vm.nr_hugepages = 6146

3、修改/etc/sysctl.conf 的項vm.nr_hugepages=6146

sysctl -p;

sysctl -a|grep -i huge

4、關閉例項及群集,重啟系統。

5、對hugepages配置進行檢查:

$ grep -i huge /proc/meminfo 

hugepages_total:  6146

hugepages_free:     15

hugepagesize:     2048 kb

6、啟動例項及資料庫群集。

參考:hugepages on oracle linux 64-bit [id 361468.1]

shell script to calculate values recommended linux hugepages / hugetlb configuration [id 401749.1]

問題解決

頁數居高不下?再談Word「空行替換」

經過細心查詢,發現在用替換的辦法刪除空行時要注意兩個問題 1.分清檔案中用的是手動換行符 shift 回車 還是段落標記。p p 替換成 p 並不能替換所有的空行。如果檔案中用的是手動換行符,那麼就要用 l l 替換成 l 這裡用的不是1,而是l字母的小寫,也可以直接用替換對話方塊裡的 特殊字元 裡...

管理之困 居高不下的流動率

在 與熊共舞 中,作者列出了5 項核心風險,它們分別是 在這裡,人員流動被列為第三號核心風險。在國內也許上述排名會有所變化,但不管怎樣從短期視點來看,人員流失一定仍然是核心風險。從長期視點來看,人員流失的重要性則一定會排在第一位。在cocomoii中,人員流動被認為會對生產效能產生1.59倍的影響。...

undo表空間使用率99 居高不下

背景 兩套同樣的測試環境,一套資料庫undo使用率一直處於99 已經持續了很長一段時間,而另外一套幾乎為0 排查手段 整體undo使用情況 select b.tablespace name,nvl used undo,0 used undo m total undo total undo m tru...