Ricerca in FOLBlog

[SdSM] La Vittima ed il Carnefice

 Scritto da alle 06:27 del 30/10/2011  Aggiungi commenti
Ott 302011
 
closeQuesto articolo è stato pubblicato 5 anni 9 mesi 18 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

image

Tempo addietro, uno dei nostri clienti (CL per gli amici), ebbe l’idea di mettere in piedi una specie di "web service" per raccattare certe informazioni da vari sensori tramite una rete radiocellulare per visualizzare il tutto su una specie di "mappa interattiva". La loro idea era di vendere il servizio a diversi enti e societa’ e, una volta messa in piedi la cosa, semplicemente sedersi e guardare i soldi arrivare a carriolate.

Ovviamente tra il dire ed il fare c’e’ di mezzo "e il".

Prima di tutto si resero conto che per poter raccattare le informazioni in modo continuo un solo server non e’ sufficiente, ce ne vogliono due in un cluster in modo da avere una ragionevola continuita’ del servizio.

Poi occorre mettere in piedi il sistema vero e proprio. Dopo aver lungamente lamentato dei costi relativi all’hosting, CL ha deciso di sviluppare il tutto in .NET con un backend di SQL Server. Ed allo scopo di ridurre i costi hanno prontamente deciso di utilizzare la versione "free" e prontamente il db si incatasta dopo aver raggiunto e superato i 20 Gb di dimensione.

La ditta incaricata di scrivere tutto l’accrocchione (da ora in poi $massadirimbamba) fa’ apparire $brancodipaguri come un mostro di efficienza e di intelligenza.

Una delle prime attivita’ che questi portano a termine e’ lo scrivere un "servizio" che raccoglie le informazioni inviate dai vari sensori e schiaffarle nel database. La descrizione del servizio in questione rivela la mastodontica difficolta’ dell’impresa: il servizio deve "ascoltare" su una specifica porta, raccogliere i messaggi inviati dai vari sensori come una sequenza di caratteri, identificare il sensore in funzione di un "identificativo" facente parte di tale sequenza, dividere il resto in una serie fissa di valori e memorizzare il tutto nel db con un ‘timestamp’.

Una applicazione con un tale livello di complessita’ che io avrei scritto in perl in dieci minuti probabilmente, loro ci hanno messo due mesi e mezzo e .NET.

Il ‘servizio’ viene consegnato come una caterva di .dll piu’ una doppia caterva di file di configurazione (tutti rigorosamente .xml), richiede l’installazione di un server ftp (?), deve essere eseguito con una utenza "guru" (nella documentazione c’era scritto cosi’) e la sua installazione richiede un minimo di 10 riavvi… e poi si scopre che parte delle foxxute DLL vanno in conflitto con altre DLL gia’ esistenti e non funziona una mazza.

Dopo numerose bestemmie e ravanamenti riusciamo finalmente a far funzionare l’accrocchione e scopriamo che il foxxuto coso si ciuccia via l’80% della memoria della macchina ed ha la tendenza di raggiungere il 100% di uso del processore con sorprendente frequenza. Sorprendente e’ anche il fatto che questo capiti sempre tra le 2 e le tre del mattino, con tutta la gioia che il povero pirla dotato di guinzagliocellofono aziendale puo’ provare per la cosa.

Ovviamente, il fatto che quella parte del sistema utilizzi uno sproposito di memoria e tempo di processore non fa’ presagire nulla di buono riguardo alla web-applicascion stessa che dovrebbe usare tale servizio. Ed infatti, non appena questa viene installata, l’intero sistema diventa di una lentezza da far sembrare una lumaca un fulmine di guerra.

Aggiungiamo anche che il foxxuto servizio adesso tende ad incatastarsi molto piu’ spesso e che quando questo succede in genere si incatasta anche la webapplicascion e l’unica e’ un bel calcio nel XXXX ad IIS per far ripartire la cosa (dato che non possiamo prendere a calci i programmatroti).

Tutto questo fino ad una bel (si fa per dire dato che piove a dirotto) venerdi’, quando la $massadirimbamba decide di fare un qualche aggiornamento che richiede una query da 45 minuti sul database (durante la quale l’intero accrocchio deve essere spento ovviamente) ed un bell’aggiornamento al sito ed al famoso "servizio", con nuove DLL. Io gia’ sento puzza di cataclisma.

Ovviamente, il mio suggerimento di evitare un nuovo rilascio sul sistema di produzione al venerdi’ e limitarsi ad un rilascio sul sistema di test (aka: l’altro server che e’ momentaneamente non usato) in modo da verificare che tutto funzichi e poi eventualmente rilasciare il tutto lunedi’ non viene accolto molto bene. Il rilascio viene percio’ schedulato per le 7 di sera (!).

Io metto bene in chiaro che io faccio l’aggiornamento ma poi me ne lavo le mani fino a lunedi’ e se il coso si incanta sono cavoli loro.

Ovviamente il coso si incanta e rimane ‘morto’ fino a lunedi’ mattina, quando trovo 289 mail ad aspettarmi. La diagnosi: la nuova versione del ‘coso’ si ciuccia via tutta la ram e poi va’ in coma. Ripristino le versioni precedenti di sito e ‘coso’, spedisco la diagnosi e tutte le informazioni a CL ed alla $massadirimbamba e poi rimango in attesa della tempesta che gia’ so si scatenera’.

Cio’ che mi ha fatto ridere dell’intera vicenda e’ stata la risposta della $massadirimbamba al "problema memoria", la loro mail piu’ o meno diceva:

"il servizio in questo caso non e’ stato la causa del problema, in questo caso il servizio e’ stato solo una vittima della mancanza di memoria".

Eccerto, lui e’ stato la "vittima" della mancanza di memoria, il fatto che sia lui che si ciuccia via tutta la memoria ne fa’ anche il carnefice, dobbiamo parlare di suicidio? Sgrunt.

Davide

legenda personaggi

Articoli simili:

  • Facebook
  • Twitter
  • Delicious
  • StumbleUpon
  • Wikio
  • Reddit
  • Technorati
  • Segnalo
  • Live
  • Add to favorites
  • Email
  • RSS

 Lascia un commento

Puoi usare questi tag e attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(richiesto)

(richiesto)

Pinterest
EmailEmail
PrintPrint
%d blogger hanno fatto clic su Mi Piace per questo: