HP UX H4262S 效能管理和最佳化整理 記憶體管理一

sonsunny發表於2008-09-05

簡介

主要從九個方面進行描述

1. 1)HP-UX系統怎麼執行記憶體管理

2. 2)涉及記憶體管理的主要效能問題描述

3. 3)描述 UNIX Buffer Cache

4.

[@more@]4)描述 sync 程式

5. 5)識別記憶體瓶頸的徵兆

6. 6) 識別全域性和程式記憶體指標

7. 7) 用效能分析工具分析記憶體管理問題

8. 8)描述恰當的記憶體瓶頸的更改措施

9. 9)描述serialize命令的功能

記憶體管理理解

我們透過TOPvmstat 等記憶體檢視命令總有一個VM值,這個值的大小就是:

Virtual memory=physical memory+swap space at disk

記憶體管理是kernel的一個子系統 ,它負責管理計算機的主記憶體(實體記憶體 RAM

Process(程式) 需要空間的時候,kernel 就會分配memory page (預設大小4kb)給程式,當主記憶體(實體記憶體)free空間不夠的時候,kernel 將會把一些pages 複製到swap space ,來釋放主記憶體的空間,因此Swap space 可以看著為主記憶體的一個擴充套件

注:當進入到swap space 程式需要執行時,必須要被重新page in 到主記憶體後,才能執行。

怎樣確保主記憶體有最小的free 空間呢?

透過kernel 透過vhand 守護程式來搞定這件事情。

Vhand 守護程式負責保持對主記憶體有一個最小的free空間。透過監控未使用的pages,儘量保持freepages數量大於某個閥值。Kernel透過paging deactivation的綜合方式來進行free memory數量的管理。

Free memory的大小分別透過三個閥值進行確認,三個閥值分別為:LOTSFREE ,DESFREE,MINFREE

free memory 大於 LOTSFREE 將不產出paging

free memory 小於LOTSFREE 將產出paging

free memory 小於 DESFREE 這個過程不是一個穩定的過程,相比較開始時的paging 頻率,此時的paging的頻率將大大的提高,直到free memory 大於 DESFREE

free memory 小於MINFREE

一些process (程式)將deactivation,當一個process deactivation process 將被放入deactivation queue(佇列),vhand 守護程式將page out處於deactivation queue process 的所有pages(包括u-area swaping swap partition

free memory 大於 MINFREE,這些process 又將自動的被reactivate。當process reactivate後,僅僅 u-area 立即被page in。別的pages 將在需要時候才能被faulted in

注:HP-UX 11.00 LOTSFREE ,DESFREE,MINFREE 值是可以透過核心引數調整的

在早於HP-UX 11.00版本LOTSFREE ,DESFREE,MINFREE值是不能手工調整的,都是使用HP 的推薦值。

Buffer Cache

因為硬碟通常是瓶頸,系統儘量減少硬碟的訪問次數。因此大部分常訪問的檔案就快取在記憶體的某個區域,這個區域就叫buffer cache

只要記住buffer cache如下幾條描述,就很明白了。

Buffer cache 用來從硬碟快取大量的常用訪問檔案

Buffer cache 僅僅適用於檔案系統訪問,不適用於裸裝置。

Buffer cache 的值透過核心引數 dbc­_min_pct dbc_max_pct進行控制

Buffer cache 加速了檔案系統的訪問速度。

Buffer cache 的值是可變化的,變化範圍在dbc­_min_pct dbc_max_pct之間。

當需要快取更多的檔案時,buffer cache 將增大,但是不能超過dbc_max_pct設定值(以實體記憶體的百分比計算)。

當系統別的應用需要更多的記憶體時,buffer cache 也可以適當的減小。但是不能少於dbc_min_pct設定值(以實體記憶體的百分比計算)。

記住:通常一個東西都具有雙面性的,我們不要只記得buffer cache 大點的好處,其實害處也是有的。

通常一個較大的buffer cache 可以快取更多的檔案,它將縮短檔案系統的訪問時間,但是這將耗費更多的記憶體,從而別的應用使用的記憶體將減少

注意:

如果buffer cache 設定過大,將可能造成應用突然中斷,因為此時在進行buffer cache 檔案到硬碟的存寫。

2. Buffer cache 的值透過核心引數 dbc­_min_pct dbc_max_pct進行控制的前提是bufpagesnbuf 核心引數的值設定為“0”

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

相關文章