Hello guys ,
Nowadays our Oracle DB (Production) Server has been a status of business peak, currently I observe the free Memory has been insufficient by a variety of Linux commands.
The following operations are my diagnostic process,
(1) Linux command of *free -m*
[oracle@xxxx ~]$ free -m
total used free shared buffers cached
Mem: 516775 514851 1923 16 275 173407
-/+ buffers/cache: 341168 175607
Swap: 131071 3 131068
(2) Linux command of *dstat -tmsl -c 2 5*
[oracle@xxxx ~]$ dstat -tmsl -c 2 5
----system---- ------memory-usage----- ----swap--- ---load-avg--- ----total-cpu-usage----
date/time | used buff cach free| used free| 1m 5m 15m |usr sys idl wai hiq siq
15-04 15:19:52| 333G 277M 169G 1814M|3204k 128G|6.32 5.95 5.88| 2 1 97 0 0 0
15-04 15:19:54| 333G 277M 169G 1802M|3204k 128G|6.05 5.90 5.86| 2 1 97 0 0 0
15-04 15:19:56| 333G 277M 169G 1810M|3204k 128G|6.05 5.90 5.86| 2 1 97 0 0 0
15-04 15:19:58| 333G 277M 169G 1869M|3204k 128G|5.81 5.85 5.85| 1 1 97 0 0 0
15-04 15:20:00| 333G 277M 169G 1903M|3204k 128G|5.81 5.85 5.85| 2 1 97 0 0 0
15-04 15:20:02| 333G 277M 169G 1877M|3204k 128G|5.81 5.85 5.85| 1 1 96 1 0 0
(3) Linux command of *vmstat -s*
[oracle@xxxx ~]$ vmstat -s
529178400 total memory
527249984 used memory
80755008 active memory
102944440 inactive memory
1928404 free memory
282672 buffer memory
177545984 swap cache
134217728 total swap
3204 used swap
134214520 free swap
4042124042 non-nice user cpu ticks
21553 nice user cpu ticks
3201855066 system cpu ticks
253449561746 idle cpu ticks
448936788 IO-wait cpu ticks
376596 IRQ cpu ticks
124832399 softirq cpu ticks
0 stolen cpu ticks
117403127816 pages paged in
58269421200 pages paged out
255 pages swapped in
859 pages swapped out
925592386 interrupts
4216014702 CPU context switches
1541653972 boot time
1869022596 forks
(4) *nmon* tool for *Memory Stats*

BTW I have set *Huge Page* on my Linux Server as well,
[oracle@xxxx ~]$ cat /proc/meminfo | grep -i HugePage
AnonHugePages: 0 kB
HugePages_Total: 163851
HugePages_Free: 8465
HugePages_Rsvd: 8455
HugePages_Surp: 0
Hugepagesize: 2048 kB
and some related parameter of Oracle SGA and PGA is as follows,
SQL> set linesize 150
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 320G
sga_target big integer 320G
SYS@orcl28> show parameter pga
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
pga_aggregate_target big integer 80G
SQL> show parameter use_large
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
_PX_use_large_pool boolean TRUE
use_large_pages string TRUE
Now, for me, how to determine where plenty of Mem used size has been consumed on Oracle DB Server?
Could you help me continue to diagnose it further more? Thanks in advance!!!
Best Regards
Quanwen Zhao