Πότε πρέπει να εγκαθιστούμε Memcache και APC;

Τεχνικές και μόνο Συζητήσεις για WEB hosting servers, Mail servers, DNS servers. Όχι αναζήτηση υπηρεσιών εδώ!

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
AntLin
Δημοσιεύσεις: 24
Εγγραφή: 20 Ιούλ 2011 18:10
Τοποθεσία: Αθήνα
Επικοινωνία:

Πότε πρέπει να εγκαθιστούμε Memcache και APC;

Δημοσίευση από AntLin » 26 Ιούλ 2011 22:06

Γεια παιδιά να με πάλι εδώ με απορίες. Μπορεί κάποιος να μου πει πότε είναι αναγκαία η εγκατάσταση Memcache και APC σε ένα server και τι επιπτώσεις έχει αυτό στην cached memory του server; Είναι πχ απαραίτητα σε ένα dedicated server με μια σελίδα;
Ο ισχυρός έχει σκλάβους, ο πλούσιος κόλακες και ο σοφός φίλους Fun4Us

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Πότε πρέπει να εγκαθιστούμε Memcache και APC;

Δημοσίευση από Rapid-eraser » 27 Ιούλ 2011 09:50

Memcached: Είναι ένα σύστημα (server) για να κάνεις object (η αποθήκευση γίνετε μέσω key:value οπότε δυνητικά θα μπορούσε να είναι απλά και ένα string) caching που η αποθήκευση γίνετε άμεσα στην μνήμη. Αυτό σημαίνει ότι αν έχεις ένα query από μία βάση που κάνει 5sec για να σου επιστρέψει data μπορείς να αποθηκεύσεις προσωρινά (για μερικά λεπτά πχ) ώστε να μην το ζητάς από την βάση που καθυστερεί να στο δώσει. Θα μπορούσε πχ να αποθηκεύσει ένα remote αρχείο πχ.
Γενικός υπάρχει ένας περιορισμός (που μέσω configuration μπορεί να ρυθμιστεί) το κάθε entry να μην υπερβαίνει το 1ΜΒ πληροφορίας.

APC: Είναι ένα framework για caching και optimizing σε php. Είναι ουσιαστικά μια op-code cache. Η php είναι interpreted γλώσσα και για να μπορέσει να εκτελεστεί ένα php αρχείο πρέπει να μετατρέψει τον κώδικα που είναι σε text μορφή στην bytecode μορφή του που είναι εκτελέσιμη. Το APC αναλαμβάνει να αποθηκεύσει αυτό το bytecode και όταν καλέσεις ένα php αρχείο αντί να το κάνει parse πάλι απλά το εκτελεί από την cache. Έχει και και κάποια runtime feats αλλά η γενική χρήση είναι απλά σαν op-code cache.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
AntLin
Δημοσιεύσεις: 24
Εγγραφή: 20 Ιούλ 2011 18:10
Τοποθεσία: Αθήνα
Επικοινωνία:

Πότε πρέπει να εγκαθιστούμε Memcache και APC;

Δημοσίευση από AntLin » 27 Ιούλ 2011 12:44

Σ ευχαριστώ για την ανταπόκριση γιατί έχω μπλεχτεί λίγο. Θα πρότεινες να εγκαθίστανται σε ένα home lamp server με μια μόνο ιστοσελίδα ή απλά θα επιβαρύνουν το σύστημα με extra πόρους και προβλήματα ασφάλειας; Δηλαδή αν το μηχάνημα έχει πχ 3-4GB RAM θα είναι γρηγορότερη η ανταπόκριση του server για μια μέση σελίδα με πχ 20MB Βάση δεδομένων ή παίζει ρόλο και τι objects θα διαχειρίζεται; Από ότι καταλαβαίνω το APC είναι οκ να υπάρχει δεν βλέπω το λόγο να μην υπάρχει;
Ο ισχυρός έχει σκλάβους, ο πλούσιος κόλακες και ο σοφός φίλους Fun4Us

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Πότε πρέπει να εγκαθιστούμε Memcache και APC;

Δημοσίευση από Rapid-eraser » 27 Ιούλ 2011 13:14

Το APC δουλεύει transparent όταν ολοκληρώσεις την εγκατάσταση και το ενεργοποιήσεις για την php που τρέχεις δεν χρειάζεται κάποια περαιτέρω ρύθμιση (σε πρώτη φάση) για να επωφεληθείς της λειτουργίας του.

