記憶體最佳化

weifenghq發表於2007-01-16

記憶體訪問的衝突出現在當程式申請的記憶體超過系統的實體記憶體總量時,為了處理這種情況,系統將程式與資料在記憶體和硬碟間進行交換。

記憶體訪問的衝突出現在當程式申請的記憶體超過系統的實體記憶體總量時,為了處理這種情況,系統將程式與資料在記憶體和硬碟間進行交換。

控制記憶體交換操作(Paging)
大量的記憶體交換操作會極大地影響系統的效能,尤其是在當資料庫檔案建立在檔案系統上時(JFS and JFS2)。在這種情況下經常訪問的資料,即在SGA中存在,也同樣在檔案的快取中存在。這種相同的資料在記憶體中快取兩次的情況,會降低記憶體的使用效率,從而使記憶體頻繁進行交換操作,造成系統的I/O瓶頸,降低整個系統的效能。

調整AIX上的檔案快取
在AIX上,可以透過vmtune命令中的MINPERM和MAXPERM引數,調整系統檔案快取來控制記憶體交換操作,MINPERM和MAXPERM引數的調整應遵照以下的原則:

  • 當記憶體中的檔案快取頁在MINPERM以下時,記憶體頁交換演算法同時交換檔案快取頁和程式頁(computational pages)
  • 當記憶體中的檔案快取頁在MAXPERM以上時,記憶體頁交換演算法只交換檔案快取頁。
  • 當記憶體中的檔案快取頁在MINPERM和MAXPERM之間時,記憶體頁交換演算法通常只交換檔案快取頁,但如果檔案快取頁的交換率大於程式頁時,程式頁也同樣被交換。

MINPERM和MAXPERM引數的預設值
MINPERM = ((number of memory page) - 1024)*0.2
MAXPERM = ((number of memory page) - 1024)*0.8
可以用以下命令將MINPERM設為5%的記憶體頁,而MAXPERM設為20%的記憶體頁。

svmon -G檢視記憶體的總體使用情況

svmon -Put 50 檢視佔用記憶體最大的50個程式

svmon -dU sybaes檢視sybase使用者佔用記憶體的情況和這個使用者所有程式的情況

[@more@]

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

相關文章