關於aix的maxperm,minperm和lru_file_repage
轉載
關於aix的maxperm,minperm和lru_file_repage
aix記憶體管理中有幾個重要引數:maxperm,minperm,lru_file_repage,時間長了不用就容易忘掉它們到底會起什麼樣的作用,因此簡單總結一下( numperm表示當前系統的檔案頁數):
一、 當 lru_file_repage = 0 時:
當 numperm <= minperm,系統同時交換計算頁和檔案頁,而且根據lru原則優先交換未被引用的頁。
當 minperm < numperm <= maxperm, 系統只交換檔案頁。
當 numperm > maxperm,系統只交換檔案頁。
二、 當 lru_file_repage = 1 時:
當 numperm <= minperm,系統同時交換計算頁和檔案頁,而且根據lru原則優先交換未被引用的頁。
當 minperm < numperm <= maxperm,系統根據lru原則在計算頁和檔案頁中權衡,優先交換引用次數少的頁,檔案頁引用次數少就交換檔案頁,計算頁引用次數少就交換計算頁。
當 numperm > maxperm,系統只交換檔案頁。
因此一般的需要大量計算頁的伺服器(比如資料庫伺服器),有兩種設定:
早先是lru_file_repage = 1(aix5的預設值),而maxperm設得儘量小,例如 maxperm%=20。
現在還有一種是設定 lru_file_repage = 0(aix6的預設值),而minperm% = 5, maxperm% = 90。
AIX: Database performance gets slower the longer the database is running [ID 316533.1]
Oracle Server - Enterprise Edition - Version: 9.2.0.1 and later [Release: 9.2 and later ]
z*OBSOLETE: Bull Escala RL AIX (64-bit)
IBM AIX on POWER Systems (64-bit)
z*OBSOLETE: IBM AIX 4.3 Based Systems (64-bit)
IBM AIX on POWER Systems (32-bit)
IBM AIX Based Systems (64-bit)IBM AIX Based Systems (32-bit)Bull Escala RL AIX (64-bit)IBM AIX 4.3 Based Systems (64-bit)
Oracle databases running on AIX based systems.
Symptoms
Cause
It is likely that you have not tuned the AIX Virtual Memory Manager (VMM). The default values for the AIX VMM are generally not appropriate for use with relational databases. The default values for the AIX VMM will gradually allow up to 80% of physical memory to be used to buffer file I/O. Since Oracle is already buffering file I/O in the SGA, the same data is unnecessarily being buffered twice, and leaves only 20% of physical memory to run the Oracle database(s) and all other programs. This causes the majority of the Oracle database to be pushed out of physical memory to paging space, thus greatly impacting database performance.
The information in this article does not apply, or the impact will be much less, if you are using one or more of the following storage types for the database datafiles, because AIX does not buffer file I/O for these types:
Raw logical volumes, filesystems using the Concurrent I/O (CIO) or Direct I/O (DIO) option
If the database is in archive mode, and the archives are written to a filesystem that does not use CIO or DIO, then this article still applies, even if the datafiles are located on a raw logical volume or a filesystem using CIO or DIO.
Please note that tuning the AIX VMM is outside the scope of Oracle Support. You should not create an SR regarding information in this article as Oracle Support personnel are not familiar with tuning the AIX VMM. If you need help with checking, setting, or tuning the AIX VMM beyond what is covered in this article, you must contact your AIX systems administrator and/or IBM Support for further assistance.
Solution
To check whether your system is using the untuned default values for the AIX VMM, run the command:
/usr/sbin/vmo -a
If you do not have the /usr/sbin/vmo file you will need to have your AIX systems administrator load the AIX fileset "bos.perf.tune". The vmo command will list out all of the VMM parameters and their current values. The parameters you want to examine are:
MINPERM%, MAXPERM%, and MAXCLIENT%
Here is an example of the vmo report:
# vmo –a
memory_frames = 1572864
pinnable_frames = 1431781
maxfree = 1088
minfree = 960
minperm% = 20
minperm = 294356
maxperm% = 80
maxperm = 1177427
strict_maxperm = 0
maxpin% = 80
maxpin = 1258292
maxclient% = 80
lrubucket = 131072
…
The untuned default settings are MINPERM%=20%, MAXPERM%=80%, and MAXCLIENT%=80%. There is no "correct" value for these parameters and only extensive testing will reveal the optimal values. The optimal value may be different for different databases on the same system, so keep this in mind when tuning the VMM and choose values which work best for all of the databases you will be running on the system. Use the following values as a starting point:
MINPERM% = 10-15%, MAXPERM% = 20-30%, MAXCLIENT% = MAXPERM%
To get a snapshot of how much physical memory is being used by AIX to buffer file I/O, run the command:
/usr/bin/svmon -G
The svmon command is part of the same AIX fileset "bos.perf.tune" that vmo belongs to. The last line of the svmon output should be "in use". Add the values for "in use / pers" and "in use / clnt". Now divide the sum by the value for "memory / size". For best database performance, this value should generally not be higher than 30% (0.30).
Here is an example of the svmon output:
# svmon -G
size inuse free pin virtual
memory 131072 129432 1640 11704 50091
pg space 262144 100913
work pers clnt lpage
pin 11704 0 0 0
in use 47062 76126 6244 0
In this example, (in use / pers) 76126 plus (in use / clnt) 6244 equals 82370. 82370 divided by (memory / size) 131072 equals 0.628 or approximately 63% of physical memory being used by AIX to buffer file I/O. This indicates the AIX VMM needs to be tuned to allow more physical memory to be used by Oracle and other processes, and less physical memory to be used to buffer file I/O.
Remember that although AIX associates this memory with the Oracle processes (because Oracle requested the file I/O), all of the memory used to buffer file I/O is completely allocated and controlled by AIX, not Oracle. If you need help checking, setting, or tuning the AIX VMM, contact your AIX systems administrator and/or IBM Support. You may also want to review the AIX "Performance Management Guide" by IBM linked in the References section below.
---
UPDATE: After this article was originally written, IBM has introduced a new VMM parameter which is also very helpful with this issue. The parameter is...
lru_file_repage
The default value is "1", but it is recommended to set this to "0". This setting hints to the VMM to only steal file pages (from the AIX file buffer cache) and leave the computational pages (from the SGA) alone.
This new lru_file_repage parameter is only available on AIX 5.2 ML04 or higher and AIX 5.3 ML01 or higher.
NOTE: If you are using an older AIX system which does not support the lru_file_repage parameter, then you must use the "legacy" settings above. If you are using a newer AIX system which does support the lru_file_repage parameter, then you should use the revised settings below instead.
strict_maxclient=1 (default)
lru_file_repage=0
maxperm%=90
minperm%=5 (physical RAM <32 GB)
minperm%=10 (physical RAM >32 GB but <64 GB)
minperm%=20 (physical RAM >64 GB)
v_pinshm=1
maxpin%=percent_of_real_memory
(IBM does not recommend decreasing the maxpin% value. See the "Support for pinned memory" link in the References section below.)
and
Set Oracle database parameter LOCK_SGA to TRUE in the pfile/spfile
and
Sum of all SGAs on the system do not exceed approximately 60% of physical memory
------------------------------------------------------------------------
Accessibility of Links to External Web Sites
or organizations that Oracle Corporation does not own or control.
Oracle Corporation neither evaluates nor makes any representations
regarding the accessibility of these Web sites.
------------------------------------------------------------------------
References
NOTE:123754.1 - AIX: Determining Oracle Memory Usage On AIX
VMM Tuning Tip: Protecting Computational Memory at http://www.ibm.com/developerworks/wikis/download/attachments/53871915/VMM+Tuning+Tip+-+Proctecting+Comp+Memory.pdf?version=2
AIX 5.3 Peformance Mangement Guide at
Configuring IBM General Parallel File System (GPFS) with Oracle RAC at
Optimizing AIX 5L performance: Tuning your memory settings at http://www.ibm.com/developerworks/views/aix/libraryview.jsp?search_by=Tuning+your+memory+settings
Support for pinned memory at
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-741476/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- minperm%, maxperm%和maxclient%client
- AIX maxperm引數導致監聽問題AI
- IBM AIX下的lru_file_repage引數解釋(轉)IBMAI
- 關於aix的系統升級AI
- 關於aix, linux下的shell環境AILinux
- 關於AIX雙網路卡繫結AI
- 關於AIX上VMO調整引數的若干說明AI
- AIX上關閉和啟動X serverAIServer
- AIX 關機命令AI
- 關於imp和exp的有關理解
- AIX aio與listener 的關係AI
- AIX檔案系統和邏輯卷關係AI
- 關於Fork和Malloc的思考
- 關於Oracle的BLOB和CLOBOracle
- AIX下安裝RAC 關於 reserve_lock(reserve_policy)AI
- 關於表空間和表的關係
- AIX相關管理命令AI
- aix關閉屏保功能AI
- AIX 下關日誌燈的方法AI
- 關於PR 和PO關係
- AIX系統中Audit系統的功能和概念,以及相關的命令AI
- 關於Session和CookieSessionCookie
- 關於ASMM和AMMASM
- 關於BOOT和DUMPboot
- 關於informix和oracleORMOracle
- 關於rpc的整理和理解RPC
- 關於HashMap和Hashtable的區別HashMap
- 關於Gson和FastJson的坑ASTJSON
- 關於beego和gin的對比Go
- 關於OnEraseBkgnd和OnPaint的轉載AI
- 關於SQL Server的WITH(NOLOCK)和(NOLOCK)SQLServer
- 關於sessionbean的激化和鈍化SessionBean
- 關於Struts的學習和使用
- 關於switchover的流程和補充
- 關於DOCTYPE的使用和說明
- 關於資料的管理和挖掘
- 關於MNN的OPENCL和Vulkan支援
- 關於Oracle的redo和undo的理解Oracle