Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα στο φόρουμ,

 

τον τελευταίο καιρό έχω ένα σημαντικό πρόβλημα με μια online εφαρμογή που έχω φτιάξει.

 

Το πρόβλημα είναι ότι έχω ΠΑΡΑ πολλά connections στην mysql μου με αποτέλεσμα να σηκώνει πάρα πολύ μνήνη και cpu σε σημείο που το μηχάνημα σέρνεται έως ότου "πέφτει" και χρειάζεται restart η mysql.

 

Το πλήθος των connections ανεβαίνουν συνεχώς και το μηχάνημα όσο περνάει η ώρα ζορίζεται όλο και περισσότερο.

 

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

 

Τι δεν έχω κάνει σωστά; Τι μπορώ να κάνω;

Δημοσ.

Πρώτον δεν έχουμε ιδέα σε τι γλώσσα είναι γραμμένη η εφαρμογή αλλά θα μαντέψω πως δεν κλείνεις τις connections που ανοίγεις.

Δημοσ.

ΕΙναι custom ; Εχεις καποιο framework ; Ποσοι χρηστες μπαινουν; Μηπως εχει καμια λουπα και ανοιγει συνδέσεις παραπάνω;

Δημοσ.

Είναι όλο custom.

 

Τώρα για τους χρήστες, μπορώ να πω ότι σε ΚΑΜΙΑ περίπτωση δεν δικαιολογούνται τα τόσα πολλά connections.

 

Υπάρχουν διάφορα scripts που τρέχουν. Κάποια πιο απλά κάποια πολύ πιο απαιτητικά σε θέμα queries στην βάση.

 

Αυτή την στιγμή είμαι στα 81.000 connections όταν το πρωί που έγραψα το 1ο μου post ήμουν στα 30.000

Δημοσ.

Έχεις δυνατότητα να κάνεις restart τον mysql;

 

Θυμάμαι μία φορά μας είχε τύχει, και ήταν εντελώς ανεξήγητο (ήταν ένα joomla site που κατά τα άλλα δούλευε άψογα, τόσο πριν το κόλλημα όσο και μετά). Αφού δεν μπορέσαμε να βρούμε τι του φταίει, έφαγε ένα restart και έστρωσε! B)

Δημοσ.

Δεν θυμάμαι τώρα για την έκδοση της PHP. Θα το δω αύριο αυτό.

 

Όσον αφορά το restart της mysql έχει γίνει καθημερινή διαδικασία πλέον αυτό για να στρώνει το μηχάνημα....

Δημοσ.

Τώρα για τους χρήστες, μπορώ να πω ότι σε ΚΑΜΙΑ περίπτωση δεν δικαιολογούνται τα τόσα πολλά connections.

 

Συνήθως το μηχανάκι δεν κάνει λάθος:)

πότε παρατηρείς το συγκεκριμένο φαινόμενο; σε ποιές περιπτώσεις;

Δημοσ.

Το μόνο σίγουρο είναι ότι το μηχάνημα δεν κάνει ΛΑΘΟΣ. :)

 

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

 

Πρόσθεσα σε κάποια php σελίδες το mysql_close να δω εάν θα δω καλύτερα αποτελέσματα...

 

Κάποια άλλη ιδέα/πρόταση/συμβουλή;

Δημοσ.

Το μόνο σίγουρο είναι ότι το μηχάνημα δεν κάνει ΛΑΘΟΣ. :)

 

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

 

Πρόσθεσα σε κάποια php σελίδες το mysql_close να δω εάν θα δω καλύτερα αποτελέσματα...

 

Κάποια άλλη ιδέα/πρόταση/συμβουλή;

 

Ναι, γύρνα το connection σε συνάρτηση η οποία συνδέεται στη βάση και επιστέφει ένα object (κατά προτίμηση pdo). 

Γράψε κάποια queria τα οποία είναι απαιτητικά σε συναρτήσεις χωρίς global εμβέλεια.

 

και δείξε μας και λίγο κώδικα.

Δημοσ.

Κάθησα από το πρωί και το έψαξα το θέμα.

 

Εντέλει ο administrator της βάσης κοίταγε λάθος πράγμα.....

 

Κοίταγε τα connections που έχουν γίνει στην βάση. Για αυτό τον λόγο η τιμή αυτή μεγάλωνε συνεχώς.

 

Ενημερωρικά και μόνο, μέσα στη mysql γράφεται

show global status;

το οποίο σας δίνει ενδιαφέρουσες πληροφορίες για το mysql server.

 

Άρα 2 συμπεράσματα:

 

1. Η mysql_close δεν χρειάζεται.

2. Κάτι άλλο παίζει και το μηχάνημα σκάει.

 

Οι moderators ας κλείσουν το θέμα.

Δημοσ.

Η mysql τραβάει όλη την cpu και την ram του μηχανήματος.

 

Προσπάθησε να κάνεις query optimization.

Όπου έχεις πολλά subqueries (Πάνω από 3) προσπάθησε να τα μειώσεις
 

 

1. Η mysql_close δεν χρειάζεται.

2. Κάτι άλλο παίζει και το μηχάνημα σκάει.

 
1. Μην είσαι σίγουρος.
2. Ασφαλές συμπέρασμα.
 
 
 
Δοκίμασε επίσης και canonicalization σε περίπτωση που έχεις παράξενο σχήμα βάσης.
 
Τέλος, κάνε λίγο καλύτερο Monitor για να δεις τι φταίει και κάνει τη ζημιά.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...