Πόση RAM χρειάζεται ένα VPS: ο κανόνας, χρήση προς χρήση

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

Δημοσιεύθηκε στις 15 Οκτωβρίου 2026 Συντάκτης: Χρόνος ανάγνωσης: 9 λεπτά

Όλοι οι οδηγοί

Με μια ματιά

  1. Αθροίστε ό,τι μένει μόνιμα στη μνήμη: το σύστημα, τον διακομιστή web, κάθε διεργασία της εφαρμογής, τη βάση δεδομένων, την cache.
  2. Διαστασιολογήστε με βάση την αιχμή, όχι τον μέσο όρο: μια μεταγλώττιση, ένα αντίγραφο ασφαλείας ή μια προγραμματισμένη εργασία μπορεί να διπλασιάσει την κατανάλωση για λίγα λεπτά.
  3. Προσθέστε 25 % περιθώριο. Η μνήμη που μένει ελεύθερη χρησιμεύει ως cache του δίσκου και επιταχύνει τη βάση δεδομένων.
  4. Σε διακομιστή που ήδη λειτουργεί, διαβάστε τη στήλη available του free -h, όχι τη στήλη free.
  5. Όταν η μνήμη τελειώνει, το Linux σταματά μια διεργασία, συχνά τη μεγαλύτερη: τη βάση δεδομένων. Μια υπηρεσία που επανεκκινείται μόνη της είναι το πρώτο σημάδι που αξίζει να παρακολουθείτε.
  6. Επιλέξτε ένα μέγεθος που σας επιτρέπει να ανεβείτε χωρίς επανεγκατάσταση: οι ανάγκες μιας εφαρμογής σε παραγωγή μεγαλώνουν μαζί με τα δεδομένα της.

Ο κανόνας: αθροίζουμε ό,τι μένει στη μνήμη

Ένας διακομιστής δεν καταναλώνει μνήμη «γενικά»: κάθε πρόγραμμα που τρέχει κρατά ένα μέρος της, όσο τρέχει. Ο υπολογισμός ξεκινά λοιπόν από τη λίστα των διεργασιών που είναι μόνιμα παρούσες, και έπειτα προσθέτει την αιχμή και ένα περιθώριο:

Μνήμη που χρειάζεται = (σύστημα + μόνιμες υπηρεσίες + αιχμή των περιστασιακών εργασιών) × 1,25

Τι καταναλώνει κάθε στοιχείο

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

ΣτοιχείοΤυπική μνήμηΤι την κάνει να μεταβάλλεται
Nginx, Caddy (διακομιστής web, proxy)10 έως 50 MBΣχεδόν σταθερή: ο αριθμός των συνδέσεων μετρά ελάχιστα.
PHP-FPM (WordPress, Laravel, Symfony)40 έως 80 MB ανά διεργασίαΟ αριθμός των διεργασιών, με ανώτατο όριο το pm.max_children: 10 διεργασίες, 400 έως 800 MB.
Node.js (API, Next.js, NestJS)60 έως 300 MB ανά διεργασίαΟ αριθμός των διεργασιών (λειτουργία cluster, PM2) και το μέγεθος του heap, με όριο το --max-old-space-size.
Python (Django, FastAPI, Flask)80 έως 200 MB ανά διεργασίαΟ αριθμός των workers του Gunicorn ή του Uvicorn, και οι βιβλιοθήκες που φορτώνονται: το pandas ή ένα μοντέλο μηχανικής μάθησης προσθέτουν εκατοντάδες MB.
Java (Spring Boot)300 MB έως 1 GB ανά εφαρμογήΤο μέγιστο μέγεθος του heap: εξ ορισμού, η JVM δεσμεύει το ένα τέταρτο της μνήμης που βλέπει.
Go, Rust10 έως 100 MBΤα δεδομένα που η ίδια η εφαρμογή κρατά στη μνήμη.
PostgreSQL25 % της μνήμης για το shared_buffers, συν μερικά MB ανά σύνδεσηΟ όγκος των δεδομένων που διαβάζονται συχνά, ο αριθμός των συνδέσεων, το work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, 128 MB εξ ορισμούΣε διακομιστή αφιερωμένο στη βάση, αυτό το buffer παίρνει συχνά έως και το 80 % της μνήμης.
RedisΤο μέγεθος των δεδομένων, συν τις δομές τουΚατά την αποθήκευση στον δίσκο, οι σελίδες που τροποποιούνται διπλασιάζονται: έως και η διπλάσια μνήμη στη χειρότερη περίπτωση.
Elasticsearch, OpenSearchΤουλάχιστον 2 GB για το heapΤο heap δεν ξεπερνά το μισό της μνήμης: το υπόλοιπο χρησιμεύει ως cache αρχείων.

Μια αιχμή επανέρχεται συχνά στις εφαρμογές JavaScript: η μεταγλώττιση (build). Το npm run build σε ένα έργο Next.js, Nuxt ή Angular ζητά συχνά 1 έως 2 GB μόνο του, για λίγα λεπτά, πέρα από ό,τι ήδη τρέχει. Αν κάνετε τη μεταγλώττιση στον διακομιστή, τον διαστασιολογείτε για αυτή την αιχμή. Αν την κάνετε στον υπολογιστή σας ή στη συνεχή ενοποίηση (CI) και ανεβάζετε μόνο το αποτέλεσμα, την αποφεύγετε.

Ο ίδιος συλλογισμός ισχύει για τα κοντέινερ Docker: κάθε κοντέινερ είναι ένα σύνολο διεργασιών όπως όλες οι άλλες, και ο daemon του Docker προσθέτει τη δική του κατανάλωση. Το docker stats δείχνει πόση μνήμη παίρνει το καθένα.

Τυπικά προφίλ

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

Τι τρέχει στον διακομιστήΜνήμη που χρειάζεται
Στατική ιστοσελίδα, proxy, μικρό bot ή προγραμματισμένο script1 έως 2 GB
Μία ιστοσελίδα WordPress με MariaDB και cache σελίδων2 GB
Ένα ηλεκτρονικό κατάστημα WooCommerce, ή πολλές ιστοσελίδες WordPress4 GB
Ένα API σε Node.js ή Python με PostgreSQL, πρώτοι χρήστες4 GB
Μια εφαρμογή Next.js που μεταγλωττίζεται στον διακομιστή, με το API της και τη βάση PostgreSQL της6 έως 8 GB
Πολλές εφαρμογές σε κοντέινερ, προπαραγωγή και παραγωγή8 GB
Μια βάση δεδομένων αρκετών δεκάδων GB, με εντατική χρήση16 GB και άνω
Ένα γλωσσικό μοντέλο 7 έως 8 δισεκατομμυρίων παραμέτρων που εκτελείται στον διακομιστή16 GB

Μια εφαρμογή που καλεί ένα μοντέλο AI μέσω API (OpenAI, Anthropic, Mistral) διαστασιολογείται όπως κάθε εφαρμογή web: το μοντέλο τρέχει στον πάροχό του, και ο δικός σας διακομιστής περιμένει την απάντηση. Η εκτέλεση του μοντέλου στον ίδιο τον διακομιστή είναι αυτή που αλλάζει την κλίμακα.

Μέτρηση σε διακομιστή που λειτουργεί

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

Τερματικό
free -h
ps aux --sort=-rss | head -n 15
vmstat 5 5

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

Όταν τελειώνει η μνήμη

Ένας διακομιστής που μένει χωρίς μνήμη δεν επιβραδύνεται σταδιακά. Όταν δεν απομένει τίποτα να αποδεσμευτεί, ο πυρήνας του Linux ενεργοποιεί τον OOM killer (out of memory): επιλέγει μια διεργασία, συνήθως αυτή που καταλαμβάνει την περισσότερη μνήμη, και τη σταματά αμέσως. Σε έναν διακομιστή εφαρμογών, αυτή είναι συχνά η βάση δεδομένων.

Τα συμπτώματα: σφάλματα 502 ή 503 κατά διαστήματα, μια υπηρεσία που επανεκκινείται χωρίς φανερό λόγο, μια μεταγλώττιση που διακόπτεται με Killed. Τα αρχεία καταγραφής το επιβεβαιώνουν:

Τερματικό
journalctl -k | grep -i "out of memory"
systemctl status onoma-ypiresias

Στην έξοδο του systemctl status, η ένδειξη Failed with result 'oom-kill' σημαίνει ότι η υπηρεσία σταμάτησε λόγω έλλειψης μνήμης.

Το swap, όταν ο διακομιστής το διαθέτει, καθυστερεί αυτή τη στιγμή μεταφέροντας στον δίσκο τη μνήμη που χρησιμοποιείται λιγότερο. Χρησιμεύει ως δίχτυ ασφαλείας, όχι ως χωρητικότητα: ένας διακομιστής που στηρίζεται συνεχώς στο swap απαντά πολλές φορές πιο αργά, ακόμη και σε NVMe SSD.

Οι λύσεις, από την πιο απλή στην πιο μόνιμη: λιγότερες διεργασίες της εφαρμογής (pm.max_children, workers του Gunicorn), μεταγλώττιση εκτός διακομιστή, όριο στη μνήμη της βάσης δεδομένων, και έπειτα μετάβαση σε μεγαλύτερο μέγεθος.

Επιλέξτε το μέγεθος, και προβλέψτε τη συνέχεια

  1. Καταγράψτε τι θα τρέχει: διακομιστής web, εφαρμογή και αριθμός διεργασιών, βάση δεδομένων, cache, προγραμματισμένες εργασίες.
  2. Αθροίστε με τον πίνακα των στοιχείων, προσθέστε τη βαρύτερη αιχμή (συχνά τη μεταγλώττιση), και έπειτα 25 % περιθώριο.
  3. Κρατήστε το μέγεθος που καλύπτει αυτό το σύνολο. Ανάμεσα σε δύο γειτονικά μεγέθη, το μικρότερο αρκεί εφόσον η μετάβαση στο επόμενο γίνεται χωρίς επανεγκατάσταση.
  4. Μετρήστε μετά την έναρξη λειτουργίας, στην αιχμή της ημέρας, και έπειτα σε κάθε στάδιο ανάπτυξης της εφαρμογής.

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

Το σωστό μέγεθος, και η ελευθερία να το αλλάξετε

Το VPS Pro διατίθεται σε έξι μεγέθη, σε επεξεργαστές Intel Xeon, μνήμη ECC και NVMe SSD σε κατοπτρισμό, και περνά στο επόμενο μέγεθος οποιαδήποτε στιγμή, χωρίς επανεγκατάσταση. Η Ολοκληρωμένη υποστήριξη περιλαμβάνεται: περιγράψτε μας τι θα τρέχει ο διακομιστής σας και σας προτείνουμε το μέγεθος, και έπειτα, σε κάθε ερώτηση, κάνουμε τη διάγνωση και σας λέμε τι να κάνετε, από το σύστημα έως τον κώδικα της εφαρμογής σας.

Ανακαλύψτε τα VPS Pro

Συχνές ερωτήσεις

Πόση RAM χρειάζεται ένα μικρό VPS;

Μια στατική ιστοσελίδα, ένα proxy ή ένα μικρό script τρέχουν σε 1 έως 2 GB. Μόλις μια βάση δεδομένων και μια εφαρμογή (PHP, Node.js, Python) μοιράζονται τον διακομιστή, υπολογίστε 2 GB για μια ιστοσελίδα WordPress και 4 GB για μια εφαρμογή κατά παραγγελία με PostgreSQL.

Πόση RAM χρειάζεται το WordPress σε VPS;

2 GB για μία ιστοσελίδα με MariaDB και cache σελίδων, 4 GB για ένα κατάστημα WooCommerce ή πολλές ιστοσελίδες. Ο αριθμός των διεργασιών PHP-FPM είναι η πρώτη ρύθμιση: καθεμία καταλαμβάνει 40 έως 80 MB.

Μπορεί το swap να αντικαταστήσει τη RAM;

Όχι. Το swap αποτρέπει ένα απότομο σταμάτημα όταν η μνήμη γεμίσει, αλλά ένας διακομιστής που το χρησιμοποιεί συνεχώς απαντά πολλές φορές πιο αργά, ακόμη και σε NVMe SSD. Είναι δίχτυ ασφαλείας. Το μέγεθος επιλέγεται με βάση τη μνήμη.

Γιατί το free δείχνει σχεδόν καθόλου ελεύθερη μνήμη;

Επειδή το Linux χρησιμοποιεί την αχρησιμοποίητη μνήμη ως cache αρχείων. Αυτή η cache αποδεσμεύεται μόλις ένα πρόγραμμα χρειαστεί μνήμη. Η στήλη που πρέπει να διαβάσετε είναι η available, που δείχνει τη μνήμη που είναι πραγματικά διαθέσιμη.

Πόση RAM χρειάζεται η μεταγλώττιση μιας εφαρμογής Next.js;

Υπολογίστε 1 έως 2 GB μόνο για τη μεταγλώττιση, πέρα από ό,τι ήδη τρέχει στον διακομιστή. Αν κάνετε τη μεταγλώττιση στον υπολογιστή σας ή στη συνεχή ενοποίηση (CI) και ανεβάζετε μόνο το αποτέλεσμα, αποφεύγετε αυτή την αιχμή.

Επικοινωνήστε μαζί μας