Uberalles_gr Δημοσ. 23 Ιουνίου 2014 Δημοσ. 23 Ιουνίου 2014 Καλησπέρα στο φόρουμ, τον τελευταίο καιρό έχω ένα σημαντικό πρόβλημα με μια online εφαρμογή που έχω φτιάξει. Το πρόβλημα είναι ότι έχω ΠΑΡΑ πολλά connections στην mysql μου με αποτέλεσμα να σηκώνει πάρα πολύ μνήνη και cpu σε σημείο που το μηχάνημα σέρνεται έως ότου "πέφτει" και χρειάζεται restart η mysql. Το πλήθος των connections ανεβαίνουν συνεχώς και το μηχάνημα όσο περνάει η ώρα ζορίζεται όλο και περισσότερο. Αυτή την στιγμή που γράφω, έχω πάνω από 30.000 connections που σίγουρα δεν δικαιολογείται με το πλήθος των εργασιών που γίνονται στην βάση μου. Τι δεν έχω κάνει σωστά; Τι μπορώ να κάνω;
subdee Δημοσ. 23 Ιουνίου 2014 Δημοσ. 23 Ιουνίου 2014 Πρώτον δεν έχουμε ιδέα σε τι γλώσσα είναι γραμμένη η εφαρμογή αλλά θα μαντέψω πως δεν κλείνεις τις connections που ανοίγεις.
Uberalles_gr Δημοσ. 23 Ιουνίου 2014 Μέλος Δημοσ. 23 Ιουνίου 2014 Έχεις δίκιο για την γλώσσα. Δικια μου παράλειψη. Είναι σε PHP γραμμένο. Διάβαζα ότι το mysql_close το βάλεις δεν το βάλεις το ίδιο και αυτό είναι.
ParhsG Δημοσ. 23 Ιουνίου 2014 Δημοσ. 23 Ιουνίου 2014 ΕΙναι custom ; Εχεις καποιο framework ; Ποσοι χρηστες μπαινουν; Μηπως εχει καμια λουπα και ανοιγει συνδέσεις παραπάνω;
Uberalles_gr Δημοσ. 23 Ιουνίου 2014 Μέλος Δημοσ. 23 Ιουνίου 2014 Είναι όλο custom. Τώρα για τους χρήστες, μπορώ να πω ότι σε ΚΑΜΙΑ περίπτωση δεν δικαιολογούνται τα τόσα πολλά connections. Υπάρχουν διάφορα scripts που τρέχουν. Κάποια πιο απλά κάποια πολύ πιο απαιτητικά σε θέμα queries στην βάση. Αυτή την στιγμή είμαι στα 81.000 connections όταν το πρωί που έγραψα το 1ο μου post ήμουν στα 30.000
geomagas Δημοσ. 23 Ιουνίου 2014 Δημοσ. 23 Ιουνίου 2014 Έχεις δυνατότητα να κάνεις restart τον mysql; Θυμάμαι μία φορά μας είχε τύχει, και ήταν εντελώς ανεξήγητο (ήταν ένα joomla site που κατά τα άλλα δούλευε άψογα, τόσο πριν το κόλλημα όσο και μετά). Αφού δεν μπορέσαμε να βρούμε τι του φταίει, έφαγε ένα restart και έστρωσε!
Uberalles_gr Δημοσ. 23 Ιουνίου 2014 Μέλος Δημοσ. 23 Ιουνίου 2014 Δεν θυμάμαι τώρα για την έκδοση της PHP. Θα το δω αύριο αυτό. Όσον αφορά το restart της mysql έχει γίνει καθημερινή διαδικασία πλέον αυτό για να στρώνει το μηχάνημα....
cyclo Δημοσ. 23 Ιουνίου 2014 Δημοσ. 23 Ιουνίου 2014 Τώρα για τους χρήστες, μπορώ να πω ότι σε ΚΑΜΙΑ περίπτωση δεν δικαιολογούνται τα τόσα πολλά connections. Συνήθως το μηχανάκι δεν κάνει λάθος πότε παρατηρείς το συγκεκριμένο φαινόμενο; σε ποιές περιπτώσεις;
Uberalles_gr Δημοσ. 24 Ιουνίου 2014 Μέλος Δημοσ. 24 Ιουνίου 2014 Το μόνο σίγουρο είναι ότι το μηχάνημα δεν κάνει ΛΑΘΟΣ. Το φαινόμενο είναι για όλη την διάρκεια της ημέρας, δηλαδή για όσο χρησιμοποιούν την εφαρμογή. Πρόσθεσα σε κάποια php σελίδες το mysql_close να δω εάν θα δω καλύτερα αποτελέσματα... Κάποια άλλη ιδέα/πρόταση/συμβουλή;
cyclo Δημοσ. 24 Ιουνίου 2014 Δημοσ. 24 Ιουνίου 2014 Το μόνο σίγουρο είναι ότι το μηχάνημα δεν κάνει ΛΑΘΟΣ. Το φαινόμενο είναι για όλη την διάρκεια της ημέρας, δηλαδή για όσο χρησιμοποιούν την εφαρμογή. Πρόσθεσα σε κάποια php σελίδες το mysql_close να δω εάν θα δω καλύτερα αποτελέσματα... Κάποια άλλη ιδέα/πρόταση/συμβουλή; Ναι, γύρνα το connection σε συνάρτηση η οποία συνδέεται στη βάση και επιστέφει ένα object (κατά προτίμηση pdo). Γράψε κάποια queria τα οποία είναι απαιτητικά σε συναρτήσεις χωρίς global εμβέλεια. και δείξε μας και λίγο κώδικα.
Uberalles_gr Δημοσ. 24 Ιουνίου 2014 Μέλος Δημοσ. 24 Ιουνίου 2014 Κάθησα από το πρωί και το έψαξα το θέμα. Εντέλει ο administrator της βάσης κοίταγε λάθος πράγμα..... Κοίταγε τα connections που έχουν γίνει στην βάση. Για αυτό τον λόγο η τιμή αυτή μεγάλωνε συνεχώς. Ενημερωρικά και μόνο, μέσα στη mysql γράφεται show global status; το οποίο σας δίνει ενδιαφέρουσες πληροφορίες για το mysql server. Άρα 2 συμπεράσματα: 1. Η mysql_close δεν χρειάζεται. 2. Κάτι άλλο παίζει και το μηχάνημα σκάει. Οι moderators ας κλείσουν το θέμα.
ParhsG Δημοσ. 24 Ιουνίου 2014 Δημοσ. 24 Ιουνίου 2014 Ποιος τρώει ram , η mysql , apache ,php αλλο; Στη mysql μπορεις να ορισεις ποσο μνημη μπορει να φαει.
Uberalles_gr Δημοσ. 24 Ιουνίου 2014 Μέλος Δημοσ. 24 Ιουνίου 2014 Η mysql τραβάει όλη την cpu και την ram του μηχανήματος.
cyclo Δημοσ. 24 Ιουνίου 2014 Δημοσ. 24 Ιουνίου 2014 Η mysql τραβάει όλη την cpu και την ram του μηχανήματος. Προσπάθησε να κάνεις query optimization. Όπου έχεις πολλά subqueries (Πάνω από 3) προσπάθησε να τα μειώσεις 1. Η mysql_close δεν χρειάζεται. 2. Κάτι άλλο παίζει και το μηχάνημα σκάει. 1. Μην είσαι σίγουρος. 2. Ασφαλές συμπέρασμα. Δοκίμασε επίσης και canonicalization σε περίπτωση που έχεις παράξενο σχήμα βάσης. Τέλος, κάνε λίγο καλύτερο Monitor για να δεις τι φταίει και κάνει τη ζημιά.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα