PANTHEON™ navodila

 Kazalo
 Glavna stran - Dobrodošli v PANTHEON navodila
[Collapse]PANTHEON
 [Collapse]Vodiči za PANTHEON
  [Expand]Vodič po PANTHEON-u
  [Expand]Vodič po PANTHEON Farming
  [Expand]Vodič po PANTHEON Retail
  [Expand]Vodič po PANTHEON Vet
 [Collapse]Uporabniški priročniki za PANTHEON
  [Expand]Uporabniški priročnik za PANTHEON
  [Expand]Uporabniški priročnik za PANTHEON Retail
  [Expand]Uporabniški priročnik za PANTHEON Vet
[Collapse]PANTHEON Web
 [Collapse]Vodiči za PANTHEON Web
  [Expand]Vodič po PANTHEON Web Light
  [Expand]Vodič za PANTHEON Web Terminal
  [Expand]Vodič za PANTHEON Web Legal
  [Expand]Arhiv starih izdelkov
 [Collapse]Uporabniški priročniki za PANTHEON Web
  [Expand]Kako začeti
  [Expand]Uporabniški priročnik za PANTHEON Web Light
   Uporabniški priročnik za PANTHEON Web Terminal
  [Expand]Arhiv starih izdelkov
  [Expand]Uporabniški priročnik za PANTHEON Web Legal
[Collapse]PANTHEON Granule
 [Collapse]Vodiči za PANTHEON Granule
  [Expand]Granula Kadri
  [Expand]Granula Potni nalogi
  [Expand]Granula Dokumenti in Opravila
  [Expand]Granula Nadzorna plošča
  [Expand]Granula B2B Naročanje
  [Expand]Granula Servis na terenu
  [Expand]Inventar fiksnih sredstev
  [Expand]Granula Inventura skladišča
 [Collapse]Uporabniški priročniki za PANTHEON Granule
   Začetek
   Primer uporabe PANTHEON Granul v namišljenem podjetju
  [Expand]PANTHEON Granule in aktivacija
  [Expand]Granula Kadri
  [Expand]Granula Potni nalogi
  [Expand]Granula Dokumenti in opravila
  [Expand]Granula B2B naročanje
  [Expand]Granula Nadzorna plošča
  [Expand]Granula Servis na terenu
  [Expand]Granula Inventura osnovnih sredstev
  [Expand]Granula Inventura skladišča
   PANTHEON Granule - pogosta vprašanja in odgovori
   Arhiv
[Expand]Uporabniške strani

Load Time: 421,8831 ms
"
  6613 | 1 | |
Label


Podešavanje MS SQL servera za veća Pantheon™ okruženja

  Ukoliko se odlučite za veća okruženja, isporuka besplatne verzije MS SQL Express nije dovoljna, zato se držimo za Standard ili Enterprise verzije. U nastavku sledi nekoliko osnovnih koraka, pri planiranju i pripremi sistema, gde će biti pokrenut Pantheon™ server.  

Disk polja

 

Potrebna su sva tri odvojena raid1 polja, sastavljena iz svih šest diskova:

prvo polje koristimo za sistem, pagefile, podešavanje SQL

drugo polje koristimo za sistemske baze, uključujući i TEMPDB

treće polje koristimo za produkcijske baze

Ukoliko imamo na raspolaganju 8 diskova, koristimo četvrto polje za loge.

Poželjno je, da sistemski raid polje bude poravnat. Za disk polja, gde se nalaze SQL baze su neophodne. U slučaju upotrebe operacionog sistema Windows Server 2008 je to napravljeno automatski, u slučaju Windows Server 2003 , napravimo ručno sa komandom diskpart. Donji primer pokazuje postupk pripreme aligned particije na jednom od raid polja:

diskpart

list disk

select disk <x>

create partition primary align=1024

assign

exit

 

Particije, gde se nalaze SQL baze je potrebno formatirati sa 64KB cluster size.

Ukoliko je SQL sistem već uspostavljen, alignment particije možemo proveriti sa komandom:

    wmic partition get BlockSize, StartingOffset, Name, Index

  Ispisan starting offset delimo sa blocksize. Ukoliko dobijemo neparnu vrednost (npr. 63), particije nisu pravilno pripremljene, što znači da 20% - 40% sporije radi SQL na različitim IO opterećenjima.

Možemo proveriti i prikladnost cluster veličine, sa komandom:

    fsutil fsinfo ntfsinfo c:

    Ukoliko je medju ispisanim vrednostima »Bytes Per Cluster« drugačije od 65536, particija nije pravilno formatirana, jer negativno utiče na IO mogućnosti SQL servera.   Procesorske mogućnosti i memorije Zahteva mogu biti veoma različite, te se preporučuje minimum dual core Xeon sistemi i 8GB memorije kao i 64 bitni sistem.

 

TempDB

 

Preporučujemo da se ima jedan data file za svaki fizički CPU core u sistemu. Kao primer možemo koristiti produžen procesor Intel Xeon E5620, koji ima 4 fizičke core odnosno 8 virtuelnih (hyperthreading). U tom slučaju je optimalno imati 4 data file za tempdb. Svi data file-ovi moraju biti jednako veliki.

data filu za tempdb se preporučuje unapred dodeljen disk prostor, da se izbegne fragmentacija.

Primer pripreme dodatnog datafila sa 10GB prealocated prostora:

USE [master]

GO

ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdata2', FILENAME = N'e:\sql\templog2.mdf' , SIZE = 10240000KB , FILEGROWTH = 10%)

GO  

 

Analiza brzine rada Pantheon™ baze podataka - sistem

Konstatujući usporavanje rada, za prvi korak preporučujemo izvodjenje procesa nadogradnje Pantheon™ baze, jer se tako uspostavi optimalno stanje baze podataka:

poprave se indexi i tasteri /ključevi/ na tabelama

popravi se referentni integritet medju tabelama

dodaju se nova polja, urede postojeća i uklone suvišna

Pri nadogradnji moramo biti pažljivi, da uklopimo mogućnost »Nadogradnja svih objekata«. S ovim proveravamo celokupnu Pantheon™ strukturu i popravljamo greške, koje je moguće izazvati spoljnim faktorom (dodatne implementacije).

Preporučeno je menjanje performansi counterjev, na nivou Microsoft-ovog operacionog sistema:

Memory Commited Bytes – ukoliko ima izdvojene memorije više, nego što je  sistempotrebno proširiti memoriju, jer je to swapping /zamenjivanje/.

Memory Available Mbytes – ukoliko padne ispod 5%, potrebno je proširiti memoriju

PhysicalDisk Idle Time – ukoliko često padne ispod 15%, znači da su disk polja preopterećena

PhysicalDisk Read Latency & Write Latency – ukoliko često prelazi 30ms, potrebno je pregledati strukturu disk polja, sql zahteve, u skladu sa particijom za best practice ipd.  

 

Analiza brzine rada Pantheon™ baze podataka – SQL

Proverimo, koliko se vremena podaci čuvaju u cachu. Vrednosti »page life expectancy« su kritične, preporučene su u rangu oko 1000. Za pravilnu sliku, donji panel se izvodi svakih 5 minuta tokom dužeg perioda, da bi uzorak bio reprezentativan. Nakon startovanja više servera kontrolnih sistema (pre svega ugradjen lokalni MS data collection), mogu imati negativan uticaj na ukupne performanse servera, jer analiza podataka se uradi lokalno.

 

 

select b.total - a.db as 'Plan Cache Size', c.ple as 'Page Life Expectancy'

from

( select cntr_value as db

from sys.dm_os_performance_counters

where object_name like '%Buffer Manager%' and counter_name like 'Database pages%' ) a, 

( select distinct cntr_value as total

from sys.dm_os_performance_counters

where object_name like '%Buffer Manager%' and counter_name like 'Total pages%' ) b,

( SELECT cntr_value AS ple

FROM sys.dm_os_performance_counters

WHERE object_name like '%Buffer Manager%'

AND counter_name = 'Page life expectancy' ) c

 

Proverimo najzahtevnije operacije p oCPU i sa donjim querijema. Problemi uglavnom nastupaju posle korisnikovih završenih procesa (sloppy programming, indexi, full table scani,...). Na osnovu rezultata,  zahtevne operacije se  analiziraju i po potrebi optimizuju.

 

-- top 10 CPU

SELECT TOP 10

  qs.execution_count,

  total_CPU_secs = qs.total_worker_time/1000000,

  average_CPU_secs = (qs.total_worker_time/1000000) / qs.execution_count,

  total_elapsed_time_secs = qs.total_elapsed_time/1000000,

  query = st.text,

  qp.query_plan

FROM

  sys.dm_exec_query_stats AS qs

  CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st

  CROSS apply sys.dm_exec_query_plan (qs.plan_handle) AS qp

  ORDER BY qs.total_worker_time DESC

 

-- top 10 I/O

SELECT TOP 10

  qs.execution_count, qs.total_logical_reads, 

  qs.total_elapsed_time, qs.max_elapsed_time,

  qs.last_elapsed_time, qs.last_execution_time,

    SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,

    ((CASE qs.statement_end_offset

    WHEN -1 THEN DATALENGTH(qt.text)

    ELSE qs.statement_end_offset

    END - qs.statement_start_offset)/2)+1) as query,

  qp.query_plan

FROM sys.dm_exec_query_stats qs

  CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt

  CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp

  WHERE qt.encrypted=0

  ORDER BY qs.total_logical_reads DESC

 

Preporučujemo da proverite integritet baze podataka sa:

 

USE Pantheon

GO

DBCC CHECKDB WITH NO_INFOMSGS

 

Pogrešna instalacija ili nedostajeći indexi su čest uzrok problema performansi. Česti problemi prouzrokuju i fragmentaciju indexa ili update statistiku tabela. Fragmentaciju indexa proverimo sa:

 

USE Pantheon;

SELECT a.index_id, name, index_type_desc, avg_fragmentation_in_percent

FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'Production.Product'),

     NULL, NULL, NULL) AS a

    JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id

WHERE name not like 'NULL' AND avg_fragmentation_in_percent > 10

ORDER by avg_fragmentation_in_percent DESC

GO

 

Preporučujemo i nedeljno izvodjenje rebuilda indexa kao i update statistika sa:

 

USE Pantheon;

GO

DECLARE @TableName VARCHAR(255)

DECLARE @sql NVARCHAR(500)

DECLARE @fillfactor INT

SET @fillfactor = 80

DECLARE TableCursor CURSOR FOR

SELECT OBJECT_SCHEMA_NAME([object_id])+'.'+name AS TableName

FROM sys.tables

OPEN TableCursor

FETCH NEXT FROM TableCursor INTO @TableName

WHILE @@FETCH_STATUS = 0

BEGIN

SET @sql = 'ALTER INDEX ALL ON ' + @TableName + ' REBUILD WITH (FILLFACTOR = ' + CONVERT(VARCHAR(3),@fillfactor) + ')'

EXEC (@sql)

SET @sql = 'UPDATE STATISTICS ' + @TableName + ' WITH FULLSCAN'

EXEC (@sql)

FETCH NEXT FROM TableCursor INTO @TableName

END

CLOSE TableCursor

DEALLOCATE TableCursor

GO

 

 

  

     


Ali so bila ta navodila uporabna?
Vaše povratne informacije bodo prispevale k boljši pomoči.
Komentarji
Komentarji so izpostavljeni tudi na forumu.