İleri Seviyede PostgreSQL Yönetimi Devrim GÜNDÜZ. devrim@gunduz.org. PostgreSQL Geliştiricisi PostgreSQL DBA @ Markafoni



Benzer belgeler
PostgreSQL Veritabanı Sunucusu. Başarım Arttırma Yöntemleri

PostgreSQL'de Uygulamalı. (Streaming Replication. Standby)

PostgreSQL Veritabanı Sunucusu. HOT, VACUUM ve BGWRITER

POSTGRESQL'de İleri Seviyede Veri Kurtarma ve Yedekleme

PostgreSQL Veritabanı Sunucusu Devrim GÜNDÜZ.

PostgreSQL ile Kümeleme Teknikleri

PHP+Memory Cache+PostgreSQL Kullanarak Performanslı Veritabanı Uygulaması Geliştirme

EnterpriseDB Kalitesi ile Tanıştırma. Devrim GÜNDÜZ Principal Systems Engineer EnterpriseDB

WAL Hakkında Bilmek İstediğiniz (Hemen Hemen) Herşey

PostgreSQL Veritabanı Sunucusu. 8.2 neler getiriyor?

HP Yazılım Zirvesi - İstanbul 20 May Wyndham Grand Levent Erdem Alaşehir / Finansbank Güvenlik Olay Korelasyonunda Büyük Veri Kullanımı

Bellek Yönetimiyle İlgili Notlar ORACLE BELLEK YÖNETĐMĐYLE ĐLGĐLĐ NOTLAR

«BM364» Veritabanı Uygulamaları

PostgreSQL - Yeni dönemdeki yeri

SİSTEM İHTİYAÇLARI (Tiger Plus / Tiger 3)

Kurulum Dökümanı. v

PostgreSQL'de Ölçekleme

(Random-Access Memory)

SİSTEM İHTİYAÇLARI (Tiger Enterprise / Tiger 3 Enterprise)

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Bilgisayarım My Computer

USB Keylogger İncelemesi

Veritabanı. Ders 2 VERİTABANI

Computer Architecture. RAID: (Redundant Array of Independent/Inexpensive Disks)

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

BM-311 Bilgisayar Mimarisi

PostgreSQL - Yeni dönemdeki yeri

Program Kurulum. Turquaz Muhasebe. İçindekiler

İşletim Sistemlerine Giriş

Bilgisayar Donanımı Dersi BİLGİSAYARIN MİMARI YAPISI VE ÇALIŞMA MANTIĞI

Java, Python ve Ruby Dillerinin Performans Karşılaştırması

Kurulum Dökümanı * v * Bu döküman FortiLogger versiyonu için hazırlanmıştır.

PureSystem DeepDive Kaan R. SOYGÜR PROSİSTEM

Bilgisayarım My Computer. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

1 ORACLE 11G DATABASE SERVER LE

Advanced Oracle SQL Tuning

Sorun Giderme. Genel. Disk. Aygıt Sürücüleri 3

POSTGRESQL. Veritabanı Sunucusu : 8.0 neler getiriyor? Devrim Gündüz PostgreSQL Geliştiricisi

İşletim Sistemlerine Giriş

BenQ projektör ile 3D içeriği oynatmak için en düşük bilgisayar sistemi gereksinimleri:

Zeyilname. Zeyilname No:1

Optik Sürücüler CD/CD-ROM DVD HD-DVD/BLU-RAY DİSK Disket Monitör LCD LED Projeksiyon Klavye Mouse Mikrofon Tarayıcı

PostgreSQL 9.3 Kullanılabilirlik ve Başarım

MongoDB ve Diğer Veritabanlarında Sharding

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

WINDOWS 7. Eğitim ID 98 2/4 (Normal Seviye Kullanıcı) Konu ID Windows 7 Hakkında Genel Bilgi Ek Bilgi -

POSTGRESQL Veritabanı Sunucusu ve PostgreSQL ile Kurumsal Çözümler

İster sanal sunucularınız kapalı olsun isterseniz açık olsun farketmez taşıma işlemini yine kesinti olmadan gerçekleştirebilirsiniz.

DOSYA NEDİR? Verilerin HDD de saklanması. Verilerin HDD de saklanması DOSYA SİSTEMİ NEDİR?

