OpenCart-Hellas 

Η Ελληνική κοινότητα υποστήριξης του Opencart

Θέματα που αφορούν τη γενικότερη λειτουργία του Opencart.
#6309
Καλησπέρα σας,

σχετικά με μια εγκατάσταση 1.5.6.4 η οποία τρέχει στο Siteground (σχετικά γρήγοροι σερβερ) βγάζει timeout.
Ακολουθούν νούμερα

195 διαφορετικά είδη options με 15 -20 επιλογές το καθένα
200 κατασκευαστές
2500 προιοντα
375 κατηγορίες

Πιστεύετε οτι ειναι μεγάλα τα νούμερα ειδικά στα options και στις κατηγορίες που το κάνουν να δινει timeout?
Οταν μεταφέρεται μια βάση δεδομενων μεταφέρονται και τα indexes που έχουμε δημιουργήσει?

To support του siteground λεει να κανουμε optimize τις εικονες αλλα νομιζω οτι ειναι οκ οι εικονες.

Ευχαριστώ πολύ
#6311
Καλησπέρα,

Σε ένα περιβάλλον φιλοξενίας με καλές προδιαγραφές, τα παραπάνω νούμερα δεν είναι κάτι υπερβολικό και με κατάλληλη ανάθεση πόρων στον MySQL/MariaDB server δεν θα είχε θέμα.

- Τι είδους hosting έχεις, shared, cloud, άλλο;
- Έχεις κάποιο SEO extension στο κατάστημα; Καμιά φορά κάποια SEO extensions δημιουργούν αργά queries με υψηλό load.
- Το CPU load από μόνο του δεν λέει κάτι. Αυτό που πρέπει να εντοπίσεις είναι ποιο service προκαλεί το load και γιατί.
- Αν έχεις πρόσβαση SSH κάνε πρώτα ένα top/htop στο terminal να δεις γρήγορα ποια services δημιουργούν υψηλό CPU load για μεγάλο χρονικό διάστημα.
- Αν το CPU load προκύπτει σποραδικά, έλεγξε στα logs/charts αν γίνεται σε συγκεκριμένες ώρες ή τυχαία.
- Ενεργοποίησε το slow query προσθέτοντας τα slow_query_log, slow_query_log_file, long_query_time στο my.cnf. Γκουγκλάρισε mysql slow query να μάθεις περισσότερα για το πως λειτουργεί. Δες το log file του slow query αν υπάρχουν queries που προκαλούν πρόβλημα.
- Αν τελικά το πρόβλημα προκύπτει από τον mysql server, χρησιμοποίησε το mysqltuner.pl για να κάνεις optimize το performance του server ορίζοντας στο my.cnf τις προτάσεις του mysqltuner (υπόψη κάποια settings μπορεί να χρειάζονται παραπάνω tweeking από αυτά που αναφέρει το mysqltuner και ενίοτε είναι σαν τον κύβο του ρούμπικ, βελτιώνεις κάτι και κάτι άλλο ζητάει παραπάνω πόρους, αλλά με λίγο ψάξιμο και διάβασμα στο documentation της mysql/mariadb μπορείς να βρεις τι ακριβώς χρειάζεται).
- Σχετικά με τα indexes, η σύντομη απάντηση είναι ότι μεταφέρονται, ουσιαστικά μεταφέρονται οι οδηγίες δημιουργίας των indexes και όχι το περιεχόμενο τους, το οποίο δημιουργείται ξανά μόλις εισαχθούν οι πίνακες και το περιεχόμενο μετά από import της βάσης.
- Αυτό που σου ανέφεραν για τις εικόνες θα μπορούσε να ευσταθήσει μόνο αν υπάρχει κάποιο extension στο κατάστημα που να κάνει μαζικά και τυφλά image resize χωρίς να χρησιμοποιεί το resize tool του OpenCart πχ $this->model_tool_image->resize ή αν σερβίρετε τεράστιες εικόνες που δεν είναι cached. Γενικά οι εικόνες του καταλόγου γίνονται resize και cashed άπαξ από το σύστημα και το OpenCart μετά τις σερβίρει στο κατάλληλο μέγεθος από τον φάκελο image/cache.Επειδή έχετε πολύ λίγα προϊόντα, θεωρώ ότι πλέον όλες οι εικόνες του καταστήματος θα είναι ήδη cached.
#6312
καλημέρα και ευχαριστώ για την απάντηση.

Λογικά είναι shared καθώς είναι το δεύτερο πακέτο website hosting που προσφέρει η εταιρία.

Δεν χρησιμοποιώ κάποιο Seo extension.

Τα υπόλοιπα που αναφέρεις δεν ξέρω αν έχω πρόσβαση να τα κάνω. Πρέπει να τα κοιτάξω.

Γενικά έχω παρατηρήσει ότι παλιότερα opencart με κάποιες εκατοντάδες κατηγορίες έχουν ένα θέμα ταχύτητας σε συνηθισμένους σέρβερ. Δεν μιλώ για dedicated αλλά για shared περιβάλλοντα.

Θα προσπαθήσω να περάσω τα indexes αν και νομίζω ότι είναι ήδη μέσα.

Ο,τι βρω θα το αναφέρω
#6313
- Τα indexes είπαμε δημιουργήθηκαν όταν μετέφερες τη βάση, δεν χρειάζεται να κάνεις κάτι άλλο.
- Ναι, για φτηνό shared hosting 375 κατηγορίες και 195 επιλογές ίσως είναι αρκετά όχι όμως κάτι τρομερό.
- Σε shared, ενίοτε μπορεί να έχεις πρόσβαση ssh , αλλά δυνατότητα ρυθμίσεων του MySQL server δεν θα έχεις.

Λογικά χρειάζεσαι καλύτερο hosting με περισσότερους διαθέσιμους πόρους συστήματος. Αν δεν είσαι reseller και χρειάζεσαι hosting για ένα eshop, παρέχουμε hosting με 16,67€ + ΦΠΑ ανά μήνα σε dedicated μηχανήματα Xeon 3.50GHz 8 core, 32GΒ μνήμη, απόλυτα παραμετροποίησιμο περιβάλλον στις ανάγκες του κάθε καταστήματος με μάξιμουμ sharing 30 sites ανά server.
Εναλλακτικά, μπορείς να δοκιμάσεις κάποια επέκταση βελτίωσης caching όπως:
OpenCart Lightning (εμπορικό)
DB Cache (Free)
#6316
ευχαριστώ και πάλι για την πολύτιμη βοήθεια σου. Θα τα μελετήσω.

Μου ενεργοποίησαν όπως είπαν το module dtimeout για να μην κάνει timeout η σελίδα.

θα είμαστε σε επικοινωνία.

ευχαριστώ και πάλι.
#6318
σε συνέχεια της κουβέντας μας σου παραθέτω καποιες πληροφορίες που συνέλεξε το siteground support.

=== Top 10 Executed Scripts ================================================================
Count Script Local Path
----- ----------------------------------------- ------------------------------------------
1308 http://mysiteko.com/index.php /home/mysite/public_html/index.php


Additionally, when reviewing the database queries of your website I see that some of them last for almost 30 seconds:
1. Executed 3h 11m 10s ago for 29.956192 sec on Database --> mysite_my
Date: 2020-05-04 09:14:42 Query_time: 29.956192 Rows_examined: 0: Rows_sent 0 Lock_time: 0.050323
# Schema: mysite_my Last_errno: 0 Killed: 0 SELECT * FROM mysite_store WHERE REPLACE(`url`, 'www.', '') = 'http://mysiteko.com/';
-------------------------------------------------------------------------------------------------
2. Executed 6h 26m 48s ago for 26.773055 sec on Database --> mysite_my
Date: 2020-05-04 05:59:04 Query_time: 26.773055 Rows_examined: 0: Rows_sent 0 Lock_time: 0.050164
# Schema: mysite_my Last_errno: 0 Killed: 0 SELECT * FROM mysite_url_alias WHERE `query` = 'category_id=11';
-------------------------------------------------------------------------------------------------
3. Executed 3h 11m 11s ago for 26.111361 sec on Database --> mysite_my
Date: 2020-05-04 09:14:41 Query_time: 26.111361 Rows_examined: 0: Rows_sent 0 Lock_time: 0.050392
# Schema: mysite_my Last_errno: 0 Killed: 0 SELECT * FROM mysite_store WHERE REPLACE(`url`, 'www.', '') = 'http://mysiteko.com/';
-------------------------------------------------------------------------------------------------
4. Executed 4h 26m 20s ago for 14.351024 sec on Database --> mysite_my
Date: 2020-05-04 07:59:32 Query_time: 14.351024 Rows_examined: 28: Rows_sent 1 Lock_time: 0.050307
# Schema: mysite_my Last_errno: 0 Killed: 0 SELECT COUNT(DISTINCT p.product_id) AS total FROM mysite_category_path cp LEFT JOIN mysite_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN mysite_product p ON (p2c.product_id = p.product_id) LEFT JOIN mysite_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN mysite_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '2' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '184';
--------------------------------------------------------------------------------------------------




σκέφτομαι να δοκιμάσω το OpenCart Lightning (εμπορικό), φαινεται υποσχόμενο.

Ευχαριστώ και πάλι για το χρόνο σου.
#6319
Ενεργοποίησαν το slow query log και είδαν αυτό που υποψιαζόμασταν στην αρχή, ότι ο MySQL server δεν έχει αρκετούς πόρους.

Στην περίπτωση σου ένα caching σύστημα θα ήταν ωφέλιμο και πιθανόν θα λύσει το πρόβλημα. Έτσι κι αλλιώς εφόσον έχεις indexes και τα queries είναι πάνω κάτω fixed, δεν μπορείς να κάνεις κάτι περισσότερο στο περιβάλλον φιλοξενίας που βρίσκεσαι.

Εμείς σε ανάλογες περιπτώσεις, απλά δίνουμε περισσότερους πόρους στον server και το caching γίνεται σε επίπεδο server, γιατί με το χαμηλό sharing υπάρχει το περιθώριο ;)
#6321
Όντως μου φαίνονται πολλά τα 29 δευτερολεπτα για να εκτελεστεί ένα query. Επίσης το αποδοτικότερο πακέτο που προσφέρουν για τετοιου είδους hosting (gogeek) πάλι μου είπαν πως δεν θα αποδόσει (Το οποίο είναι αρκετά γρήγορο)
Και το CPU load δεν οφείλεται στους επισκέπτες αλλά στα queries.

Θα κάνω μια δοκιμή το extension και θα σου πω τα αποτελέσματα.
Αν δεν δουλέψει ικανοποιητικά θα σε συμβουλευτώ για αλλαγή hosting.

Ευχαριστώ και πάλι.
Καλή συνέχεια
email μέσω SMTP

Καλημέρα, Το έχω δοκιμάσει και με ssl:////mail.m[…]

Απλά να αναφέρω ότι με ένα πρόσθετο έγινε αυτό που[…]

Καλησπέρα, πως μπορώ να προσθέσω το usergroup στο […]

Πριν ζητήσετε βοήθεια στο φόρουμ, παρακαλούμε ελέγξτε αν υπάρχει έτοιμη λύση στο OpenCart Extension Marketplace!