Με το Memcache τα πράγματα είναι κάποιος διαφορετικά αφού δεν είναι transparent, πρέπει δηλαδή να γράψεις κώδικα που να ενσωματώνει την διαδικασία του cache σε application επίπεδο.

Σκέψου το εξής σενάριο. Έστω ότι έχεις ένα query από mysql που σου φέρνει τα 5 πιο νέα άρθρα, και έστω ότι αυτό το query είναι πολύ βαρύ (στην πραγματικότητα θα ήθελες μία πιο περίπλοκη κατάσταση αλλά ας το πάρουμε σαν δεδομένο αυτό) και θέλει περίπου 5sec για να φέρει απάντηση. Το σενάριο με memcached θα έπαιζε ως εξής:
-Έλεγχος αν το query είναι αποθηκευμένο -> προβολή αποτελεσμάτων
-Αν δεν είναι αποθηκευμένο -> εκτέλεση του query -> αποθήκευση στο memcached -> προβολή αποτελεσμάτων

Ο client που μπαίνει στην php δεν βαραίνει το σύστημα , ο ίδιο ο server είναι αρκετά μικρός.
Αν δεν τον χρησιμοποιήσεις προγραμματιστικά δεν θα σου είναι εμπόδιο αλλά δεν θα σε βοηθήσει και καθόλου ( όπως θα κάνει η APC που θα παίξει άμεσα και χωρίς την δική σου παρέμβαση )


Τώρα αν είσαι μόνος σου στον server και ο server έχει λίγα request (μόνο από εσένα) δεν έχει κάποιο νόημα να περάσεις APC και memcache παρά μόνο για development λόγους (για να αναπτύξεις την εφαρμογή σου να παίζει με βάση τα δύο συστήματα)

Μην ξεχνάς πως cache σημαίνει ότι η απάντηση για κάποια ώρα για το cacharismeno υλικό θα είναι η ίδια. Και προφανώς για ένα live σύστημα με αρκετό concurrency είναι καλό αλλά για εσένα που αναπτύσσεις μία εφαρμογή δεν βολεύει καθώς θες στο κάθε hit την ενημερωμένη απάντηση ( προφανώς όταν κάνεις development όλα αυτά τα έχεις υπόψιν σου :) )
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
AntLin
Δημοσιεύσεις: 24
Εγγραφή: 20 Ιούλ 2011 18:10
Τοποθεσία: Αθήνα
Επικοινωνία:

Πότε πρέπει να εγκαθιστούμε Memcache και APC;

Δημοσίευση από AntLin » 27 Ιούλ 2011 14:49

Ήσουν κατατοπιστικότατος και έχω αρχίσει να καταλαβαίνω αρκετά πράγματα. Σε δύο μηχανήματα έστησα με πανομοιότυπο τρόπο 2 lamp servers και εγκατέστησα και στα 2 APC και memcached. Όχι για development. Για το memcached πέρα από τη ρύθμιση του στο serer και για να τρέχει ως daemon, το μόνο που χρειάστηκα από κώδικα ήταν να προσθέσω στο settings.php της πλατφόρμας που τρέχει τη μια και μοναδική σελίδα $conf['cache_inc'] = '/sites/all/modules/memcache/memcache.inc'; Είναι δυνατόν ένα από τα 2 να μου προκαλεί cached memory 1400MB στο Server;
Ο ισχυρός έχει σκλάβους, ο πλούσιος κόλακες και ο σοφός φίλους Fun4Us

drmetal
Δημοσιεύσεις: 25
Εγγραφή: 25 Μαρ 2008 20:51

Πότε πρέπει να εγκαθιστούμε Memcache και APC;

Δημοσίευση από drmetal » 27 Ιούλ 2011 22:51

Το memcached δεν κάνει απολύτως τίποτε αν δεν το χρησιμοποιήσεις μέσα από κώδικα php.

Βασικά αυτό που κάνει είναι, αν θές να κάνεις save κάτι στην RAM σου ώστε να το φορτώνεις πολύ γρηγοροτερα τις επόμενες φορες που θα το χρειαστείς.

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

Bottom line, μην περιμένεις να αλλάξει τίποτε αυτόματα με την εγκατάσταση του memcached. Πρέπει να το καλέσεις μέσα από την php ή άλλη γλώσσα και να το χρησιμοποιήσεις. Είναι θεμα development δηλαδή όπως ειπώθηκε και πιό πάνω

Απάντηση

Επιστροφή στο “Apache, IIS, DNS Servers”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες