18 okt 2008

Performance

Bij de ABNAMRO ben ik bezig met een proces management applicatie die in Lotus Domino gebouwd is.

Deze applicatie bestaat uit twee databases, een productie en een archief database. Met name het archief heeft een forse omvang: 22 Gig. 90% Van deze omvang wordt ingenomen door attachments.

De applicatie kent ongeveer 500 gebruikers, en er worden per dag een paar duizend transacties op de database gedaan.

De gebruikers bevinden zich door het hele land en zijn verdeeld in 5 regio's

De applicatie managed alle processen omtrend CCU en top MKB klanten. Aan de hand van de doorlooptijden van processen worden prestaties zichtbaar gemaakt en deze prestaties vormen de basis om afdelingen af te rekenen op hun funtioneren.

Nu wil het geval dat er veel klachten zijn met betrekking tot de performance van het systeem.

Een van mijn opdrachten is om deze performance te verbeteren. Hiervoor heb ik reeds de volgende stappen ondernomen:

  • De applicatie verhuisd naar twee nieuwe clustered servers.
  • "Load balancing" met behulp van een stukje javascript toegepast.
  • Applicatie functies herschreven zodat ze efficienter worden.
  • Het archief verkleind door oude documenten te verwijderen
  • Alle attachments in het archief gezipped
  • Views geoptimaliseerd
  • Controle uitgevoerd op collations
  • Network load balancing en failover in gang gezet

Toch zijn er nog steeds gebruikers die de performance als onvoldoende ervaren. Nadat ik zelf naar een van de regio's ben gegaan moet ik ze daar gelijk aan geven. Het gebruik van de applicatie is daar ook erg traag maar het hele netwerk is in de desbetreffende regio traag. Het openen van bijvoorbeeld nu.nl kan zomaar enkele sec. duren.

Blijkbaar hebben de gebruikers in de regio dus last van netwerk latency of een te kleine bandbreedte. Om het een en ander inzichtelijk te maken heb ik een stukje code geschreven en die via mail naar de gebruikers gestuurd. Deze code meet de netwerk Latency dmv het uitvoeren van een aantal pings op de twee domino servers. Het resultaat wordt vervolgens weer terug gestuurd naar mij zodat ik de informatie kan verwerken. Dit wil ik even een weekje volhouden en dan kijken wat er uit komt.

Iemand nog andere iedeeen om de performance te verbeteren??

Geen opmerkingen: