| dc.contributor.author | Στεφανάκης, Γεώργιος
|
el |
| dc.contributor.author | Stefanakis, Georgios
|
en |
| dc.date.accessioned | 2025-10-16T06:24:22Z | |
| dc.date.available | 2025-10-16T06:24:22Z | |
| dc.identifier.uri | https://dspace.lib.ntua.gr/xmlui/handle/123456789/62719 | |
| dc.identifier.uri | http://dx.doi.org/10.26240/heal.ntua.30415 | |
| dc.rights | Αναφορά Δημιουργού-Μη Εμπορική Χρήση 3.0 Ελλάδα | * |
| dc.rights.uri | http://creativecommons.org/licenses/by-nc/3.0/gr/ | * |
| dc.subject | Υπολογιστικό Νέφος | el |
| dc.subject | Κιβωτιοποίηση | el |
| dc.subject | Διαχείριση πόρων | el |
| dc.subject | Βελτιστοποίηση Επίδοσης | el |
| dc.subject | Cloud Computing | en |
| dc.subject | Containerization | en |
| dc.subject | Kubernetes | en |
| dc.subject | Resource Management | en |
| dc.title | Fine-Grained Container Orchestration and Scheduling On Kubernetes Clusters | en |
| dc.contributor.department | Computing Systems Laboratory - CSLab | el |
| heal.type | bachelorThesis | |
| heal.secondaryTitle | Λεπτομερής Ενορχήστρωση και Δρομολόγηση Εφαρμογών σε Συστάδες Κυβερνήτη | el |
| heal.classification | Computer Engineering | en |
| heal.language | en | |
| heal.access | free | |
| heal.recordProvider | ntua | el |
| heal.publicationDate | 2025-02-01 | |
| heal.abstract | Στις μέρες μας, η ποικιλομορφία των εφαρμογών που φιλοξενούνται στο Cloud είναι εκτενής, περιλαμβάνοντας από εφαρμογές υψηλής επίδοσης (high-performance computing) έως αρχιτεκτονικές λογισμικού βασισμένες σε μικροϋπηρεσίες, αναλύσεις δεδομένων (data analytics) και ροές (pipelines) μηχανικής μάθησης. Καθώς το υπολ- ογιστικό μοντέλο του Cloud επεκτείνεται συνεχώς σε κάθε σύγχρονο τομέα πληροφορικής, η ανάγκη βελτίωσης της επίδοσης και της αξιοποίησης των πόρων των υποδομών των κέντρων δεδομένων (datacenters) καθίσταται ιδιαίτερα κρίσιμη, όχι μόνο για τον τελικό χρήστη αλλά και από την άποψη της ενεργειακής και οικονομικής αποδοτικότητας. Η κιβωτιοποίηση (containerization) των εφαρμογών αποτελεί μία στρατηγική βελτιστοποίησης που προσφέρει πολλά πλεονεκτήματα σε σχέση με την προγενέστερη εικονικοποίηση (virtualization) βασισμένη σε επιβλέποντα συστήματα (hypervisors), όπως φορητότητα, αναπαραγωγιμότητα, χαμηλότερη επιβάρυνση επί- δοσης και απαιτήσεις μνήμης, καθώς και ταχύτερη εκτέλεση και κλιμάκωση. Ο Κυβερνήτης (Kubernetes) είναι ένας ανοιχτού κώδικα ενορχηστρωτής για την εκτέλεση, διαχείριση και κλιμάκωση containerized εφαρμογών σε παραγωγικά περιβάλλοντα. Παρόλο που η αναβάθμιση της επίδοσης σε σχέση με τα παραδοσιακά συστήματα εικονικοποίησης είναι εμφανής, οι ενορχηστρωτές γενικά δεν βασίζονται σε λεπτομερή δεδομένα πόρων για την δρομολόγηση και την εκτέλεση εφαρμογών. Ο Kubernetes λαμβάνει υπόψη μόνο απλοϊκούς δείκτες, όπως το φορτίο στον επεξεργαστή και στη μνήμη, γεγονός που συχνά οδηγεί σε μη βέλτιστες αποφάσεις δρομολόγησης και φαινόμενα σύγκρουσης μεταξύ συνυπάρχοντων εφαρμογών. Οι πάροχοι υπηρεσιών Cloud αναγνωρίζουν αυτό το ζήτημα και συχνά θυσιάζουν αποδοτική αξιοποίηση των πόρων προκειμένου να διατηρήσουν την απαιτούμενη κλάση Ποιότητας Υπηρεσίας (QoS) που έχει ζητηθεί από τον πελάτη. Στην παρούσα διπλωματική εργασία, εντοπίζουμε πειραματικά τις προαναφερθείσες προκλήσεις με στόχο τη σχεδίαση ενός πιο αποδοτικού μηχανισμού διαχείρισης πόρων που ενσωματώνεται στο Kubernetes. Αξιοποιούμε τα σημεία επέκτασης του Kubernetes για προγραμματιστές, καθώς και διάφορα εργαλεία παρακολούθησης συστή- ματος και benchmarking, ώστε να δημιουργήσουμε διαφορετικές πολιτικές δρομολόγησης που βασίζονται σε προφίλ εφαρμογών και σε μετρικές συστήματος, σε αντίθεση με την βασική λειτουργία του δρομολογητή που λαμβάνει υπόψη μόνο τη CPU και τη μνήμη. Καταγράφουμε τα χαρακτηριστικά των εισερχόμενων εφαρμογών βάσει χαμηλού επιπέδου μετρικών συστήματος, όπως ταχύτητα μεταφοράς δεδομένων από και προς την μνήμη (Memory Bandwidth), εντολές ανά κύκλο (Instructions per Cycle - IPC), αστοχίες cache επιπέδου L2 και L3 (L2 & L3 Cache Misses), και εφαρμόζουμε αποφάσεις δρομολόγησης μέσω του εξατομικευμένου μας δρο- μολογητή (scheduler). Στη συνέχεια, αξιολογούμε την αποτελεσματικότητα της λύσης μας συγκρίνοντας την επιβράδυνση των εφαρμογών πριν και μετά την εφαρμογή του scheduler που υλοποιήσαμε. Διεξάγουμε πειράματα χρησιμοποιώντας διάφορα benchmarks που προσομοιώνουν ρεαλιστικά σενάρια καταπόνησης του συστήματος και αποδεικνύουμε τον αντίκτυπο της λύσης μας στην πρόβλεψη παρεμβολών και στη βελτίωση της συνολικής επίδοσης του συστήματος. | el |
| heal.abstract | Nowadays, the diversity of workloads that are hosted on the Cloud is extensive, ranging from high-performance applications to microservice software architecture, data analytics and machine learning pipelines. As the Cloud paradigm is constantly expanding in every modern field of computation, the need to improve the per- formance and resource utilization of datacenter infrastructure becomes crucial, not only for the end-user, but also from a power and cost efficiency perspective. Containerization of applications is one such optimization strategy that offers many advantages over the preceding hypervisor-based virtualization, such as portabil- ity, reproducibility, lower performance overhead and memory requirements, faster deployment and scaling. Kubernetes is an open-source container orchestrator for deploying, managing and scaling containerized ap- plications in production environments. While the performance upgrade over traditional clusters is apparent, orchestrators generally do not rely on fine-grained resource information for scheduling and executing applica- tions. Additionally, they often lack awareness of the application’s internal characteristics. Kubernetes is only aware of simplistic metrics such as CPU and memory load, often leading to sub-optimal scheduling decisions and interference phenomena between co-located workloads. Cloud Service Providers are aware of this issue and are willing to compromise resource utilization to uphold the Quality of Service class requested by the customer. In this thesis, we experimentally identify the formerly described challenges in an attempt to design a more ef- ficient resource management mechanism that integrates with Kubernetes. We leverage Kubernetes’ extension points for developers, as well as different system monitoring and benchmarking tools and create sophisticated scheduling policies that utilize application profiling in contrast to the baseline CPU and memory affinity en- abled policy of the default scheduler. We profile incoming applications based while observing low-level system metrics, e.g. Memory Bandwidth, Instructions per Cycle, L2 and L3 Cache Misses, and apply scheduling decisions with our custom scheduler. Afterwards, we evaluate the effectiveness of our solution by comparing the slowdown of the applications prior and after deploying our custom solution. We conduct experiments using numerous benchmarks that introduce realistic scenarios of stress on the system and demonstrate the impact of our solution in foreseeing resource contention and improving overall system performance. | en |
| heal.advisorName | Γκούμας, Γεώργιος | |
| heal.committeeMemberName | Πνευματικάτος, Διονύσιος | |
| heal.committeeMemberName | Κοζύρης, Νεκτάριος | |
| heal.academicPublisher | Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. | el |
| heal.academicPublisherID | ntua | |
| heal.numberOfPages | 102 | |
| heal.fullTextAvailability | false |
Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο: