DB2 v9.7. Pullonkaulojen metsästys, metodeja ja. esimerkkejä elävästä elämästä



Samankaltaiset tiedostot
Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

TK Palvelinympäristö

DI Studion käyttökokemuksia. Kaisu Ikonen, Tilastokeskus

Backup Exec 3600 Appliance

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Web Services tietokantaohjelmoinnin perusteet

TAMFELT TAMELT. Tamfeltin Unicode-konversio

Suorituskyvyn pullonkaulojen löytäminen ja optimointi v 1.0. Ilkka Myllylä

FYYSINEN SUUNNITTELU

Visma Liikkuvan työn ratkaisut

Uutta Remote Support Platform 3.1 -versiossa

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

HELIA 1 (15) Outi Virkki Tiedonhallinta

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

FuturaPlan. Järjestelmävaatimukset

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

1 (5) PALVELUKUVAUS JA HINNASTO Requeste palvelut

Fakta versio Forecast versio

RADAR - RANDOM DATA GENERATOR

Microsoft SQL Server -tietokannan hallinta. Jouni Huotari

HAKURATKAISUN ANATOMIA - KURKISTUS PELLIN ALLE

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

Yliopisto- ja AMK-kirjastokonsortioiden tietokantapalvelimet

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Työpöytävirtualisointi

McAfee epolicy Orchestrator Pre-Installation Auditor 2.0.0

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Automaatio mahdollistaa Software as a Service - arkkitehtuurin

POWER analytiikka-alustana

FYYSINEN SUUNNITTELU

CUDA. Moniydinohjelmointi Mikko Honkonen

Oracle ebs versionvaihto OUGF seminaari / Jyrki Koski Oy Abase Consulting Ab

Tikon Ostolaskujenkäsittely versio SP1

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Suorituskyky- ja tietoturvatestaus Kelassa

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Lisensointikuulumisia - Kustannustehokkuus Oracle lisensoinnissa

Fyysinen suunnittelu

A TIETOKANNAT, 3 op Syksy TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi

IIO10200 Tietokantaohjelmointi (4 op)

Oracle 11g tietokannan päivityksen tarjoamat hyödyt ja kustannussäästöt

SQL - STRUCTURED QUERY LANGUAGE

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Maiju Mykkänen Susanna Sällinen

Tunnelitunnistus. Esittely ELCOPLAST OY

TERADATAN JA SAS DI STUDION YHTEISELO CASE LÄHITAPIOLA

Processor speed: 1.8 GHz Processor type: Intel(R) Xeon(R) CPU Physical memory: 4094 MB

SQL Server 2008 asennus

LINUX-HARJOITUS, MYSQL

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI ( )

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Viljo-Praktiikka ja Kirjanpito -ohjelman versio 3.05 asennusohje uudet käyttäjät

Käyttöjärjestelmät: prosessit

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

TIKONIN TEKNISET SUOSITUKSET

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Aditro Tikon ostolaskujen käsittely versio SP1

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

Virtualisointi Käytännön kokemuksia järjestelmien virtualisoinnista

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

SQL Server 2005 Express Edition tietokannan asennusohje

TIETOKANNAT JOHDANTO

Pikaopas. Valintanauhan näyttäminen tai piilottaminen Avaa valintanauha napsauttamalla välilehteä, tai kiinnitä se pysyvästi näkyviin.

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

SYÖTTÖPOHJA LUKUJEN SYÖTTÖÖN ERI TARKOITUKSIIN

Suomen avoimien tietojärjestelmien keskus COSS ry

Aditro Tikon ostolaskujen käsittely versio 6.2.0

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

ICT4TN Tehtävänanto

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

MONIKANAVAISET OHJELMOITAVAT VAHVISTIMET

Dell Fluid Data TM solutions

JOVISION IP-KAMERA Käyttöohje

Sisältö IT Linux 2001:n uudet ominaisuudet IT Linux 2001:n yhteensopivuus Red Hat 7.0:n kanssa Asennuksen valmistelu

HAME PostGIS-tietokanta

Visma Avendon asennusohje

Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2.

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA

Alueelliset tietokannat

Directory Information Tree

Sovellusarkkitehtuurit

