Geri git   Engelliler Sosyal Duyarlılık Platformu > Bilgisayar - İnternet - Linux - Oracle > Oracle

   

Cevapla
 
LinkBack Seçenekler Stil
  #1 (permalink)  
Alt 07-10-2009, 06:13 AM
Junior Member
 
Üyelik tarihi: Jul 2009
Mesajlar: 5
Standart Oracle Performans Tuning

ORACLE PERFORMANS TUNING
Tufan Bilge tarafından yazıldı

Oracle Performans Tuning ayarlama işlemleri dört adımdan oluşur:

a) Server ve Network Ayarları:

Burada oluşabilecek CPU aşırı yüklenmeleri, hafıza yetersizliği veya I/O darboğazları Oracle?da ne kadar performans ayarı yapılsa bile giderilemez. Bu yüzden öncelikle buranın yapılandırılması gerekir.

b) Instance ayarları : SGA ve başlangıç parametrelerini doğru şekilde ayarlamayı içerir. Doğrudan db_block_buffers, shared_pool_size ve sort_area_size tanımlarında kaynakların yetersizliğini gidermekle ilgilenir. Ayrıca Oracle için önemli olan optimizer_mode gibi parametrelerlede ilgilenir.

c) Nesne ayarları : Tablo ve indekslerin ayarlamalarını içerir. PCTFREE, PCTUSED ve FREELISTS ayarları bir serverın performansında çok etkindir.

d) SQL cümleleri: Belkide binlerce SQL cümlesini incelemeyi gerektirdiği için en çok zaman alan çalışmalar burada yapılır. Oracle ipuçlarını kullanarak ve herbir cümlenin çalışma planını dikkatlice gözden geçirerek bir çalışma yapılır. a) SERVER VE NETWORK AYARLARI

a. RHEL 3/4 sistemlerde smp çekirdek 16GB hafızaya kadar destek verir. Normalde 16GB-64GB arası hafızaya ship serverlarda tüm hafızayı kullanmak için hugemem linux çekirdeği kullanılması gerekir.
b. X68 mimarilerde fiziksel hafızanın ilk 16MB-896MB kısmı çekirdek için ayrılmış ve ?low memory? (ZONE_NORMAL) alanıdır. Bir çok çekirdek kaynağı burada yeralır. Dolayısıyla burası kritik bir bölgedir.
c. Çekirdeğin en güncel sürümünün ev donanımların güncel sürücülerinin yüklenmiş olmasına dikkat edilmelidir. Uyumlu sürüciler genelde /lib/modules/<kernel-version>/kernel/drivers/addon dizinine kurulur.

· Yüklü çekirdek lerin listesi için: $ rpm -qa | grep kernel
· O anda çalışan çekirdek versiyonu : $ uname ?r
· 2.4.21-32.0.1.ELhugemem çekirdeğini kurmak için kernel-hugemem RPM indirilir ve şu çalıştırılır: # rpm -ivh kernel-hugemem-2.4.21-32.0.1.EL.i686.rpm
· Kullanılmayan eski çekirdeği kaldırmak için : # rpm ?e <OldKernelVersiyon>
d. Hafıza kullanımı: Kullanılmakta olan hafızayı görmek için : grep MemTotal /proc/meminfo yada free komutu kullanılır. Linux boş duran hafızayı I/O ihtiyacını azaltmak ve hızlanmak için devamlı kullanır. Bu yüzden bu komutlarla çıkan sonuçlarda hafızanın neredeyse tamamı kullanılıyor gibi görünür. Ama gerçekte çoğu uygulamalar tarafından değil çekirdeğin I/O erişimin azaltma ihtiyacı yüzünden doludur. Uygulamalara hafızada yer gerektiğinde çekirdek bunları diske yazarak yer açar.

e. Page Cache: Dosyaların veya çalışabilir programların verilerini tutan bir disk önbelleğidir. Diskten okumaları azaltmak için kullanılır.

f. Virtual Memory ayarları sysctl adlı programlama odaklı bir komutla sistem çalışır durumdayken yapılabilir. Bu komutla aynı zamanda /etc/sysctl.conf dosyasında yeralan virtual machine parametreleride ayarlanır ki sistem reboot edildiğinde yeni ayarları bu dosyadan okuyabilsin.

g. bdflush dosyasında 6 tanesi ayarlanabilir 9 parametre yeralır. Amacı önbellekte tutulacak sayfalardan hangilerinin boşaltılıp diske yazılacağının değerlendirmesini yapmaktır.

· nftrac : bdflsh çalışmasının aktif olması için önbellek alanında bulunması gereken dirty page yüzdesi.
· ndirty: bdflsh işleminde diske yazma yapabilmek için önbellek alanında bulunması gereken en çok dirty page sayısı.
· interval : bdflsh yinelemeleri arasındaki gecikme anı adedi. (bir an 10ms?lik zaman)
· age_buffer : Normal alanların diske boşaltılması için gerekli yaşlanma zamanı.
· nfract_sync : Önbellek alanında sayfaların hafıza yerine diske yazılması için gereken dirty page yüzdesi.
· nfract_stop_bdflush : bdflsh işleminin tekrar bekleme moduna geçmesi için önbellek alanında bırakılması gereken dirty page yüzdesidir.
h. Swap Space: Uzun süren işlemlerin olduğu serverlarda swap bölümü kullanmak çok faydalıdır. Oracle tarafından tavsiye edilen swap ölçüleri:

RAM Swap alanı
1GB-2GB RAM * 1,5
2GB-8GB RAM
8GB?den çok RAM * 0,75

Swap kullanımı şu komutlarla görülebilir:

· grep SwapTotal /proc/meminfo
· free
· cat /proc/meminfo
i. $ vmstat 3 100 komutuyla o anki swap kullanımı görülebilir. Burada si ve so sütunları diskten swap?a alınan ve swap?tan diske boşaltılan sayfa miktarlarını gösterir. Geçmişteki swap hareketlerini görmek için sar komutundan yararlanılır:

# sar ?W ?f /var/log/sa/sa12

j. Shared Memeory (paylaşılan hafıza alanı): İşlemlere yaygın kullanılan yapı ve verileri koymaları için tahsis edilen paylaşılan hafıza parçasıdır. Oracle shared memory alanlarını Oracle işlemleri tarafından kullanılan SGA için kullanır. Shared memory ayarlarını görmek için:

$ ipcs ?lm

k. SHMMAX :Bir linux işleminin s**** adres alanında kullanabileceği tek bir shared memory bölümünün byte cinsinden büyüklüğüdür. SGA, shared memory?den oluştuğu için SHMMAX, SGA?yıda kısıtlar. Bu yüzden SHMMAX, SGA?dab biraz daha büyük olmalıdır, aksi durumda ?ORA-27123: unable to attach to shared memory segment? hatası alınır.Bir shared memory bölümünün büyüklüğünü öğrenmek için : # cat /proc/sys/kernel/shmmaxSHMMAX değerini çalışma anında değiştirmek için :

# echo 2147483648 > /proc/sys/kernel/shmmaxAlternatif olarak SHMMAX değerini çalışma anında değiştirmek için :
# sysctl -w kernel.shmmax=2147483648Değişiklikleri kalıcı yapmak için boot dosyasına ekler :
# echo "kernel.shmmax=2147483648" >> /etc/sysctl.confl.
SHMMNI : Sistemde en çok kaç adet shared memory bölümü bulunacağını belirler. Oracle enaz 4096 segmen olmasını önerir.SHMMNI adedini öğrenmek için :

# cat /proc/sys/kernel/shmmniÇalışma anında değeri atamak için :

# echo 4096 > /proc/sys/kernel/shmmniAlternatif olarak çalışma anında değeri atamak için :

# sysctl -w kernel.shmmni=4096Değişiklikleri kalıcı yapmak için boot dosyasına ekler : # echo "kernel.shmmni=4096" >> /etc/sysctl.confm.

SHMALL : Sistem genelinde kullanılabilecek shared memory page toplam adedini belirler. Bu değer enaz SHMMAX/PAGE_SIZE kadar olmalıdır. PAGE_SIZE eğer büyük hafıza alanları kullanmayı sağlayacan Big Pages veya Huge Pages kullanılmıyorsa genellikle 4096 byte olarak ele alınır.
Sistemde kullanılan PAGE_SIZE değerini : $ getconf PAGE_SIZE

Sistemdeki en çok shared memory page adedini öğrenmek için :

# cat /proc/sys/kernel/shmallSHMALL değerini sistem çalışırken değiştirmek için :

# echo 2097152 > /proc/sys/kernel/shmallAlternatif olarak SHMALL değerini sistem çalışırken değiştirmek için :

# sysctl -w kernel.shmall=2097152Değişiklikleri kalıcı kılmak için : # echo "kernel.shmall=2097152" >> /etc/sysctl.conf

n. Shared Memory alanının silinmesi: Bazen bir instance çöktüğünde Oracle?ın shared memory bölümünü elle silmek gerekebilir. Kullanılan shared memory bölümlerini listelemek için : $ ipcs ?mBir shared memory alanı hakkında detay bilgilere erişmek için

shmid değeri kullanılır: $ ipcs -m -i 32768Bir shared memory bölümünü silmek içinde

shmid kullanılır : $ ipcrm shm 32768Bir shared memory bölümünü silmenin alternetif yolu Oracle sysresv programıdır : $ sysresvo.

File Handles : Bir linux sisteminde aynı anda açık olabilecek dosya sayısını belirler. Oracle bütün sistem için en azından 65536 olmasını önerir. Öğrenmek için : cat /proc/sys/fs/file-maxMevcutta kullanımda olan açık dosya sayısını öğrenmek için : cat /proc/sys/fs/file-nrDeğeri sistem çalışırken değiştirmek için iki yol : # echo 65536 > /proc/sys/fs/file-max# sysctl -w fs.file-max=65536Değişiklikleri kalıcı yapmak için : # echo "fs.file-max=65536" >> /etc/sysctl.conf

p. Network Ayarları: ethernet kartı ayarlarını değiştirmek için ethtool komutu kullanılabilir. Ethernet ayarlarını görmek için :

# ethtool eth0

Bir kartın hızını değiştirmek için :

# ethtool ?s eth0 speed 1000 duplex full autoneg off

Değişikliği kalıcı yapmak için /etc/sysconfig/network-scripts/ifcfg-eth0 dosyasına ETHTTOOL_OPT çevre değişkeni eklenir:

ETHTOOL_OPTS="speed 1000 duplex full autoneg off"

q. Network Çekirdek Ayarları: Oracle, linux sistemlerde kendi iç haberleşmesinde geçerli protokol olarak UDP kullanmaya başladı. Instance?lar arasındaki haberleşmedede bundan yararlanılıyor.

b) INSTANCE AYARLARIInstance performansını ayarlamanın en iyi yolu öncelikle sistemle ilgili farklı istatistiki bilgilerin sağlıklı şekilde elde etmekten geçer. Sistemin çok kullanıldığı zaman dilimlerinin bilinmesi önem taşır.
a. Uygulamanın istatistikleri (response time, transation miktarı vb..)

b. Veritabanı istatistikleric. İşletim sistemi istatistiklerid. Disk I/O istatistiklerie.

Server?ın kontrol edilmesi: Server donanım özelliklerinin kontrol edilip oluşturduğu darboğazların belirlenmesini ifade eder.

· CPU kullanımının detaylı incelenmesi, oracle processleri ve oracle?a ait olmayan processlerin ve CPU tüketimlerinin kontrol edilmesi önemlidir. Oracle CPU istatistikleri aşağıdaki

V$SYSSTAT : Bütün sessionlar tarafından oluşturulan CPU kullanımıo

V$SESSTAT: Session başına CPU kullanım istatistiklerini verir

V$RSRC_CONSUMER_GROUP: Oracle Database Resource Manager çalışırken herbir CPU tüketici grubunun ne kadar tüketim yaptığı bilgisini verir.

· I/O kullanımının kontrol edilmesi diğer bir kritik parametredir.

Disk erişim kuyruğunun 2?den büyük olması vey disk hizmet süresinin 20-30 ms?nin üzerinde olması disk erişiminde darboğaz olduğu anlamına gelir. Bu durumda I/O performansının birden çok diske dağıtılması gerekmektedir.



Kaynak: bilisimnews.com
Alıntı ile Cevapla
Cevapla

Etiketler
oracle performans tuning

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesaj?n?z? De?i?tirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



WEZ Format. Şuan Saat: 12:04 AM.


Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0