
Kas īsti notiek?
Pdf lēndarbība un kļūdas – tur būs jāveic izejas koda analīze. Bet kāpēc viss kopumā ir tik ļoti lēns!? Daži simti pieprasījumi minūtē – tas ir maksimums, kas iet cauri. Virtuālai mašīnai ir 16GB RAM un 4vCPU, kas darbojas uz Intel Xeon X5650. Kas notiek?
32 bitu IIS procesi
Pēc kāda laika uzmanību piesaistīja tieši atmiņas patēriņa līkne. Vai tā ir sakritība, ka līkne pie slodzes “staigā” ap 2Gb?

Bet … Kāda tam nozīme, ja serverim vēl vairāk kā 10Gb neizmantotas atmiņas?
Tomēr kaut ko tas atgādina! Tas taču ir 32bitu procesa lietotājam pieejamās atmiņas limits!
Paskatamies web servera iestatījumos - Bingo! Mums ir 32bitu process un piedzīvojam atmiņas trūkumu, lai arī serverim papilnam brīvas atmiņas.
Tomēr no 32bitu režīma vienkārši atteikties nevaram, jo risinājums izmanto trešās puses 32bitos kompilētas bibliotēkas.
Ieskatāmies izejas kodā

Ir acīmredzams, ka šeit ir atmiņas noplūde. Normālos apstākļos atmiņai vajadzētu atbrīvoties, bet šeit tā ātri uzaug līdz maksimumam un viss apstājas. Skatāmies izejas kodā. Tā, nolasām datus pēc parametriem, aizpildām dataset, attēlojam rezultātus… un saglabājam visu rezultātu kopu sesijas mainīgajā!
Katrs lietotājs – viena sesija. Sesijas dzīves laiks – 30 minūtes. Katra pieprasījuma atgrieztais pieprasījuma apjoms – potenciāli daži tūkstoši ieraksti.
Šī stāsta morāle
Sesijas mainīgais nekur tālāk netika izmantots! :)