Jump to content

Crash Mysql sur certain produit uniquement


qmalguy
 Share

Recommended Posts

Bonjour la communauté, 

 

Je suis en train de développer un shop sur prestashop, mon shop contient environ 5k produits différents.

Version Presta: 1.6

Url du shop : https://clubvetshop.fr

 

 

Lorsque j'essaye de charger certain produit uniquement Mysql monte à 100% d'utilisation du processeur si je lance une seconde requête et il monte a 190-200% environ.

Ensuite je suis obligé de restart mysql, le premier produit va load puis ça va de nouveau créer le même problème.  

 

Le shop est sur un serveur cloud ovh public sous Debian

J'ai check les différents logs, j'ai passé les tables InnoDB en MyISAM.

Aucun problème côté ram.

 

J'utilise le plugin advanced-search4 uniquement sur les produits. Mais ce n'est pas d'ici que vient le problème car meme si je met les bonnes URL produit sans passer par le parcours "normal" ça reproduit la même erreur.

 

Si vous souhaitez faire un test : 

Url produit sans problème : https://clubvetshop.fr/catalogue/233-Bande-cohn-sive-Petflex-UU.html

Url produit qui ne fonctionne pas : https://clubvetshop.fr/catalogue/97-Cat-Sterilised-Rabbit.html

 

 

Qu'en pensez vous ? Une idée ?

 

Share this post


Link to post
Share on other sites

Perso chez moi ça marche...

 

Après si tu veut un peu "tuner" ta config mysql pour avoir de bonnes perfs avec Presta, je te donne les miennes :) :

 

key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
#max_connections        = 100
#table_cache            = 64
#thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit = 4M
query_cache_size        = 40M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#slow_query_log_file = /var/log/mysql/mysql-slow.log
#slow_query_log      = 1
#long_query_time = 2
#log_queries_not_using_indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size         = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem


skip_name_resolve
tmp-table-size                 = 300M
max-heap-table-size            = 300M


max-connections                = 250
thread-cache-size              = 384
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 4096


wait_timeout = 7200
connect_timeout = 20
join_buffer_size = 300M
innodb_buffer_pool_size = 1G
innodb_buffer_pool_instances = 1

à placer dans ton fichier my.cnf ;)

 

bien virer les doublons et évidemment ces lignes S'AJOUTENT à ton fichier existant, elles ne le remplace pas entièrement ^^

Share this post


Link to post
Share on other sites

 

Perso chez moi ça marche...

 

Après si tu veut un peu "tuner" ta config mysql pour avoir de bonnes perfs avec Presta, je te donne les miennes :) :

 

key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
#max_connections        = 100
#table_cache            = 64
#thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit = 4M
query_cache_size        = 40M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#slow_query_log_file = /var/log/mysql/mysql-slow.log
#slow_query_log      = 1
#long_query_time = 2
#log_queries_not_using_indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size         = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem


skip_name_resolve
tmp-table-size                 = 300M
max-heap-table-size            = 300M


max-connections                = 250
thread-cache-size              = 384
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 4096


wait_timeout = 7200
connect_timeout = 20
join_buffer_size = 300M
innodb_buffer_pool_size = 1G
innodb_buffer_pool_instances = 1

à placer dans ton fichier my.cnf ;)

 

bien virer les doublons et évidemment ces lignes S'AJOUTENT à ton fichier existant, elles ne le remplace pas entièrement ^^

 

 

Pas de bug constaté en ce qui me concerne

Merci beaucoup. 

J'ai patché le problème, c'était une requête un peu trop violente qui faisait crash mysql

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More