Ylikuormasta ja sen hallinnasta
Työskentelin 1998-2006 yhtenä Nokian 3G-puhelinverkkolaitteiden pääarkkitehdeistä. Rakensimme yli 1000 prosessorin hajautetun reaali-aikaisen korkean luotettavuuden (yli 99,999%) järjestelmän 3G-puheluiden ja datan välittämiseen.
![]() |
| Nokia, 2006 |
Korkea luotettavuus tarkoittaa montaa asiaa. Aivan erityisesti se tarkoittaa sitä, että järjestelmä ei saa kaatua. Jos jokin osa järjestelmästä kaatuu, muiden osien on saumattomasti otettava tehtävät haltuun ilman, että puhelut katkeavat tms.
Yksi merkittävä ongelma kaikissa järjestelmissä on ylikuorma. Mikä tahansa järjestelmä kaatuu, jos sille annetaan väkisin liikaa tehtäviä. Kaatuminen voi johtua muistin loppumisesta, ajastimien laukeamisesta ja monesta muusta syystä.
Tästä syystä minkä tahansa järjestelmän ylikuormittumaan on huono idea. Järjestelmä on laadittava siten, että
- Järjestelmä pyrkii estämään ylikuorman syntymisen esimerkiksi käyttämällä lippukassaa, joka rajoittaa järjestelmässä olevien tehtävien määrää.
- Järjestelmä huomaa, jos ja kun kohdan 1. mukainen ylikuorman estäminen ei onnistu ja ylikuormaa pääsee syntymään.
- Järjestelmä kestää hetkellisen ylikuorman kaatumatta niin kauan kuin ylikuorma on pieni.
- Järjestelmä toipuu ylikuormasta. Tämän voi tehdä esimerkiksi hylkäämällä palvelupyynnöt kunnes ylikuorma on kadonnut tai lopettamalla vähemmän tärkeitä tehtäviä (puhelinverkossa näet on aina pystyttävä välittämään hätäpuhelut)
Näitä neljää periaatetta on erittäin hyvä puntaroida ja noudattaa myös tuotekehityksen johtamisessa. Tuotekehitysessä ylikuormalta varjeltava järjestelmä on tuotekehityksen henkilöstö. On olennaista johtamista pystyä toimimaan em. periaatteiden mukaan. Tämä edellyttää hyvää työsuunnittelua, tehtyjen töiden rehellistä raportointia, raporttien ottamista tosissaan ja ankaraa tehtävien priorisointia tilanteissa, jossa yllättävistä syistä pääsee ylikuormaa syntymään.
Ylikuormaan liittyy myös toinen periaate, joka on syytä ottaa vakavasti ihmisten työtä suunniteltaessa ja johdettaessa: ei pidä koskaan allokoida prosessorien kuormaa yli 80%, koska silloin tehtävien välillä vaihtaminen lisääntyy ja varsinaiseen tuottavaan laskentaa jää yhä pienempi osa prosessorin kapasiteetista. Sama pätee ihmisiin: jos ihmisen työkuorma on lähes 100%, hän ei pysty reagoimaan yllättäviin tehtäviin.

Kommentit