應用服務器從源庫中讀取數據再導入到目標數據庫,已經好幾天執行失敗了,從程序的日誌中能夠看到SQL30081N的錯誤,運程服務器已經中斷鏈接,今天發現db2diag.log首次報出了OS級別的Error,SIGNALDANGER,網上說是page space不足了。通過學習aix的內存機制,寫下心得:數據庫
Aix經過頁來管理內存 VMM的職責緩存
頁映射物理地址,也映射虛擬內存服務器
Page space(虛擬內存,交換空間)是用來存放暫時不須要CPU處理的數據的地方。安裝系統時自動規定邏輯卷hd6存放page space。ide
先把頁分2種,工做存儲分頁(邏輯數據,進程數據,堆棧,共享內存,內核數據)性能
進程要退出時釋放掉學習
若被修改過,須要頁交換時(爲其餘進程等讓位置),放到page spacespa
永久存儲分頁(文件數據,緩存在內存中的文件)日誌
若被修改過,須要交換時,寫入到文件系統中,若未修改,直接拋棄orm
永久存儲分頁進程
分爲客戶端client JFS2文件系統 如今文件系統都爲JFS2了
非客戶端 JFS 文件系統
以上是根據緩存的類型分出的頁面淘汰方式
Aix有本身的頁面類型標準以下:
計算型:comp ———————— 都是工做存儲分頁 工做存儲分頁也都是計算型的
非計算性(也被稱爲文件型)noncomp :正在進行讀取 寫入的文件數據
注:永久存儲分頁能夠使計算型的,也能夠是非計算型的
涉及到的查詢系統性能命令
#lsps –a
#svmon 虛擬內存快照
#vmstat
#topas
能夠發現以下關係 顏色相同爲同樣的:
# svmon -G
size inuse free pin virtual
memory 8388608(物理內存) 8162617 225991 666479 2540070
pg space 1048576 7317
work pers clnt other
pin(in use的子集,固定的) 236541 0 0 429938
in use 2539866(工做存儲分頁) 0 5622751(客戶端分頁數)
# lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto Type
hd6 hdisk0 rootvg 4096MB 1 yes yes lv
# vmstat
System Configuration: lcpu=8 mem=32768MB
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
1 1 2540111 226003 0 0 0 3 7 0 127 14803 1163 3 1 96 0
Avm含義是什麼呢
官方解釋:
Memory: information about the usage of virtual and real memory. Virtual pages are considered active if they have been accessed. A page is 4096 bytes.
avm Active virtual pages.
fre Size of the free list. Note: A large portion of real memory is utilized as a cache for file system data. It is not unusual for the size of the free list to remain small.
系統中avm大約9.6G,9.6G怎麼來的呢?avm 列顯示了訪問的全部虛擬內存,即便它沒有被調出。該頁映射到了memory,同時也映射到了page space。因此它比4G還大。
從# vmstat –v中也看出
71.1 numperm percentage非計算性分頁的數目佔得挺高
71.1 numclient percentage
5612632 client pages
參考資料:http://www.ibm.com/developerworks/cn/aix/library/au-cn-pagingspace/
參考資料中命令topas有介紹noncomp使用率的問題
總結下:系統中文件內存仍是偏大的,從topas中能夠看出,性能分析命令也能夠看得出來,aix系統認爲內存閒着也沒用,當緩存使吧,程序中斷後,也沒釋放,下次再導入數據時aix不會那麼傻吧,除了必要的頁換到pagespace,爲了更大的內存,應該會拋棄沒必要要的頁吧,如今打算增大pagespace,去看看程序運行如何。