  | | | pagecache and hugetlb tuning for Oracle DB operations | pagecache and hugetlb tuning for Oracle DB operations 2006-06-09 - By Jim Williams
Back I am managing a new server configuration to support Oracle 9i v 9.2.0. The SGA is approximately 7 GB and we are running on a pair of new HP DL585's with 4 dual-core Opteron CPU's and 16GB of RAM on our test system, 32GB on production. After going live with the system last week, users started complaining almost immediately about slow performance. Upon investigation, it was determined that we were thrashing swap pretty heavily. I do not mean data just sitting in swap, vmstat reported constant si and so numbers, sometimes over a thousand in a 5 second sample period. We could tell from the output of the free command and top that there was a large amount of RAM dedicated to disk caching, so we decided to decrease the disk cache. I set the vm.pagecache parameter on the test platform to "1 5 10" and it had absolutely no effect at all that I could see. The developers were able to easily generate disk cache that filled over 90% of RAM. I thought that pagecache setting limited cache to 10% of RAM?
We also tried setting the hugetlb_pool parameters to dedicate 8GB of huge pages for the SGA. I set this with the command "sysctl -w vm.hugetlb_pool=8192" and according to /proc/meminfo I got 8 pages of 2048K pages. That did not make sense to me, so I put the same setting in sysctl.conf and rebooted. The server hung at boot as it was "Setting kernel parameters." I simply commented out the hugetlb_pool setting at it booted without error. Can anyone tell me what I'm missing here or recommend some better setting for our environment?
Red Hat Enterprise Linux AS release 3 (Taroon Update 7) Linux XXX.XXXX.com 2.4.21-40.ELsmp #1 SMP Thu Feb 2 22:13:55 EST 2006 x86_64 x86_64 x86_64 GNU/Linux
# free total used free shared buffers cached Mem: 16010356 13834384 2175972 0 287552 12683848 -/+ buffers/cache: 862984 15147372 Swap: 8388472 0 8388472
# cat /proc/sys/vm/pagecache 1 5 10
# cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 33 model name : AMD Opteron (tm) Processor 880 physical id : 0 siblings : 2 core id : 0 cpu cores : 2 stepping : 2 cpu MHz : 2396.886 cache size : 1024 KB fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext lm 3dnowext 3dnow bogomips : 4771.02 TLB size : 1088 4K pages clflush size : 64 address sizes : 40 bits physical, 48 bits virtual power management: ts fid vid ttp
(.... duplicated 7 more times)
Jim Williams Linux Administrator Desk: (407) 804-8185 Cell: (407) 687-4532 Jim.Williams@(protected)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"> <META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7232.39"> <TITLE>pagecache and hugetlb tuning for Oracle DB operations</TITLE> </HEAD> <BODY> <!-- Converted from text/rtf format -->
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">I am managing a new server configuration to support Oracle</FONT></SPAN><SPAN LANG="en-us"></SPAN> <SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">9</FONT></SPAN><SPAN LANG="en-us" ></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">i</FONT></SPAN><SPAN LANG= "en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> v 9.2.0</FONT>< /SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">.< /FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE= "Tahoma">The SGA is</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma"> approximate</FONT></SPAN><SPAN LANG="en-us"></SPAN> <SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">ly</FONT></SPAN><SPAN LANG="en-us" ></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> 7 GB and we are running on a</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">pair of</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us" > <FONT SIZE=2 FACE="Tahoma">new HP DL585</FONT></SPAN><SPAN LANG="en-us"></SPAN ><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">’</FONT></SPAN><SPAN LANG= "en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">s</FONT></SPAN> <SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> with 4 dual-core Opteron CPU</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us" ><FONT SIZE=2 FACE="Tahoma">’</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">s and</FONT></SPAN><SPAN LANG="en-us">< /SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">16</FONT></SPAN><SPAN LANG= "en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">GB of RAM</FONT>< /SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> on our test system, 32GB on production</FONT></SPAN><SPAN LANG="en-us"></SPAN> <SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">.</FONT></SPAN><SPAN LANG="en-us"> </SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"></FONT></SPAN><SPAN LANG= "en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">After going live with the system last week, users started complaining</FONT></SPAN><SPAN LANG= "en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">almost immediately </FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE= "Tahoma">about slow performance. Upon investigation, it was determined that we were thrashing swap pretty heavily. I do not mean data</FONT></SPAN><SPAN LANG= "en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"></FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">just</FONT>< /SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> sitting in swap, vmstat report</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">ed</FONT></SPAN><SPAN LANG="en-us">< /SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> constant si and so numbers, sometimes</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE =2 FACE="Tahoma">over a thousand in a 5 second sample</FONT></SPAN><SPAN LANG= "en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">period</FONT>< /SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">.< /FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE= "Tahoma"> We could tell from the output of the free command and top that there was a large amount of RAM dedicated to disk caching</FONT></SPAN><SPAN LANG="en -us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">, so we decided to decrease the disk cache.</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en -us"><FONT SIZE=2 FACE="Tahoma"> I set the vm.pagecache parameter</FONT></SPAN> <SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">on the test platform</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">to</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en -us"> <FONT SIZE=2 FACE="Tahoma">“</FONT></SPAN><SPAN LANG="en-us"></SPAN> <SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">1 5 10</FONT></SPAN><SPAN LANG="en -us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">”</FONT></SPAN> <SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> and it had absolutely</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> n</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en -us"><FONT SIZE=2 FACE="Tahoma">o</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> effect at all that I could see. The developers were able to easily</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> generate disk cache that filled over 90% of RAM.</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma"> I thought that pagecache setting limited cache to 10 % of RAM?</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">We also tried setting the hugetlb_pool</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en -us"> <FONT SIZE=2 FACE="Tahoma">parameters</FONT></SPAN><SPAN LANG="en-us">< /SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> to dedicate 8GB</FONT>< /SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> of huge pages</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> for the SGA.</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"></FONT></SPAN><SPAN LANG="en-us"></SPAN ><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">I set this with the command< /FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE= "Tahoma">“</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">sysctl</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG= "en-us"> <FONT SIZE=2 FACE="Tahoma">–</FONT></SPAN><SPAN LANG="en-us">< /SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">w vm.hugetlb_pool=8192</FONT ></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> ”</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> and according to /proc/meminfo I got 8 pages of 2048K pages. That did not make sense to me, so I put the same setting in sysctl.conf and rebooted. The server hung at boot as it was</FONT></SPAN><SPAN LANG="en-us">< /SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">“</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">Setting kernel parameters.</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">”</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> I simply commented out the hugetlb _pool setting at it booted without error. Can anyone tell me what I</FONT></SPAN ><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">’ </FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE= "Tahoma">m missing here or recommend some better setting for ou</FONT></SPAN> <SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">r</FONT> </SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> environment?</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN>< /P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">Red Hat Enterprise Linux AS release 3 (Taroon Update 7)</FONT></SPAN><SPAN LANG="en-us"></SPAN> <SPAN LANG="en-us"></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">Linux</FONT></SPAN> <SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"> <FONT SIZE=2 FACE="Tahoma">XXX .XXXX.com</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> 2.4.21-40.ELsmp #1 SMP Thu Feb 2 22:13:55 EST 2006 x86_64 x86_64 x86_64 GNU/Linux</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us">< /SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"># free</FONT></SPAN ></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"> total used free shared buffers cached< /FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">Mem: 16010356 13834384 2175972 0 287552 12683848</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">-/+ buffers/cache: 862984 15147372</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">Swap: 8388472 0 8388472</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG= "en-us"></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"># cat /proc/sys/vm /pagecache</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">1 5 10</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma"># cat /proc/cpuinfo </FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">processor : 0</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">vendor_id : AuthenticAMD</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">cpu family : 15</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">model : 33</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">model name : AMD Opteron (tm) Processor 880</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">physical id : 0</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">siblings   ; : 2</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">core id : 0</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">cpu cores : 2</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">stepping   ; : 2</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">cpu MHz : 2396.886</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">cache size : 1024 KB</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">fpu : yes</FONT></SPAN> </P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">fpu_exception : yes</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">cpuid level : 1</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">wp   ; : yes</FONT></SPAN ></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext lm 3dnowext 3dnow</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">bogomips   ; : 4771.02</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">TLB size   ; : 1088 4K pages</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">clflush size : 64</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">address sizes : 40 bits physical, 48 bits virtual</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">power management: ts fid vid ttp</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN ></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">(</FONT></SPAN> <SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Tahoma">…< /FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE= "Tahoma">. duplicated 7 more times)</FONT></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"></SPAN><A NAME=""><SPAN LANG="en-us"><FONT SIZE=2 FACE="Comic Sans MS">Jim Williams</FONT></SPAN></A><SPAN LANG="en-us">< /SPAN><SPAN LANG="en-us"></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Comic Sans MS">Linux Administrator</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN> </P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Comic Sans MS">Desk: (407) 804-8185</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"><FONT SIZE=2 FACE="Comic Sans MS">Cell: (407) 687-4532</FONT></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"></SPAN><A HREF="mailto:Jim.Williams@(protected) .com"><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><U></U></SPAN><U><SPAN LANG= "en-us"><FONT COLOR="#0000FF" SIZE=2 FACE="Comic Sans MS">Jim.Williams @(protected)</FONT></SPAN></U><SPAN LANG="en-us"></SPAN></A><SPAN LANG="en-us "></SPAN><SPAN LANG="en-us"></SPAN></P>
<P ALIGN=LEFT><SPAN LANG="en-us"></SPAN></P>
</BODY> </HTML> -- Taroon-list mailing list Taroon-list@(protected) https://www.redhat.com/mailman/listinfo/taroon-list
|
|
 |