Windows XP: Virtual Memory / Sanal Bellek Perşembe, 07 Eylül :51 - Son Güncelleme Salı, 12 Eylül :07

Net-Sis İnternet Ve Bilişim Hizmetleri Cloud VDS Altyapı Tanıtım Kataloğu

BM-311 Bilgisayar Mimarisi

Solving Solutions. Esnek Disk Depolama Sistemleri

Laboratuvar Çalışması Veri Depolama Kapasitesini Belirleme

İZMİR EKONOMİ ÜNİVERSİTESİ. Central Disc System Merkezi Disk Sistemi

MAKİNELERE IBM SPSS Statistics 24 nin KURULMASI. IBM SPSS Statistics 24 Yüklemeye Başlamadan Önce Kontrol Edilmesi Gerekenler

T E M E L K AV R A M L A R. Öğr.Gör. Günay TEMÜR / Teknoloji F. / Bilgisayar Müh.

BM-311 Bilgisayar Mimarisi

LOG SHIPPING Yusuf KAHVECİ Senior Database

Tekir (Ön Muhasebe Yazılımı)

TEKNİK ŞARTNAME. Teklif edilen her bir sunucu aşağıdaki teknik özellikleri karşılayacaktır;

Yerel Okul Sunucusu Uygulama Yazılımları Prototipi

uresystem DeepDive aan R. SOYGÜR ROSĐSTEM

CLIENT MAKİNELERE IBM SPSS Statistics 21 nin KURULMASI

ÇORUH ELEKTRİK DAĞITIM A. Ş. BİLGİ İŞLEM ALTYAPI ŞARTNAMESİ 2012

Sanal Makineler ve Linux Konteynerlerin Performans Karşılaştırması

DĐNAMĐK ve STATĐK SQL KULLANMANIN PERFORMANSA ETKĐSĐ

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

ORACLE DATAFILE RECOVER (KURTARMA) TESTLERĐ

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

PARDUS TOPLULUK SÜRÜMÜ 3.0 KDE KURULUMU

BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı

Oracle'dan PostgreSQL'e geçiş

TÜRKSAT A.Ş. 2. PostgreSQL Konferansı. Bilgilendirme Sunumu Faruk Selman Lekesiz

Sanal Bellek (Virtual Memory)

Sabit ve Taşınabilir Diskler BÖLÜM-2 Pata Diskler İçin Master-Slave Ayarları Disk Biçimlendirme Harici Diskler Olası Sabit Disk Arızaları RAID

HASTANEMİZDE BULUNAN SUNUCULAR VE SUNUCU GÜVENLİĞİNE YÖNELİK KURALLAR

Merkezi İşlem Birimi (CPU)

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

Qlik Sense için sistem gereksinimleri. Qlik Sense 3.2 Telif Hakkı QlikTech International AB. Tüm hakları saklıdır.

Qlik Sense için sistem gereksinimleri. Qlik Sense 3.1 Copyright QlikTech International AB. Tüm hakları saklıdır.

Python Web 2.0 Python ve Web 2.0 Son. Python ve Web 2.0. Gökmen GÖKSEL, 3 Mayıs 2007

Donanımlar Hafta 1 Donanım

PostgreSQL Veritabanı Sunucusu. Replikasyon Yazılımları: Slony-I Devrim GÜNDÜZ PostgreSQL Geliştiricisi

Donanım Bağımsız Kurtarma

KUZEY KIBRIS TÜRK CUMHURİYETİ BİLGİ TEKNOLOJİLERİ VE HABERLEŞME KURUMU

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

C) 19 inçlik CRT ile LCD monitörün görünebilir alanı farklıdır. D) Dijital sinyali, analog sinyale çevirmek için DAC kullanılır.

Unutulmuş Özellikler: Oracle Veritabanına Yaptığınız Yatırımı Sonuna Kadar Kullanın

Pardus 2011 Kurulum Belgesi Sürüm Ocak İçindekiler

Öğr.Gör. Mehmet Can HANAYLI

Dosya sistemi (File system), dosyaların hard disk üzerinde nasıl yerleşeceğini ayarlayan bir sistemdir. Diğer bir tanıma göre dosya sistemi, bir

Exchange Server Kurtarma (PowerControls)

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Windows Depolama Sunucusu 2008 Windows Storage Server 2008 Çözümü. INFOSAFE BİLİŞİM TEKNOLOJİLERİ TİCARET LİMİTED ŞİRKETİ

Qlik Sense için sistem gereksinimleri. Qlik Sense 3.0 Copyright QlikTech International AB. Tüm hakları saklıdır.

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

Başlık: Windows Sistem Yöneticisi Yardımcısı

Transkript:

İleri Seviyede PostgreSQL Yönetimi Devrim GÜNDÜZ PostgreSQL Geliştiricisi PostgreSQL DBA @ Markafoni devrim@gunduz.org devrim@postgresql.org[.tr] http://twitter.com/devrimgunduz

İleri Seviyede PostgreSQL Yönetimi Bu seminer 1 saatte bitmez sanıyorum; 3 saatlik seminer slotu istiyoruz! :)

Aklıma gelmişken... Markafoni'de çalışmak ister misiniz? Java, Python, Django, PostgreSQL gibi sözcüklerden birisi ya da birden fazlası sizin için anlamlı ise ik@markafoni.com adresine özgeçmişlerinizi gönderebilirsiniz.

Ajanda 1. PostgreSQL yönetim temelleri 2. Donanım 3. İşletim sistemi 4. PostgreSQL bileşenleri 1. Bellek kullanımı 2. Bgwriter 3. Checkpoint 4. İstatistiklerin kullanımı 5. Autovacuum

Ajanda 1. PostgreSQL yönetim temelleri 2. Donanım 3. İşletim sistemi 4. PostgreSQL bileşenleri 1. Bellek kullanımı 2. Bgwriter 3. Checkpoint 4. İstatistiklerin kullanımı 5. Autovacuum

PostgreSQL yönetimi temelleri Sistem yönetimi Donanım bilgisi Network bilgisi Veritabanı yönetimi

PostgreSQL yönetimi temelleri Tüm ekip ile beraber çalışabilme Teknolojileri düzgün takip etme...

Ajanda 1. PostgreSQL yönetim temelleri 2. Donanım 3. İşletim sistemi 4. PostgreSQL bileşenleri 1. Bellek kullanımı 2. Bgwriter 3. Checkpoint 4. İstatistiklerin kullanımı 5. Autovacuum

PostgreSQL Donanımı Genel kural: Üretim ortamı yükleri gerçekten hiçbir şekilde kestirilmez. Donanım planlaması yapmak bu açıdan zordur. Donanım alırken ilerisini de düşünerek hareket etmek gerekli.

PostgreSQL donanımı I/O En önemli sorun Veritabanları I/O bağımlısıdır. RAID! RAID 0 RAID 1 RAID 5 RAID 10 Donanımsal ve yazılımsal RAID

PostgreSQL Donanımı BBU (Battery Backed Unit) Olmazsa olmaz Arttırılmış başarım Arttırılmış veri güvenliği RAID kartları HP P400 ve üzeri (400, 410 ve 800) LSI

PostgreSQL Donanımı Disk Bitmeyen tartışma: SATA ve SAS Para mutluluk getirir :-) 6 Gbit'lik SAS diskler ile sırt ağrılarına son. Fiber? ISCSI? DAS ve SAN

PostgreSQL donanımı İşlemci 64 bit! Giriş kapısını geniş tutun: Cache Bol miktarda core RAM Evdeki makinamda 8, işyerindekinde de 16 GB RAM var. RAM ucuz. Bol bol alın. Anahtar kural: Bilgiyi işlemcinin yakınında tutun.

Ajanda 1. PostgreSQL yönetim temelleri 2. Donanım 3. İşletim sistemi 4. PostgreSQL bileşenleri 1. Bellek kullanımı 2. Bgwriter 3. Checkpoint 4. İstatistiklerin kullanımı 5. Autovacuum

İşletim Sistemi İşletim sistemi seçim kriterleri Kurumsal destek 64 bit Uzun süreli destek

İşletim sistemi Linux! RHEL/CentOS Ubuntu LTS/Debian SLES Solaris bir başka alternatif. Üretim ortamında Windows, Ubuntu, Fedora ve OpenSuSE'den uzak durmak iyi olacaktır.

