Väljakutse: Kuidas performance profilida klassikalist ASP saiti?

by melborp 7. september 2009 23:34

On järgmine olukord. Loodud on kunagi üks lahendus, millel on terve posu klassikalisi ASP lehti. Neid hetkel upgradida ASP.NET peale ei saa. Tagataustal (ärikiht, mida ASP –i lehed kasutavad) on .NET –i DLL –d läbi COM+ –i ja COM –i DLL –d.

  • Kas keegi teab vahendit, millega ASP –i lehel jooksutatavat koodi oleks võimalik profilida? (vaadata, palju iga meetodi käivitamine mingi objekti juures aega võtab).
  • Kas keegi teab, et niisugune asi on võimalik üldse?

Siiamaani parim lahendus, ASP jaoks on see, et lehele lisada koodijupp, millega meetodi käivituse alguses timer käima panna ja lõpus seisma ning kuvada selle meetodi töötamisaeg välja. Sellega ei saa sügavale minna, aga ASP –is oleva koodi ajad saaks kätte. Eks midagi sarnast saaks ka sügavamale pookida, et salvestaks meetodite jooksmisajad ntx andmebaasi vms.

Tags:

Performance

Huvitav leid: Sharepointi koodimise parimad praktikad

by melborp 5. november 2008 00:21

Üks Microsofti Sharepointi insidentidega tegelev inimene on kirjutanud väga kasulik parimate praktikate loetelu just jõudlusest lähtudes. Soovitan kõigil Sharepointi arendajatel antud stsenaariumitele ja viidetele pilk peale visata.

Siit tuleb välja kaks väga kasulikku Sharepointi blogi:

Tags:

Microsoft | Huvitav leid | Performance | Sharepoint development

SP1 laine on käes - VS2008, .Net 3.5, TFS

by melborp 11. august 2008 18:19

Mõned hetked tagasi tuli pressiteade, et Microsoft on välja lasknud Visual Studio 2008 SP1, .Net 3.5 SP1 ja Team Foundation Server 2008 SP1.

Antud Service Packid ei ole tavalised Microsofti mõttes, kuna ei sisalda ainult parandusi, vaid ka hulganisti uut funktsionaalsust, mida kliendid nõudsid. Hea info on kokku pandud aja jooksul kõigi teiste poolt ja kasutan seda siin ära.

Mida uut siis service packiga?

The .NET Framework 3.5 SP1 delivers:

  • Performance increases between 20-45% for WPF-based applications – without having to change any code
  • WCF improvements that give developers more control over the way they access data and services.
  • Streamlined installation experience for client applications (.Net Framework Client Profile)
  • Improvements in the area of data platform, such as the ADO.NET Entity Framework, ADO.NET Data Services and extensive support for SQL Server 2008’s new features.

Visual Studio 2008 SP1 delivers:

  • Improved designers for building WPF applications
  • Full support for SQL Server 2008 (formerly known as SQL Server Katmai)
  • ADO.NET Entity Framework and ADO.NET Data Services tooling
  • Visual Basic and Visual C++ components and tools (including an MFC-based Office 2007 style ‘Ribbon’)
  • Improvements to TFS to respond to customer feedback on version control usability and performance, improved email integration with work item tracking and full support for hosting on SQL 2008.
  • Improvements for Web development including richer JavaScript support, enhanced AJAX and data tools, and Web site deployment.

Lingid, kust tõmmata paketid:

Lisainfo täienduste, paranduste kohta:

Tags:

.Net | ASP.Net | Microsoft | Uudis | Visual Studio 2008 | Team Foundation Server 2008 | Performance | Viited

Miks kindlasti aktiveerida MOSS 2007 -l avalikustamisteenused

by melborp 12. detsember 2007 11:05

Üks võimalik jõudlusprobleem võib tekkida MOSS 2007 -e lahendusel siis, kui ei ole aktiveeritud avalikustamisteenuseid (WSS 3.0 -l ma niisugust teenust ei leidnud). Nimelt tekivad teada olevalt juhuslikel hetkedel listides ringi käies või listielemente vaadates/manipuleerides keerukad metaandmete päringud, millede kompileerimisaeg võib olla rohkem kui 10 sekundit (natukene oleneb SQL serveri ressurssidest ja koormusest). Mitmete sarnaste päringute samaaegne tekkimine võib aga põhjustada olukorda, kus klient ootab browseris vastust mitmed minutid, sest SQL tegeleb päringu kompileerimise ja protsessimisega ning samade metaandmete tabelitele ligipääsu soovijaid on nüüd kaks või enam ja toimub konkureerimine ning lockimine nende kahe või enama soovija vahel.

