Oracle memory usage

oracle database 11g server iin ram tultal ni ideed bhin SGA PGA custom 40 gb yundaa bdin boloo
image

Санах ойн хувьд 3 янзаар тохируулж болно.

  1. Automatic Memory Management (AMM)
  2. Automatic Shared Memory Management (ASSM)
  3. Manual

Automatic Memory Management (AMM) & ASMM

Oracle үүнийг хэрэглэхийг санал болгодог бөгөөд энэ нь өгөгдлийн санд өгөгдсөн нийт хэмжээг өгөгдлийн сангийн бүхий л хэсэгт хуваарилж, хувааж ашиглах тохиргоо юм.
Доорхи үзүүлэнд:

L - Санах ойн хамгийн бага утга
M - Санах ойг 2 болгож хуваах заагч
H - Санах ойн хамгийн их утга

L---------------------M---------------------H

AMM тохиолдолд SGA, PGA нь М заагчаар тусгаарлагдах бөгөөд динамикаар 2 тийш хөдөлж шаардлагатай санайх ойг PGA,SGA -д автоматаар хуваарилж байдаг.

Хандалт, тооцоолол ихтэй системд энэ тийм ч сайн шийдэл болж чаддаггүй. Тиймээс заагч M утгыг тогтмол газар зоож өгөх шаардлага тулгарч болно.
Үүнээс улбаалаад SGA болон PGA хэсгүүд тогтмол утгатай байх бөгөөд системийн хэрэгцээ шаардлагаас хамаараад 50:50, 60:40, 70:30 гэх мэт харьцаанд хувааж тохируулна. Үүнийг Automatic Shared Memory Management гэж нэрлэнэ. ASMM -ийн давуу тал SGA болон PGA -ийн хэрэглээг тус тусын хязгаарт хязгаарлагдаж ашиглагдах, нэг нэгэндээ нөлөөлөхгүй байх боломжийг олгоно.

Manual Memory Management

Энэ тохиргоог ашиглахгүй байсан нь дээр. Учир нь SGA доторхи бүхий хэсгүүдийг системийн ачаалал дээр суурилан байнга тохируулж байх шаардлагатай. Харин уг үйлдлийн Oracle автоматаар зохицуулах боломжтой байдаг. Тиймээс AMM эсвэл ASMM ашиглавал зүгээр. Миний сүүлд тохируулсан Engineered Systems дээр AMM сонголт байхгүй байсан нь ASMM хамгийн тохиромжтойг харуулж байна.

AMM Жишээ :
server RAM 128G
DB RAM - 80G

memory_max_target = 100G
memory_target = 80G
sga_target = 80G
sga_max_size=80g
pga_aggregate_target=0

ASMM жишээ:

memory_max_target = 100G
memory_target = 0
sga_target = 50G
sga_max_size=70g
pga_aggregate_target=30g

Ийм жишээ л бэлдэж өгье дөө…
Амжилт

1 Like

Ихэнхи нь OS cache юм шиг байна. Доорх коммандаар OS Cache - ээ цэвэрлээд үздээ?
sync; echo 3 > /proc/sys/vm/drop_caches

Байнга cache нь дүүрээд байвал, crontab дээр ачаалалгүй цагаар cache цэвэрлэдэг жоб тавьчих.

1 Like

sync; echo 3 > /proc/sys/vm/drop_caches ene bur aimar sullaj bna shd hed honogt duurj bgag ni harj bgad job tawichihwal gaigui ym shig baina bayrlla

1 Like