Τρια Κιλά Κώδικα - The Serious Blog

Η σοβαρή πλευρά της αστείας πλευράς της Πληροφορικής

Η οικονομική κρίση από μια άλλη οπτική γωνία

Αυτό είναι ένα άρθρο που είχα γράψει το 2011(!) κάπου αλλού. Το θλιβερό της υπόθεσης είναι ότι, παρ'όλες τις αλλαγές κυβερνήσεων, το άρθρο ισχύει στο 100% του ως και σήμερα. Γι'αυτό είπα να το (ξανα)δημοσιεύσω εδώ, για να κλάψουμε όλοι μαζί:

------------

Οχι, δεν είμαι μηχανικός συστημάτων. Είμαι προγραμματιστής. Αλλά μια και ανήκω στο χώρο της πληροφορικής γενικότερα, (αν και ενδέχεται να ακουστεί αστείο η/και απλοϊκό), κάποια στιγμή διαπίστωσα ότι η Ελληνική οικονομική κρίση έχει τα ίδια χαρακτηριστικά με το εξής σενάριο που συναντούν αρκετά συχνά οι μηχανικοί συστημάτων:

Εχεις ένα σύστημα με συγκεκριμένη RAM. Κάποια στιγμή ανακαλύπτεις ότι μια διεργασία, κρίσιμη για τη σταθερότητα του συστήματος στο σύνολό του, δεν τη “βγάζει” με τους πόρους που έχει στη διάθεσή της, συνεπώς χρειάζεται λίγη ακόμα μνήμη. Δυστυχώς δεν μπορείς να τροποποιήσεις τις απαιτήσεις της συγκεκριμένης διεργασίας. Ομως, το σύστημα χρησιμοποιεί ήδη το 100% της RAM που έχει στη διάθεσή του. Πρέπει να ενεργήσεις άμεσα. Τι κάνεις;

Οπως θα σκεφτόταν κάποιος που ανήκει στο χώρο αυτό, η αναγκαστική βραχυπρόθεσμη επιλογή θα ήταν η παύση ορισμένων διεργασιών ή ο περιορισμός τους ώστε να αποδεσμευθεί μνήμη για να δοθεί στη συγκεκριμένη διεργασία. Αυτό θα μπορούσε να στοιχίσει ακριβά, με την έννοια οτι κάποιες διεργασίες μπορεί να γίνουν λιγότερο αποτελεσματικές ή να σταματήσουν να λειτουργούν εντελώς. Ομως, είναι η μόνη λύση: Η αυτό ή χάνεται όλο το σύστημα.

Έτσι λοιπόν αποφασίζεις (όσο πιό γρήγορα γίνεται) να εντοπίσεις τις διεργασίες που είναι λιγότερο σημαντικές σε σχέση με άλλες, και ταυτόχρονα λιγότερο σημαντικές για τη συνολική υγεία του συστήματος, και “κλείνεις τη στρόφιγγα” της μνήμης σε αυτές για λίγο χρόνο ώστε να δώσεις ευκαιρία στην απαιτητική και κρίσιμη διεργασία να λειτουργήσει σωστά (με όσα ρίσκα αυτό συνεπάγεται).

Ομως, δεν τελειώνει εκεί το πρόβλημα. Αφού σταθεροποιήσεις το σύστημα, θα πρέπει να βρεις ένα τρόπο να κάνεις όλες τις διεργα��ίες να λειτουργήσουν και πάλι ομαλά, γιατί ενδέχεται κάποια από αυτές που περιόρισες να σου την “κάνει” και να απειλήσει τη συνολική σταθερότητα του συστήματος εκ νέου.

Η μόνη δυνατή αντιμετώπιση, δεδομένου ότι διαθέτεις συγκεκριμένη μνήμη για το σύστημα, είναι να βελτιστοποιήσεις όλες τις άλλες διεργασίες ώστε να καταναλώνουν λιγότερη μνήμη για να παράγουν το ίδιο (ή και καλύτερο) αποτέλεσμα, μια και η κρίσιμη διεργασία δεν επιδέχεται επεμβάσεων.

