[20170126]hugepage與記憶體碎片.txt

lfree發表於2017-01-26

[20170126]hugepage與記憶體碎片.txt

--昨天給一臺配置很低的機器安裝dg(記憶體4G),同事安裝完作業系統回家了,剩下的安裝配置dg工作由我來完成.
--完成後我想看看是否可以使用hugepage,遇到一些問題,做一個測試:

1.環境:
$ cat /etc/issue
Oracle Linux Server release 5.9
Kernel \r on an \m

2.我的配置資料使用記憶體如下:
SYS@xxxxxxdg> show sga
Total System Global Area 1039765504 bytes
Fixed Size                  2234800 bytes
Variable Size             352323152 bytes
Database Buffers          679477248 bytes
Redo Buffers                5730304 bytes

SYS@xxxxxxdg> show parameter sga_
NAME         TYPE         VALUE
------------ ------------ --------
sga_max_size big integer  996M
sga_target   big integer  0

--//這樣配置vm.nr_hugepages = 520就足夠了.

3.我執行如下:

# sysctl -p
# sysctl vm.nr_hugepages
vm.nr_hugepages = 183

--//檢查發現實際上僅僅得到183.到底那裡配置錯了.
--//仔細想想不對,機器配置記憶體太小,一定是無法找到對應大小的記憶體.

--//而實際free顯示記憶體是足夠的,估計記憶體碎片,無法滿足這個數量.本來想重啟機器,想想太複雜,我沒有進入機房的權利,如果重啟出問
--//題,這個大過年簡直是沒事找事.

$ free -m
             total       used       free     shared    buffers     cached
Mem:          3951       1469       2482          0          9        168
-/+ buffers/cache:       1291       2659
Swap:        10236         62      10173

--//我停止資料庫監聽(資料庫已經關閉).依然無法獲得足夠的數量hugepages.

# echo 3 >| /proc/sys/vm/drop_caches
# sysctl vm.nr_hugepages
vm.nr_hugepages = 328
--我停止許多不需要的服務sendmail....,僅僅回收:
# sysctl vm.nr_hugepages
vm.nr_hugepages = 381

--繼續看不順眼的服務全部停止,注意停止後還必須使用ntsys補選上相應的服務(注意做好記錄,這步很重要,許多服務我自己也不是很了
--解).最後:

# echo 3 >| /proc/sys/vm/drop_caches
# sysctl vm.nr_hugepages
vm.nr_hugepages = 520

# cat /proc/meminfo  | grep -i huge
HugePages_Total:   520
HugePages_Free:    520
HugePages_Rsvd:      0
Hugepagesize:     2048 kB

--//終於達到需求了.啟動dg,檢查alert*.log檔案:

****************** Large Pages Information *****************
Total Shared Global Region in Large Pages = 998 MB (100%)
Large Pages used by this instance: 499 (998 MB)
Large Pages unused system wide = 21 (42 MB) (alloc incr 4096 KB)
Large Pages configured system wide = 520 (1040 MB)
Large Page size = 2048 KB
***********************************************************

$ cat /proc/meminfo | grep -i huge
HugePages_Total:   520
HugePages_Free:    223
HugePages_Rsvd:    202
Hugepagesize:     2048 kB

--//現在資料庫終於可以使用hugepages了.剩下等放假回來再說....

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2132921/,如需轉載,請註明出處,否則將追究法律責任。

相關文章