Hi,
i have two oracle instances running on my server with 7.5G RAM but it is showing almost 99% memory is full as you can see bellow.
# svmon
size inuse free pin virtual
memory 1974272 1954270 20002 336595 1800652
pg space 4194304 1250858
work pers clnt other
pin 264925 0 2732 68938
in use 965573 5 988692
PageSize PoolSize inuse pgsp pin virtual
s 4 KB - 1832014 1249674 247587 1676956
m 64 KB - 7641 74 5563 7731
I have used around 67% of memory to be allocated to all my oracle processed and now i want to find who is consuming this much memort. Can anyone tell me the command to find out the process started as OS user "oracle" with the memory consumed by each process in MBs OR KBs and also if i can have a sum of this memory used by all processes spawned by "oracle" user in a single command.
Thanks
The following could show all process started as "oracle"
top -u oracle
u can combine this with awk to have the sum of memory used by "oracle"
you have almost no paging to pagingspace on your system, total memory ist bigger then inuse memory
to see the real memory consumed by a process in 4k pages, use ps waux, RSS column
almost all of my systems show a 100% memory consumption, AIX uses the free pages for filesystem caching
these noncomputational pages will be replaced with computational pages (your oracle processes for example) until the minperm value is reached
(man vmo)
then both computational and non-computational may get replaced
use topas, if it shows pgspin pgspout you may have a problem
>you have almost no paging to pagingspace on your system, total memory ist bigger then inuse memory
I didnt understand. You mean i dont have paging space defined? Please see following
# /usr/sbin/lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto Type
hd6 hdisk1 rootvg 16384MB 31 yes yes lv
>almost all of my systems show a 100% memory consumption, AIX uses the free pages for filesystem caching
So you mean i should not be worried about this. This is usual behaviour os AIX to use all the memory but actualy these are pages not in use and will be resued if required by any other process?
>use topas, if it shows pgspin pgspout you may have a problem
Topas Monitor for host: USCUMS001 EVENTS/QUEUES FILE/TTY
Wed May 20 19:58:02 2009 Interval: 2 Cswitch 290 Readch 35721
Syscall 2626 Writech 73683
Kernel 0.5 |# | Reads 53 Rawin 0
User 48.0 |############## | Writes 60 Ttyout 816
Wait 0.4 |# | Forks 0 Igets 0
Idle 51.2 |############### | Execs 0 Namei 8
Runqueue 2.0 Dirblk 0
Network KBPS I-Pack O-Pack KB-In KB-Out Waitqueue 0.0
en0 8.5 12.5 15.0 2.0 6.5
lo0 1.4 8.0 8.0 0.7 0.7 PAGING MEMORY
en2 0.5 3.5 2.5 0.3 0.2 Faults 10 Real,MB 7712
Steals 0 % Comp 51.1
Disk Busy% KBPS TPS KB-Read KB-Writ PgspIn 4 % Noncomp 47.7
hdisk2 1.0 64.0 4.0 0.0 64.0 PgspOut 0 % Client 47.7
dac1 0.0 64.0 4.0 0.0 64.0 PageIn 4
hdisk1 1.5 18.0 4.5 18.0 0.0 PageOut 16 PAGING SPACE
hdisk0 0.0 0.0 0.0 0.0 0.0 Sios 20 Size,MB 16384
% Used 29.9
Name PID CPU% PgSp Owner NFS (calls/sec) % Free 71.1
oracle 450764 47.7 5.6 oracle ServerV2 0
topas 1609912 0.1 4.3 root ClientV2 0 Press:
dtgreet 192610 0.1 1.4 root ServerV3 0 "h" for help
oracle 684280 0.1 3.9 oracle ClientV3 0 "q" to quit
oracle 1568870 0.0 4.1 oracle
Please advise
well this is a snapshot from your system, you need to collect data over a longer period of time
half of you memory is full with non-comutational pages, so your database has a lot of room to grow in memory
post the output of vmo -a
of course you have paging space defined, I mean to the time you took the svmon output, there was no paging space activity, but there was paging, since your paging space is full to 30%
you need to collect data specially to peak times, eg. backup times, a lot of concurrent users, big jobs and so on
it won't help you that your database is idle most of the time and to peak times users can't log in
Please see the output of vmon -a
# vmo -a
cpu_scale_memp = 8
data_stagger_interval = 161
defps = 1
force_relalias_lite = 0
framesets = 2
htabscale = n/a
kernel_heap_psize = 4096
kernel_psize = 4096
large_page_heap_size = 0
lgpg_regions = 0
lgpg_size = 0
low_ps_handling = 1
lru_file_repage = 1
lru_poll_interval = 10
lrubucket = 131072
maxclient% = 80
maxfree = 1088
maxperm = 1517444
maxperm% = 80
maxpin = 1593215
maxpin% = 80
mbuf_heap_psize = 65536
memory_affinity = 1
memory_frames = 1974272
memplace_data = 2
memplace_mapped_file = 2
memplace_shm_anonymous = 2
memplace_shm_named = 2
memplace_stack = 2
memplace_text = 2
memplace_unmapped_file = 2
mempools = 1
minfree = 960
minperm = 379361
minperm% = 20
nokilluid = 0
npskill = 32768
npsrpgmax = 262144
npsrpgmin = 196608
npsscrubmax = 262144
npsscrubmin = 196608
npswarn = 131072
num_spec_dataseg = 0
numpsblks = 4194304
page_steal_method = 0
pagecoloring = n/a
pinnable_frames = 1638192
psm_timeout_interval = 5000
pta_balance_threshold = n/a
relalias_percentage = 0
rpgclean = 0
rpgcontrol = 2
scrub = 0
scrubclean = 0
soft_min_lgpgs_vmpool = 0
spec_dataseg_int = 512
strict_maxclient = 1
strict_maxperm = 0
v_pinshm = 0
vm_modlist_threshold = -1
vmm_fork_policy = 1
vmm_mpsize_support = 1
wlm_memlimit_nonpg = 1
hi, you have no parameter set for the database
see
Running Oracle on AIX
focus on the memory part, specially the vmo options
Hi,
Thank you very much for your help. Mean while same recommendations were also given to us by IBM support. Thanks a lot once again.
Salman