Αυτό μπορείς να το κάνεις με διάφορα κριτήρια, όπως π.χ.:

  • να ενοποιήσεις διεργασίες που κάνουν παραπλήσια πράγματα ώστε να χρησιμοποιούν από κοινού τη μνήμη
  • να καταργήσεις διεργασίες που κάνουν υποσύνολο πραγμάτων άλλων διεργασιών και ουσιαστικά κάνουν “διπλή δουλειά”
  • να ανακατασκευάσεις διεργασίες ώστε να έχουν λιγότερες συνολικά απαιτήσεις
  • να αντικαταστήσεις εντελώς προβληματικές διεργασίες με νέες, πιό ευέλικτες, πιό σύγχρονες και με λιγότερες απαιτήσεις σε πόρους.

Αν όλα λειτουργήσουν καλά, το σύστημα θα συνεχίσει να λειτουργεί ομαλά, και όταν κάποια στιγμή η απαιτητική σε πόρους διεργασία τερματίσει τη λειτουργία της θα έχεις ένα πολύ ισχυρότερο σύστημα που θα μπορεί να αντέξει σε παρόμοιες πιέσεις.

Ας βάλουμε τώρα στη θέση της απαιτητικής διεργασίας το χρέος μας, στη θέση του συστήματος τη χώρα και στη θέση των υπόλοιπων διεργασιών όλες τις συνισταμένες που διαμορφώνουν ή επηρεάζουν το ΑΕΠ μας: ιδιωτικές επιχειρήσεις, ΔΕΚΟ, δημόσιες υπηρεσίες, εργαζόμενοι, συνταξιούχοι, φοιτητές, μαθητές, καταναλωτική αγορά, εκπαίδευση, στρατός κλπ. Φυσικά, τη θέση της RAM παίρνει το χρήμα.

Για να δούμε λοιπόν, με όρους IT, πώς αντιμετώπισε η παρούσα κυβέρνηση ως τεχνικός συστήματος το πρόβλημα του χρέους:

Το πρώτο της βήμα ήταν αναγκαστικό και προσωρινό, το λεγόμενο “τσεκούρι”. 

Εκοψε “μνήμη” από άλλες διεργασίες (μισθούς, δώρα, επιδόματα), ίσως βιαστικά, ίσως πρόχειρα, αλλά ήταν η μόνη λύση. Επρεπε να βρεθούν πόροι για την απαιτητική διεργασία (χρέος).

Στη συνέχεια, παρήγγειλε λίγη ακόμα μνήμη (χρήματα) για το σύστημα, προσωρινά, με τον όρο ότι θα επιστρέψει στο τέλος ΠΕΡΙΣΣΟΤΕΡΗ μνήμη από αυτή που παρέλαβε. Έτσι, γνώριζε ότι θα αντιμετωπίσει ακόμα σοβαρότερο πρόβλημα στο μέλλον αν δεν αλλάξει κάτι άλλο. Η μνήμη, φυσικά, θα αξιοποιούνταν από την κύρια διεργασία (χρέος) προκειμένου να μείνει σταθερό το σύστημα.

Και εκεί τελειώνουν οι ομοιότητες με τον αναμενόμενο τρόπο χειρισμού του προβλήματος (από τη σκοπιά του IT).

Μετά, το κράτος αγνόησε παντελώς το θέμα των προβληματικών διεργασιών, και μάλιστα προκειμένου να τις συντηρήσει αφαίρεσε ακόμα περισσότερους πόρους από άλλες, υγιείς μέχρι εκείνη τη στιγμή, διεργασίες. Το αποτέλεσμα ήταν να μην λειτουργεί το σύστημα σωστά.

Οι προβληματικές διεργασίες συνέχισαν να δημιουργούν αυτό που ξέρουν πιό καλά να κάνουν: Προβλήματα. Κατανάλωναν ακόμα περισσότερη μνήμη από πριν.  Βλέποντας ότι το σύστημα συνέχιζε να μην λειτουργεί σωστά, το κράτος ζήτησε να παραλάβει λίγη ακόμα μνήμη. Προσωρινά, βέβαια, και πάλι με τον όρο να την επιστρέψει, αυτή και λίγη ακόμα, στο τέλος της περιόδου δανεισμού.

Η μνήμη απορροφήθηκε αμέσως από την απαιτητική διεργασία όπως και πριν.

Το κράτος, βλέποντας ότι το σύστημα δεν λειτουργεί σωστά και πάλι, άρχισε να στερεί μνήμη από όλες τις διεργασίες, συμπεριλαμβανομένων και των υγιών και χωρίς να επιχειρεί καμία προσπάθεια βελτιστοποίησης. Μαλιστα, στην προσπάθειά του να πετύχει καλύτερα αποτελέσματα, αντί να μειώσει τον αριθμό των διεργασιών, τον αύξησε, μια και δημιούργησε διεργασίες οι οποίες επέβλεπαν τη στέρηση μνήμης από τις υπόλοιπες!

Το σύστημα άρχισε να λειτουργεί ασταθώς, με αποτέλεσμα ο έλεγχος των διεργασιών να είναι πλέον ιδιαίτερα δύσκολος. Το κράτος στην αγωνιώδη προσπάθειά του να εξασφαλίσει πόρους, δημιούργησε, όπως είπαμε παραπάνω, ΝΕΕΣ διεργασίες που, βιαστικά όπως φτιάχτηκαν, και μνήμη κατανάλωναν και δημιουργούσαν σύγχυση στις ήδη υπάρχουσες διεργασίες.

Ορισμένες διεργασίες άρχισαν να “σκάνε”. Το κράτος προσπάθησε να τις αγνοήσει, χωρίς να υπολογίζει ότι ναι μεν η λειτουργία τους τερματίστηκε, η μνήμη όμως παρέμεινε δεσμευμένη και δεν επεστράφη στο σύστημα.

Στο ενδιάμεσο, το κράτος πέρασε το χρόνο του μιλώντας στους εκπροσώπους των κατασκευαστών των διεργασιών και καθησυχάζοντάς τους οτι θα βρεθεί λύση. Οι αρχιμηχανικοί του, αντί να συμφωνήσουν σε μια ενιαία αντιμετώπιση του προβλήματος, προσπαθούσαν να εκμεταλλευτούν την κατάσταση του συστήματος ο καθένας για τους δικούς του λόγους, με αποτέλεσμα ατελείωτα meetings και έξωθεν ενημερώσει αλλά καμία ουσιαστική ενέργεια.  Το σύστημα είχε αρχίσει να σέρνεται τόσο πολύ, που η ρύθμιση ή η βελτιστοποίηση των διεργασιών, ακόμα και αν ήταν ζητούμενη, δεν μπορούσε πια να επιτευχθεί.

Και μέσα σε όλα αυτά, ήρθε η ώρα ο προμηθευτής να ζητήσει πίσω την έξτρα RAM. Μαζί, φυσικά, με ένα κομμάτι της αρχικής μνήμης του συστήματος.

Ετσι το σύστημα κατέληξε να έχει λιγότερη μνήμη από πριν και περισσότερες διεργασίες με μεγαλύτερες απαιτήσεις και προβλήματα.

Η φυσική εξέλιξη όλου αυτού του σκηνικού είναι φυσικά μία:

CRASH. 

Τα σχόλια δικά σας.


Σχόλια (1) -

  • ILME

    13/4/2016 10:35:29 μμ | Απάντηση

    Couldn't have said it better! Πολύ σωστός ο παραλληλισμός & to the point 👌

Loading