İşletim sistemi Scheduler deadline scheduler şu anda çok dedicated ortamlarda daha iyi başarım sunuyor. cfq ise paylaşılmış ortamlarda iyi bir denge sağlıyor. grub.conf: elevator=deadline

Dosya sistemi seçimi Linux size birçok alternatif sunuyor. Ext2, ext3, ext4 ve diğerleri. Partitioning Xloglar mutlaka ayrı bir diskte olmalıdır. Sıralı yazma ve okuma başarımı önemlidir. Data ayrı bir disk grubuna gitmelidir. Raslansal olarak yazma ve okuma hızlı olmalıdır. Yoğun ortamlarda indexler ayrı disklere gidebilir.

Dosya sistemi Xloglar ext2 olabilir. Xlogların zaten kendisi journal'dır. Bu sayede %40 başarım artışı sağlarsınız. xcloglar RAID1 olmalıdır. SATA kullanıyorsanız 4 disk ile RAID 10 yapıp başarım dertlerini çözebilirsiniz. Eğer BBU varsa data için data=writeback kullanın, başarım artsın. Hadi benchmark görelim :)

Ajanda 1. PostgreSQL yönetim temelleri 2. Donanım 3. İşletim sistemi 4. PostgreSQL bileşenleri 1. Bellek kullanımı 2. Bgwriter 3. Checkpoint 4. İstatistiklerin kullanımı 5. Autovacuum

PostgreSQL bellek kullanımı Bellek kullanan 3 yer var: Bakım işlemleri (maintenance_work_mem) Shared buffer (shared_memory) Çalışma anında sorgu bazlı kullanılan bellek (work_mem)

PostgreSQL'in bellek kullanımı Shared memory ayrıntıları Shmmax! İdeal değer ve yüksek shared_buffers sorunları work_mem ORDER BY, DISTINCT, aggregateler, hash join Dikkat: Her işlem için bu bellek ayrı ayrı kullanılacaktır. İdeal ayar log_temp_files (8.3+)

PostgreSQL'in bellek kullanımı Örnek bir log_temp_files çıktısı: Mar 5 06:00:04 dbhost postgres[21556]: [16-1] user=xxx,db=xxx LOG: temporary file: path "base/pgsql_tmp/pgsql_tmp21556.0", size 146538496 Bu sorgular için work_mem özel olarak ayarlanmalıdır: SET work_mem TO '150MB'; SELECT...

PostgreSQL'in bellek kullanımı EXPLAIN ANALYZE ile work_mem analizi yapabilirsiniz. Örnek: Sort Method: external merge Disk: 15672kB ya da Sort method: quicksort Memory:1826Kb

PostgreSQL'in bellek kullanımı maintenance_work_mem CREATE INDEX, VACUUM, ALTER TABLE ADD FOREIGN KEY İdeal değer? Autovacuum'a dikkat!

Ajanda 1. PostgreSQL yönetim temelleri 2. Donanım 3. İşletim sistemi 4. PostgreSQL bileşenleri 1. Bellek kullanımı 2. Bgwriter 3. Checkpoint 4. İstatistiklerin kullanımı 5. Autovacuum

Bgwriter Background writer Dirty buffer kavramı Yararları: Sunucu süreçlerinin daha az dirty buffer temizleyecek olmaları Daha az ve yumuşak checkpoint baskısı Olumsuz tarafı: Sürekli ve düzenli bir I/O baskısı çıkartması Olumsuz mu demiştik? Aslında değil.

Bgwriter Bgwriter parametreleri: bgwriter_delay bgwriter_lru_maxpages bgwriter_lru_multiplier

Bgwriter Kullanılan I/O'yu hesaplamak: 1000 / bgwriter_delay * bgwriter_lru_maxpages * 8192 = Kullanılan I/O (byte cinsinden) Öntanımlı değerlerle: 1000/200*100*8192 = 4MB Bu hesap %100 doğru değildir. Ancak %100'e yakındır.

Bgwriter pg_stat_bgwriter (8.3+) checkpoints_timed checkpoints_req checkpoint_timeout buffers_checkpoint buffers_clean maxwritten_clean buffers_backend buffers_alloc

WAL Write Ahead Log PostgreSQL'in transaction logu Her işlem xloga yazılmaz. 2 şekilde flush edilir: Sync commit ve wal writer processleri ile