Avalikustamisteenus sisaldab endas ka Sharepointi cachimise funktsionaalsust, millest tähtsaim on ObjectCache -i olemasolu. ObjectCache -i abil hoitakse mälus erinevaid saidi attribuutikaid ning andmeid, mis kokkuvõttes muudavad Sharepointi toimimise efektiivsemaks ja siiamaani näitab kogemus, et niisuguseid keerulisi metaandmete päringuid enam ei teki.

Kes on korralik SQL -i freak, võib vaadata kahte näidispäringut, mida silmas pidasin siit ja siit.

Kuidas aktiveerida avalikustamisteenust?

Esiteks olenevalt saidi tüübist, mille te olete loonud, see kas on vaikimisi aktiveeritud või mitte. Kui soovite kontrollida, siis leiate Site Actions -> Site Settings -> Site Features alt publishing service (või väga sarnane pealkiri) - active või deactive olekus. Sealt samas saate ka aktiveerida. Seejärel ilmub hunnik uusi menüü elemente Site Actions alla ja kui minna kõikkide saitide seadeid muutma, siis saidi saidikogumi administreerimise tulbas on saidikogumi objektivahemälu viide (ehk Object cache), kus on võimalik määrata seadeid objekti cache osas (siit leiate parema juhendi).

Kuna ma sharepointi jõudlusest juba räägin, siis lõpetuseks lisaks mõned head viited parimatele praktikatele, kui progete sharepointile custom lahendusi.

Tags:

Performance | Sharepoint development | Sharepoint

Võimalik IIS -i rakenduse jõudlusprobleem

by melborp 12. detsember 2007 11:01

Hiljuti kirjutasin postituse Sharepointi IIS -i application pool -i konfigureerimisest. Seal kirjeldasin konfiguratsiooni, mida vaikimisi kasutan Sharepointi juures (ja olen selle õppinud ühelt Technical Evangelistilt Sharepointi teemal, kes sisemiselt sharepointiga tegeleb). Samas iga IIS -i rakenduse puhul tuleb application pool seadistada vastavalt serverile, rakenduse nõuetele ja rakenduse ressurside kasutamisele (vajadustele).

IIS -i application pool -i seadete aknas on ka rakenduse tööprotsessi mälu vabastamise konfigureerimise võimalus. Minu kirjutatud postituses seadsin limiidi nii füüsilisele kui ka virtuaalsele mälule ja ma igati soovitan need limiidid määrata. Küsimus on ainult suuruses ja ajastuses ning sellest ma ka täna räägin. Et te ei peaks oma IIS -i kohe lahti tegema ning õiget akent otsima hakkama, siis all on pilt, millest juttu tuleb.

recycling_wp

Kui te seate niisugused limiidid, tuleb endale teadvustada, et kui virtuaalne või füüsiline mälu maht kasvab antud limiidini, siis tööprotsess tapetakse ära ning järgmine request saidi poole tähendab saidi kompileerimist ja cachimist ning ka kõik alamsaitidele minemised on esmakordsed ning protsess sama. Igatahes on teil esimese laadimise performance hit. Mis on täiesti loogiline.

Nüüd teil võib tekkida antud limiitide seadmisest jõudlusprobleem - olukord, kus tööprotsessi hakatakse tapma liiga tihti ja just selle tulemusena, et limiidid on liiga väiksed seatud. Kusjuures jõudlust hinnates, ei pruugi esimese mõttena just IIS -i applicationi pooli peale mõelda - üldse igasuguse jõudlusprobleemi leidmine ja lahendamine on tihti peale keerukas ja aeganõudev protsess.

Kuidas tuvastada jõudlusprobleemi seoses tööprotsessi tapmise/suremisega (recycle).

Üks lihtne viis on avada Task Manager ning jälgida, mis tööprotsess konkrteetse saidi juures käima läheb ning jälgida, kas käies lehel ringi tööprotsess sureb ja kui tihti. Veidi tülikas tegevus.

Järgmine viis on seadistada IIS jälgima kindla application pool -i tööprotsesside recycle sündmusi. Selle seadistamine on väga lihtne ning peale seadistuse, tuleb vaid oodata kirjeid System EventLog -i. Kusjuures teated on informatiivsed! (et te ei otsiks warning või error teateid). See et tööprotsess recycle -takse on normaalne osa application pooli tääprotsesside elutsükklist.

Õpetus antud sündmuste jälgimise seadistamiseks leiate siit.

Lisaks sellele on võimalik detailselt jälgida application pool -i tööprotsessi kasutades IIS Diagnostics Toolkit -i (jõudluse teemal lisainfot). Antud toolkit sisaldab erinevaid vahendeid IIS -i logide, rakenduse tööprotsesside jne info kogumuseks ja analüüsimiseks. Näiteks IIS Debug Diagnostics tool -ga on võimalik kindlat protsessi jälgida ning hiljem vaadata, kuidas mäluga ümber käidi (jm jõudlusandmeid). IIS log parser võimaldab analüüsida IIS -i logisid.

Nüüd, minul on konkreetne kogemus virtuaalse mälu limiidi täitumisega, füüsilist mälu kasutust on kuidagi kergem hinnata ja sellega on probleeme harvem. Mulle tundus selle projekti juures, et füüsilisele mälule vastavalt oli alati kaks korda rohkem virtuaalset mälu kasutuses. Nii, et kui te seate piirangud samas nii füüsilisele kui ka virtuaalsele ja see limiit ei ole väga suur, siis võite arvata, et varsti hakkab tööprotsess regulaarselt otsi andma.

Mis asi see virtuaalne mälu on, selle kohta lugege siit. Antud lehel on välja toodud ka OS -i piirangud virtuaalsele mälule. Igatahes Win2k3 -s Task Manageris olev veerg VM Size, ei näita seda numbrit. Administrative tools all on olemas viide niisugusele rakendusele nagu Performance, mis võimaldab erinevaid süsteemi jõudlus lugejaid (performance counter) vaadata ja selle abil näete ka oma tööprotsessi virtuaalse mälu toimimist (lisage perf. counter Process alt õigele w3wp protsessile). Teine variant on panna IIS Debug Diagnostics tool jälgima protsessi ning saate ka teada virtuaalse kasutuses oleva mälu suuruse lisaks muule infole. Jälgige ja leidke omale sobiv limiit virtuaalsele mälule.

Minu soovitus hetke kogemuse põhjal - virtuaalse mälu limiit peaks olema ~1.5-2x füüsiline mälu.

Tags:

Performance | IIS 6.0

Minule väärtuslikud juhendid MSDN -i raamatukogus

by melborp 4. oktoober 2007 12:26

Oma erinevate taskide jooksul jõudluse teemal on läbivalt olnud väärtuslik üks Microsofti jõudluse (ehk performance) juhend MSDN -i online raamatukogus. See on olnud lausa nii väärtuslik, et ma postitan lühidalt sellest ja viitan sellele.

Juhend on küll kirjutatud mõnda aega tagasi .Net 2.0 -i jaoks aga enamus kehtib veel hetkel. See võib küll muutuda .Net 3.5 -e välja tulemisel, aga loodan ka juhendi uuenemisele siis.

Terve juhend: Improving .NET Application Performance and Scalability

Väärtuslikeim peatükk siiamaani: Chapter 5 — Improving Managed Code Performance

Ja kui sellest juhendist ei piisa või on huvi ka muude teemade vastu, siis soovitan vaadata loetelu juhenditest MSDN -s.

Tags:

.Net | Arendus | Performance

Autorist

Taavi Kõosaar

 Tere, olete sattunud mu blogi peale. Olen Taavi Kõosaar - tarkvara arendaja, arhitekt ja konsultant keskendudes arendamisele .NET -i platvormil. Hetkel asun peamiselt Rootsis, kus töötan Süsteemi Arhitektina toote/teenuse arendamisel, mida kasutatakse üle Euroopa. Lisaks tööle blogin, kirjutan artikleid, pean loenguid, treeninguid, reisin, loen raamatuid, sukeldun, teen sporti, fotografeerin, osalen Eesti arendajate kommuunis ...

Siit leiate minu mõtisklused ja seiklused tarkvara arendamisega, .NET -ga ja Team Systemiga.

Kalender

<<  september 2010  >>
estekonerela
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar

Liikmelisus

www.eneta.ee

Team System MVP

Tutvu minu LinkedIn profiiliga

Minu Eneta profiil

Lugejatest

Kaart:

Lugejad:

Hetkel lehel:

hit counters

Külastajaid:

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

Siin toodud arvamuseid saab käsitleda vaid kui minu isiklike arvamusi, need ei kajast vähimalgi kombel ühegi minu tööandja arvamusi ja nägemusi.

© Copyright 2010 Melborp.NET