Investointien turvaaminen, yhteensopivuuden ja jatkuvuuden varmistamisen kautta

T Testiraportti - integraatiotestaus

Transkriptio:

Yllätys??

DB2 v9.7 Pullonkaulojen metsästys, metodeja ja esimerkkejä elävästä elämästä

Sisältö Miksi Miten Työkalut Esimerkkejä

Miksi metsästämme pullonkauloja? http://fi.wiktionary.org/wiki/pullonkaula Substantiivi pullonkaula 1. pullon tai vastaavan säiliön osa, joka johtaa suuaukosta säiliöön ja on tätä kapeampi 2. (kuvaannollisesti) ahdas paikka kulkureitillä, kaventuma 3. (kuvaannollisesti) jotain rajoittava ilmiö Talouskasvun suurin pullonkaula on pula ammattitaitoisesta työvoimasta. Tietojärjestelmän toiminnan nopeuttamiseksi pullonkaulojen eliminointi on usein Helpoin Halvin Nopein tapa saavuttaa positiivisia tuloksia.

Miksi metsästämme pullonkauloja? CPU Suorituskyky Levy I/O Muistin määrä

Kysymyksiä? Kun suorituskykyongelma ilmaantuu, on syytä esittää ainakin seuraavat kysymykset: Kuka kuormittaa? Käyttöjärjestelmä Tietokanta Sovellus Valvonta Miten kuormitus jakautuu? Etsitään kipupisteet ja keskitetään tutkinta niihin

Korkea CPU-kuorma Käyttöjärjestelmä Villiintyneitä prosesseja <defunct Zombie> -attack Sovellus Mitä sovellus tekee korkean kuorman aikana? Miksi? Tietokanta Onko paljon sortteja? Löytyykö erityisen huonoja SQLlauseita? statistiikat päivittämättä? Valvontasovellus Onko valvonnan konfiguraatio kunnossa?

Korjaavat toimenpiteet, CPU Voiko sortteja vähentää esim. indeksoimalla? Onko SQL-lauseille mitään tehtävissä? Statistiikkojen päivitys, reorgtarpeiden kartoitus Onko DB2:n parametrisointi kunnossa db2set db2 get dbm cfg db2 get db cfg for <db> Voidaanko sovelluksen toimintaa/ajoituksia/logiikkaa muuttaa? Sovellusmuutokset Valvontapuolen konfiguraation katselmointi/järkeistäminen

Korkea Levy I/O Käyttöjärjestelmä Ovatko levykäsittelyyn liittyvät parametrit kunnossa? Onko levyjärjestelmän konfiguraatio kunnossa? Sovellus Mitä sovellus tekee korkean kuorman aikana? Miksi? Tietokanta Mikä taulu eniten luettu/kirjoitettu? Onko taulutilojen containerjako + stripe set-jako optimaalinen? Onko DB2:n parametrisointi kunnossa? Valvontasovellus Onko valvonnan konfiguraatio kunnossa?

Korjaavat toimenpiteet, Levy I/O Mahdolliset konfiguraatiomuutokset Levyjärjestelmän konfiguraatiotarkistus+ mahdolliset korjaavat toimenpiteet Eniten kuormitettujen taulujen tutkinta Auttaako indeksoinnin tehostaminen? Taulutilojen health check tasaisesti data-alueilla ei liian pieniä, ei liian isoja 1 stripe set should be enough for everyone Onko DB2:n parametrisointi kunnossa Sovellusmuutokset

Korkea muistin käyttöaste Käyttöjärjestelmä Onko muistisyöppöjä/muistivuotoja? Onko sivutusta? Sovellus Mitä sovellus tekee korkean kuorman aikana? Miksi? Tietokanta Onko muistiparametreissa korjattavaa? Bufferpoolien tarkistus, riittääkö muisti? Valvontasovellus Onko valvonnan konfiguraatio kunnossa?

Korjaavat toimenpiteet, Muisti Käyttöjärjestelmän parametrimuutokset DB2:n konfiguraatiomuutokset Onko tarvetta rajoittaa DB2:n käyttämää muistia instanssi/kantakohtaisesti DB2:n Automatiikka ja sen toiminnan tarkistus Sovellusmuutokset Valvonnan parametrisointimuutokset

Työkaluja ja Apuvälineitä CPU topas Levy I/O ps vmstat iostat nmon db2top DB2 Event monitor DB2 DB2 snapshot DB2 system views Tivoli db2pd patrol db2mtrk Muisti

Työkalut ja apuvälineet, esimerkkejä Patrol-monitoroinnista otettuja yhdistelmägraafeja. Agents+agents executing+cpu ja DB2:n data-alueiden kuormitus

db2top / Dynamic SQL Db2top d <database> D->dynamic sql z 4 ->sort average exec time:n mukaan V ->default schema explaineja varten L <hashvalue> ->koko lause e->explain

db2top / Pullonkaulat B->Bottlenecks

db2top / Taulutilat T->Tablespaces z 1 -> sort RowsRead:n mukaan k ->actual/delta arvot

Esimerkkejä pullonkauloista #1 Ongelma: Ilmoituksia päivittäin satunnaisesti hidastelevasta verkkoyhteydestä Kyseessä radioasema, joka striimaa audion serveriltä Business-kriittinen ongelma Ratkaisu: Kävin kytkemässä näytönsäästäjän serveriltä pois päältä Ongelma: Serverin CPU tapissa usean päivän ajan Päivittäin ajettava eräajosovellus "villiintynyt" Zombie attack Korkea CPU-kuorma Koko järjestelmän hidastuminen Ratkaisu: Eräajo-ohjelman parametrit vinossa, jäi "hullun looppiin". Kun parametrit oli korjattu, niin kaikki oli taas hyvin

Esimerkkejä pullonkauloista #2 Ongelma: Tietokannasta ajetaan päivittäin myyntiraportteja n. 10kpl, kesto 10min/kpl Tutkittiin mahdollisia indeksointivaihtoehtoja Tutkittiin SQL-parannuksia Ratkaisu: Tiedustelu asiakkaalta raporttien tarkoituksesta tuotti vastauksen "Ei tuota enää tarvita, korvasimme sen uuden järjestelmän raporteilla jo 6 kk sitten" Ongelma: Patrol-valvonta vie yhden CPU:n verran moniprosessorijärjestelmässä, jossa ei ole vielä yhtään kuormaa DB2 9.1->9.5 ->uusi versio Patrol-agentista->kovempi "peruskuorma" kuin mitä odotettiin Ratkaisu: Disabloitiin patrol-agentista applikaatiotason valvonta, ylimääräinen kuorma katosi heti

Esimerkkejä pullonkauloista #3 Ongelma: Tietokantapalvelimen levykuorma 100% muutamalla data-alueella satunnaisesti Satunnaista hidastelua Yksittäistä syytä/sql-lausetta ei löytynyt Tarkemmassa tutkinnassa kävi ilmi, että muinaisessa menneisyydessä oli yritetty sijoitella taulutilojen data-alueita fiksusti siten, että kuorma jakaantuisi tasaisesti kaikkien levyalueiden kesken Osassa taulutiloja 1-2 kontaineria, osassa 20 containeria, tämä kaikki jaoteltuna 7:n filesysteemiin Ratkaisu: Kontainerjaon tasaus, ne taulutilat joissa oli vähemmän kuin 7 kontaineria saivat uusia kontainereita, ne taulutilat, joissa oli paljon kontainereita tasattiin myös tasan levyalueiden kesken

Esimerkkejä pullonkauloista #4 Ongelma: Satunnaisia hidasteluja partitioidun taulun lukemisessa Yksi SQL nopea, toinen hidas Pitkällinen tutkinta ja analyysi testijärjestelmässä Yhden datapartition alla olevaan taulutilaan lisätty kontainereita useaan otteeseen begin new stripe set-komennolla lisäten pelkästään yksi container Ratkaisu:Usean stripe setin poisto begin new stripe set, uudet containerit joka data-alueelle dropattiin vanhat containerit->rebalance Vaihtoehtoinen ratkaisu #1: Restore redirect uudella containerjaolla Vaihtoehtoinen ratkaisu #2: Restore dropaten allaoleva kanta-> containerit tulivat yhteen stripe settiin

Kysymyksiä ja avointa keskustelua