WAL parametreleri fsync wal_sync_method full_page_writes wal_buffers wal_writer_delay

Bgwriter, Checkpoint ve WAL Keşke data hep ramde kalsa (savaşlar çıkmasa, her yer sevgi dolsa, lay lay lom) İdeal dünya üstteki gibidir. İdeal dünya olmayacaktır, ama elimizden geldiği kadar o noktaya yaklaşmalıyız. Checkpoint işlemine mümkün olduğu kadar az yük bırakmak gerekli. Wal yazma işlemini wal writer sürecine bırakmak gerekli.

Ajanda 1. PostgreSQL yönetim temelleri 2. Donanım 3. İşletim sistemi 4. PostgreSQL bileşenleri 1. Bellek kullanımı 2. Bgwriter 3. Checkpoint 4. İstatistiklerin kullanımı 5. Autovacuum

Checkpoint Bgwriter'ın bir alt sürecidir. Xloglarla doğrudan ilgisi yoktur. Sadece dirty bufferların diske aktarılmasına yarar. Son kurtarma noktası olarak xloga yazılır. Çökme anında son checkpoint noktasından başlanarak xloglar okunur, veriler diske aktarılır sunucu ondan sonra başlar (REDO)

Checkpoint Checkpoint parametreleri: checkpoint_segments checkpoint_timeout checkpoint_completion_target checkpoint_warning (2+c_c_t)*c_s+1 formülü 3*checkpoint_segments+1

Ajanda 1. PostgreSQL yönetim temelleri 2. Donanım 3. İşletim sistemi 4. PostgreSQL bileşenleri 1. Bellek kullanımı 2. Bgwriter 3. Checkpoint 4. İstatistiklerin kullanımı 5. Autovacuum

Ajanda 1. PostgreSQL yönetim temelleri 2. Donanım 3. İşletim sistemi 4. PostgreSQL bileşenleri 1. Bellek kullanımı 2. Bgwriter 3. Checkpoint 4. İstatistiklerin kullanımı 5. Autovacuum

İstatistiklerin kullanımı İstatistikler PostgreSQL DBA'i için en önemli kontrol noktalarından birisidir. Datayı nereye nasıl yerleştireceğinizin ipucunu bu istatistikler verir. pg_stat* tabloları http://www.gunduz.org/seminer/pg adresinde Statistics Collector ile ilgili seminer notlarını okuyabilirsiniz.

İstatistiklerin kullanımı Canlı bir örnek: Bir indexi boş bir diske/tablespace içine taşıyarak 3 sn süren bir sorguyu 0.2 saniyeye indirdim. Aynı zamanda düzgün I/O için de istatistikleri takip etmek önemlidir. Munin gibi araçlar kullanılabilir.

Ajanda 1. PostgreSQL yönetim temelleri 2. Donanım 3. İşletim sistemi 4. PostgreSQL bileşenleri 1. Bellek kullanımı 2. Bgwriter 3. Checkpoint 4. İstatistiklerin kullanımı 5. Autovacuum

(Auto)VACUUM Dead tuple temizliği Daha az I/O için önemli ANALYZE ile beraber kullanımı FSM kavramı (8.4+ itibariyle artık otomatik!) Bloat kavramı ve VACUUM ile ilişkisi Autovacuum VACUUM FULL kullanmayın. 9.0'da bu vacuum modeli kaldırıldı.

Bakım işlemleri CLUSTER REINDEX TRUNCATE

Diğer önemli parametreler random_page_cost cpu_tuple_cost cpu_operator_cost effective_cache_size default_statistics_target

İpuçları Çok sayıda temp table işlemi yapıyorsanız temp_tablespaces parametresine birden fazla tablespace girebilir ve hatta bu tablespaceleri ramdiske atarak önemli bir başarım artışı sağlayabilirsiniz. stats_temp_directory parametresini de benzer şekilde hızlı bir diske ya da ramdiske atmak isteyebilirsiniz.

...ve Sorular?

İleri Seviyede PostgreSQL Yönetimi Devrim GÜNDÜZ PostgreSQL Geliştiricisi PostgreSQL DBA @ Markafoni devrim@gunduz.org devrim@postgresql.org[.tr] http://twitter.com/devrimgunduz