vmtune vmo ioo for oracle


 
Thread Tools Search this Thread
Operating Systems AIX vmtune vmo ioo for oracle
# 1  
Old 02-22-2009
vmtune vmo ioo for oracle

Hello,

My old AIX version is having the following in the script -- so whenever the system reboots -- the following is set:

vmtune -f 480 -F 512 -R 32 -P 30 -p 10

Now, we have a new P-series system which has AIX 5.3 ; As i understand that vmtune is no longer supported on AIX 5.2 and above ;

As per the document pSeries and AIX Information CenterI have translated the vmtune to
vmtune -f 480 -F 512 -R 32 -P 30 -p 10
-f 480 = vmo -o minfree=480
-F 512 = vmo -o maxfree=512
-p 10 = vmo -o minperm%=10
-P 30 = vmo -o maxperm%=30



-R 32 = ioo -o maxpgahead=32

My question: are these values permanent or do i need to put them in the script ?

2) How can I make them permanent ?
# 2  
Old 02-22-2009
Just add the -p option to the command. So command
# vmo -p -o minfree=480 -o maxfree=512 -o minperm%=10 -o maxperm%=30
will both set the vmm options and make them permanent at the same time.

However, chances are that the old values from the old AIX and the old haredware are inapropriate for your new system. Because:
  • minfree/maxfree changed from a per system setting to a per cpu setting and probably is way too low anyway.
  • maxperm% must go with maxclient%
  • lru_file repage is available with current 5.3 TL and depending on your application your minperm%/maxperm% values might be not optimal
  • maxpageahead may be wrong if you changed from jfs to jfs2. In this case j2_maxPageReadAhead=32 is what you want.
to name just four things that come to mind without digging too much into the details.
# 3  
Old 02-24-2009
Just have queary ? How can we know what maxperm/minperm or lru_file setting should be there for optimal performance. Is there any tool which can help to check it.
# 4  
Old 02-24-2009
Having maxperm% and maxclient% around 30 is an old way of tuning. As shockneck said, lru_file_repage is being used since some time now and while using this, the maxperm% and maxclient% are usually kept high like 80 or 90 percent.

For an Oracle server you should have something like this:
Code:
vmo -p -o lru_file_repage=0

So it will only throw away cached files to get free pages, as long as it doesn't get below minperm when it will start to steal everything to get free memory. For that cause you might use these settings as well as a start:
Code:
maxperm%=80
maxclient%=80
minperm%=5

If you had paging, you can easy see it with "vmstat 1" for example (pi/po column). It takes effect immediately, but you might have to wait some time until the system calmed down and has cleaned up the memory.

Also you should have legacy async i/o (AIO) activated and monitor how many servers are being used with nmon maybe (not the number how many have been started) and how many async i/o requests appear (iostat -A).

You got to monitor your system if the changes bring a positive effect.

Also you might have a look with vmstat -v if any fsbufs, psbufs etc. are being blocked and increase the values which are effective after a remount of the FSes.

Here is a very good initial tuning guide which I really recommend:
Jaqui's AIX Performance and Security Blog

Last edited by zaxxon; 02-24-2009 at 10:32 AM..
# 5  
Old 03-01-2009
# 6  
Old 03-03-2009
Thanks for the reply zaxxon and shockneck.. I appreciate it.

I have set the parameters like this as per your recommendations:

root@ebtstdb on / # vmo -p -o minfree=480 -o maxfree=512 -o minperm%=5 -o maxperm%=80 -o maxclient%=80
Setting maxfree to 512 in nextboot file
Setting minfree to 480 in nextboot file
Setting minperm% to 5 in nextboot file
Setting maxperm% to 80 in nextboot file
Setting maxclient% to 80 in nextboot file
Setting maxfree to 512
Setting minfree to 480
Setting minperm% to 5
Setting maxperm% to 80
Setting maxclient% to 80

I have not set the j2_maxPageReadAhead=32 or vmo -p -o lru_file_repage=0 yet..

Before i do that, could you analyze the output of vmstat and (iostat -A).


root@ebtstdb on / # vmstat 1

System configuration: lcpu=2 mem=12288MB ent=0.90

kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------------------
r b avm fre re pi po fr sr cy in sy cs us sy id wa pc ec
0 0 1138683 172987 0 0 0 0 0 0 14 320 206 0 0 99 0 0.01 1.1
0 0 1138683 172987 0 0 0 0 0 0 12 353 269 1 0 99 0 0.01 1.3
0 0 1138683 172987 0 0 0 0 0 0 9 373 271 1 0 99 0 0.01 1.1
0 0 1138683 172987 0 0 0 0 0 0 6 191 203 0 0 99 0 0.01 0.7
0 0 1138683 172987 0 0 0 0 0 0 11 271 177 0 0 99 0 0.01 0.7
0 0 1138683 172987 0 0 0 0 0 0 14 264 238 0 0 99 0 0.01 1.0
0 0 1138683 172987 0 0 0 0 0 0 11 214 218 0 0 99 0 0.01 0.9
0 0 1138683 172987 0 0 0 0 0 0 12 203 213 0 0 99 0 0.01 1.0
0 0 1138683 172987 0 0 0 0 0 0 11 81 181 0 0 99 0 0.01 0.7
0 0 1138682 172988 0 0 0 0 0 0 12 319 198 0 0 99 0 0.01 1.0
0 0 1138682 172988 0 0 0 0 0 0 10 170 203 0 0 99 0 0.01 0.8
0 0 1138682 172988 0 0 0 0 0 0 10 56 183 0 0 99 0 0.00 0.5
0 0 1138682 172988 0 0 0 0 0 0 11 122 189 0 0 99 0 0.01 0.6
0 0 1138682 172988 0 0 0 0 0 0 8 68 171 0 0 99 0 0.00 0.4

vmstat -v
root@ebtstdb on / # vmstat -v
3145728 memory pages
3020522 lruable pages
172995 free pages
2 memory pools
721813 pinned pages
80.0 maxpin percentage
5.0 minperm percentage
80.0 maxperm percentage
62.0 numperm percentage
1873236 file pages
0.0 compressed percentage
0 compressed pages
62.0 numclient percentage
80.0 maxclient percentage
1873236 client pages
0 remote pageouts scheduled
14856 pending disk I/Os blocked with no pbuf
57593 paging space I/Os blocked with no psbuf
2228 filesystem I/Os blocked with no fsbuf
33150 client filesystem I/Os blocked with no fsbuf
9204 external pager filesystem I/Os blocked with no fsbuf
0 Virtualized Partition Memory Page Faults
0.00 Time resolving virtualized partition memory page faults
root@ebtstdb on / #


root@ebtstdb on / # iostat -A

System configuration: lcpu=2 drives=2 ent=0.90 paths=2 vdisks=2

aio: avgc avfc maxg maif maxr avg-cpu: % user % sys % idle % iowait physc % entc
0 0 28 0 4096 1.5 1.1 97.0 0.3 0.0 2.8

Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk3 2.7 2237.8 73.2 26405634 1031949076
hdisk0 0.3 5.5 0.8 671469 1951168
root@ebtstdb on / #


topas
Topas Monitor for host: ebtstdb EVENTS/QUEUES FILE/TTY
Tue Mar 3 17:45:49 2009 Interval: 2 Cswitch 205 Readch 1274
Syscall 170 Writech 1638
CPU User% Kern% Wait% Idle% Physc Entc Reads 24 Rawin 0
ALL 0.3 0.5 0.0 99.3 0.01 1.0 Writes 25 Ttyout 370
Forks 0 Igets 0
Network KBPS I-Pack O-Pack KB-In KB-Out Execs 0 Namei 0
lo0 5.3 27.5 27.5 2.6 2.6 Runqueue 0.0 Dirblk 0
en0 1.6 11.5 1.0 1.2 0.4 Waitqueue 0.0

Disk Busy% KBPS TPS KB-Read KB-Writ PAGING MEMORY
hdisk3 0.0 0.0 0.0 0.0 0.0 Faults 0 Real,MB 12288
hdisk0 0.0 0.0 0.0 0.0 0.0 Steals 0 % Comp 34.4
PgspIn 0 % Noncomp 59.9
Name PID CPU% PgSp Owner PgspOut 0 % Client 59.9
topas 1536138 0.2 2.0 root PageIn 0
oracle 712804 0.0 5.4 oratst PageOut 0 PAGING SPACE
getty 237726 0.0 0.4 root Sios 0 Size,MB 512
FNDLIBR 1183992 0.0 8.9 appltst % Used 59.9
oracle 483570 0.0 13.5 oratst NFS (calls/sec) % Free 41.1
oracle 1204322 0.0 5.5 oratst ServerV2 0
gil 61470 0.0 0.9 root ClientV2 0 Press:
oracle 1507572 0.0 5.3 oratst ServerV3 0 "h" for help
PALIBR 1544202 0.0 1.5 appltst ClientV3 0 "q" to quit
oracle 1024250 0.0 5.9 oratst
oracle 749682 0.0 6.2 oratst
oracle 1425596 0.0 6.1 oratst
aioserve 249972 0.0 0.4 root
java 225438 0.0 36.8 root
oracle 217300 0.0 5.3 oratst
oracle 1532142 0.0 5.4 oratst
oracle 606370 0.0 8.7 oratst
pcmsrv 254094 0.0 1.0 root
oracle 1237104 0.0 5.4 oratst
oracle 552964 0.0 8.4 oratst


root@ebtstdb on / # svmon
size inuse free pin virtual
memory 3145728 2973136 172592 721817 1138833
pg space 131072 77867

work pers clnt other
pin 607315 0 0 114502
in use 1068682 0 1904454

PageSize PoolSize inuse pgsp pin virtual
s 4 KB - 2892960 77867 665801 1058657
m 64 KB - 5011 0 3501 5011
root@ebtstdb on / #



I am using JFS2 ... I have not set the j2_maxPageReadAhead=32 or vmo -p -o lru_file_repage=0 yet..


Any suggestions.. ?
# 7  
Old 03-03-2009
Quote:
Originally Posted by filosophizer
[...]
I have not set the j2_maxPageReadAhead=32 or vmo -p -o lru_file_repage=0 yet..

Before i do that, could you analyze the output of vmstat and (iostat -A).
[...]
Sorry, no. Changing the minperm/maxperm settings the way you did does REQUIRE to change the lru_file_repage algorithm also to really make sense. Set the lru_poll_intervall to 10 if it is at a lower value.
Then put some load on your system by running your application, watch memory usage and come back.

Last edited by shockneck; 03-03-2009 at 11:24 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

2 More Discussions You Might Find Interesting

1. UNIX and Linux Applications

Identify a specific environment Oracle variable to connect a remote Oracle database ?

Good evening I nned your help pls, In an unix server i want to connect to a remote oracle databse server by sqlplus. I tried to find out the user/passwd and service name by env variable and all Ive got is this: ORACLE_SID_REPCOL=SCL_REPCOL ORACLE_SID=xmeta ORACLE_SID_TOL=SCL_PROTOLCOL... (2 Replies)
Discussion started by: alexcol
2 Replies

2. AIX

vmo parameters for good performance !

Guy's I'm looking for vmo parameters on AIX 6.1 to be for data base and application servers to enhance the performance Is there any one has tested good vmo tuning and and felt a good performance on his server Pls advice and provide.. :rolleyes: (1 Reply)
Discussion started by: Mr.AIX
1 Replies
Login or Register to Ask a Question