TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web multijoueurs, jeux par forum. En savoir +

Flux RSS des discussions du forum : pour les joueurs, et pour les créateurs et MJ
  Reply to this topicStart new topicStart Poll

> Serveur Mutualisé / Dédié?
omgreg
Ecrit le : Vendredi 30 Mai 2008 à 20h37
Quote Post


Pro
*

Groupe : Membre
Messages : 168


Hello tout le monde.
J'ai un petit soucis avec mon hébergeur.
Ils viennent de suspendre ma base de données SQL parce que mon jeu avait une utilisation trop importante pour serveur SQL mutualisé et que du coup ça occasionne des ralentissements pour d'autres clients. (Bon m'avaient déjà prévenus une fois en même temps, j'avais changés quelques trucs mais visiblement ça n'a pas suffit)

Ils me conseillent de modifier mes scripts. Je pense que j'essaierais d'améliorer tout ça, mais jsuis pas sur que ça suffise.

Donc j'envisage de passer à un hébergement dédié.
Est ce que ça règlera le problème ou non? Ne sachant pas trop ce à quoi correspond un hébergement dédié je me demande si ça va servir à quelque chose ou non...

Merci d'avance wink.gif



--------------------
user posted image
PMEmail PosterUsers Website
Top
Mouton
Ecrit le : Vendredi 30 Mai 2008 à 22h52
Quote Post


Pro
*

Groupe : Membre
Messages : 78


Tout depend!

Si tu avais 500 joueurs et qu'en mutualisé ça rame, pense vraiment à revoir tes scripts!

Maintenant, si tu avais 20 000 joueurs, là effectivement un dédié peut-être envisageable.

Par contre, pour les dédiés, ils nécéssiteront beaucoups plus d'efforts, d'investissement et d'argent de ta part...


--------------------
Lorsque l'on vous offre une seconde chance,
ne passez surtout pas à côté!

user posted image
PMEmail PosterUsers Website
Top
omgreg
Ecrit le : Vendredi 30 Mai 2008 à 23h16
Quote Post


Pro
*

Groupe : Membre
Messages : 168


En fait mon jeu est un jeu par forum phpbb, j'avoue que j'ai ajouté pas mal de truc, et que mes scripts sont surement loins d'êtres très cleans.
Jdois avoir dans les 100 joueurs maximum.

Pour ce qui est du dédié, après quelques recherches sur le net, jpense que jvais attendre un peu vu que c'est effectivement plus cher et que ça demande comme tu l'as dit plus d'investissement, temps que je n'ai pas pour le moment, et que jpense que c'est très superflu par rapport à mes besoins réels.

On va donc essayer de revoir un peu tout ça.

Quels conseils me donnez vous pour alléger tout ça?

Est-ce qu'une réduction du nombre de champs, notamment dans ma table users peut-être une solution? (parce que là c'est vrai que j'ai une floppée de champs là dedans)
Réduction du nombre de table?
D'autres conseils?

Merci d'avance wink.gif





--------------------
user posted image
PMEmail PosterUsers Website
Top
Mouton
Ecrit le : Samedi 31 Mai 2008 à 12h29
Quote Post


Pro
*

Groupe : Membre
Messages : 78


L'ajout de nombreux modules differents peut effectivement être un problème. Ces systèmes de forums étant déjà assez gourmand...

Peut etre plusieurs choses:

- Désactiver la recherche pour les membres qui ne sont pas inscrits. Cette fonction est en effet generalement TRES gourmande, que ce soit en temps machine ou en mémoire.
- Je ne connais pas ton forums, mais utilis le scricte nécessaires, trop de modules qui sont là juste parce que c'est rigolo te servira a rien.
- Nettoyer les données, supprimer éventuellement les messages devenus obsolete (fait une sauvegarde quand même) et supprimer les comptes qui en sont plus utilisés.
- Le nombre de table n'est pas spécialement important SAUF si ces données sont chargées a chaques pages, là, effectivement, ta base de données va demander beaucoups plus de trvail (surtout si une requette n'est pas optimisée ou mal formée...)
- Pour les champs de ta table, si tu n'en a pas 500 ça devrait aller également (idem, sauf si ce sont 200 champs textes qui sont super long...)

Après, il existe des centaines d'autres optimisations (pis j'en ai peut etre oublié)


--------------------
Lorsque l'on vous offre une seconde chance,
ne passez surtout pas à côté!

user posted image
PMEmail PosterUsers Website
Top
omgreg
Ecrit le : Samedi 31 Mai 2008 à 12h55
Quote Post


Pro
*

Groupe : Membre
Messages : 168


Après, il existe des centaines d'autres optimisations (pis j'en ai peut etre oublié)

QUOTE

- Désactiver la recherche pour les membres qui ne sont pas inscrits. Cette fonction est en effet généralement TRES gourmande, que ce soit en temps machine ou en mémoire.

Me semble que j'avais déjà désactiver cette option en remplaçant par le truc de recherche de google, mais je vérifierais quand même quand j'aurais accès à nouveau à ma base de données (oui car ils me demandent d'améliorer mes scripts et d'indexer, mais j'ai plus du tout accès à la base de données, donc si jveux améliorer la structure de celle-ci jsuis un peu emmerder...) et que j'aurais remis mes pages en lignes.


QUOTE
- Nettoyer les données, supprimer éventuellement les messages devenus obsolete (fait une sauvegarde quand même) et supprimer les comptes qui en sont plus utilisés.


Ouais j'avais justement commencer à archiver un peu, vu que j'approchais de la limite autorisée à savoir 100 mo. Faudra je continue à le faire. Et un peu plus rapidement surtout ^^

QUOTE
- Le nombre de table n'est pas spécialement important SAUF si ces données sont chargées a chaques pages, là, effectivement, ta base de données va demander beaucoups plus de trvail (surtout si une requette n'est pas optimisée ou mal formée...)
- Pour les champs de ta table, si tu n'en a pas 500 ça devrait aller également (idem, sauf si ce sont 200 champs textes qui sont super long...)


Disons que les tables que je créent servent pour des pages du genre: Magasins, Diplomatie, Armées, Description de l'univers, des objets... Donc elle sont utilisées que lorsque le joueur va faire un tour dessus, ce qui reste assez limité je pense.
Pour ce qui est des champs ca reste aussi assez limité.
Par contre au niveau de la table des users (je crois que cette table est utilisée dans toutes les pages, donc peut-être que ca pose problème) jdois en avoir un peu moins de 100. Mais dedans y'en a trois qui sont des textes. Peut-être que jdevrais séparer la feuille personnage de la table user pour y faire appel uniquement quand y'a besoin non?




Juste pour infos on m'avait envoyé ca en novembre:


QUOTE
Je me permets de vous contacter à la demande de mes collègues sysadmins
s'occupant de nos serveurs SQL.

Ces derniers ont constatés après plusieurs emails de clients signifiants
des lenteurs que votre base se trouve parmi les bases responsables de
ces lenteurs.

Cette alerte concerne votre compte client *********

Voici un log relevé par mes collègues :
dbo168054367@infong404: 68968 Queries: 64434 Selects, 778 Ins, 1967 Upd,
1753 Del, 1449 Connects

Une telle utilisation se trouve trop importante pour un serveur SQL
mutualisé.
Cependant, mes collègues n'ont pas encore effectué la suspension de
votre base, comptant sur votre collaboration afin de résoudre le
problème à l'aide des logs ci-dessus.

Une mise à jour des scripts et une indexation de la base ont très
souvent raisons de ces lenteurs.
Nous comptons sur vous pour la régularisation rapide de votre problème,
faut de quoi mes collègues seront contraints de suspendre la base de
données.

Pour de plus amples renseignements, n'hésitez pas à nous recontacter

Cordialement
Damien
Votre équipe 1&1 France


Suite à ca j'avais retiré mon script qui comptait les visiteurs et mon scripts pour afficher mes partenaires aléatoirement sur toutes les pages du jeu (c'est vrai que celui-ci était particulièrement mal fait et faisait 6 requêtes à chaque fois...)

Jpensais donc que le problème était réglé, puisqu'ils m'int plus rien dit pendant quelques mois.
Et puis donc là ils me renvoient ça:

QUOTE
Je me permets de vous contacter à la demande de mes collègues sysadmins
s'occupant de nos serveurs SQL.

Ces derniers ont constatés après plusieurs emails de clients signifiants
des lenteurs que votre base se trouve parmi les bases responsables de
ces lenteurs.

Cette alerte concerne votre compte client **********

Voici un log relevé par mes collègues :
user count query_time lock_time rows_sent rows_examined
dbo168054367 178 1121[53](6.30) 54[7](0.30) 3651[288](20.51)
255523[12602](1435.52)
dbo168054367 139 SELECT u.username, u.user_pa, u.user_int, u.user_agi,
u.user_rap, u.user_end, u.user_att, u.user_niveau, u.user_armeblanche,
u.user_armestir, u.user_medecine, u.user_discretion, u.user_vol,
u.user_reparation, u.user_pilotage, u.user_sciences, u.user_troc,
u.user_fuite, u.user_saut, u.user_persuasion, u.user_rethorique,
u.user_points, u.user_saber, u.user_dis, u.user_sautjedi,
u.user_telekinesie, u.user_soins, u.user_absorption, u.user_poussee,
u.user_eclairs, u.user_globalforce, u.user_coteclairjedi,
u.user_coteobscursith, u.user_mains, u.user_vigilance, u.user_esquive,
u.user_tactic, u.user_midichloriens, u.user_lethargie,
u.user_etranglement, u.user_natation, u.user_linguistique,
u.user_biologie, u.user_resistance, u.user_feinte, u.user_celerite,
u.user_averto, u.user_pvmax, u.user_intimidation, u.user_niveauforce,
u.user_xpforce, u.user_id, u.user_items, u.user_privs, u.user_effects,
u.user_custitle, u.user_posts, u.user_from, u.user_website,
u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate,
u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig,
u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type,
u.user_allowavatar, u.user_allowsmile, u.user_allow_viewonline,
u.user_session_time, u.user_element, u.user_klass, u.user_race,
u.user_alignment, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid FROM
phpbb_posts p, phpbb_users u, phpbb_posts_text pt WHERE p.topic_id = %%
AND pt.post_id = %% AND u.user_id = %% LIMIT %%;
dbo168054367 15 SELECT pt.post_text, pt.bbcode_uid, pt.post_subject,
p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig,
u.user_sig_bbcode_uid FROM phpbb_forums f, phpbb_topics t, phpbb_users
u, phpbb_posts p, phpbb_posts_text pt WHERE p.post_id IN %% AND
pt.post_id = %% AND f.forum_id = %% AND p.topic_id = %% AND p.poster_id
= %% LIMIT %%;
dbo168054367 7 SELECT t.topic_id, t.topic_title, t.topic_status,
t.topic_replies, t.topic_time, t.topic_type, t.topic_vote,
t.topic_last_post_id, t.description, f.forum_name, f.forum_status,
f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply,
f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce,
f.auth_pollcreate, f.auth_vote, f.auth_attachments, COUNT(p2.post_id) AS
prev_posts FROM phpbb_topics t, phpbb_forums f, phpbb_posts p,
phpbb_posts p2 WHERE p.post_id = %% AND t.topic_id = %% AND p2.topic_id
= %% AND p2.post_id <= %% AND f.forum_id = %% GROUP BY p.post_id,
t.topic_id, t.topic_title, t.topic_status, t.topic_replies,
t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id,
f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read,
f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky,
f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments
ORDER BY p.post_id ASC;
dbo168054367 4 SELECT f.*, p.post_time, p.post_username, u.username,
u.user_id FROM (( phpbb_forums f LEFT JOIN phpbb_posts p ON p.post_id =
%% ) LEFT JOIN phpbb_users u ON u.user_id = %% ) ORDER BY f.cat_id,
f.forum_order;
dbo168054367 3 SELECT * FROM phpbb_posts WHERE post_id=%%;
dbo168054367 2 SELECT MAX(post_time) AS last_post_time FROM phpbb_posts
WHERE poster_id = %%;
dbo168054367 1 SELECT * FROM parcours WHERE pseudo=%% ORDER BY id;
dbo168054367 1 SHOW TABLE STATUS FROM `db168054367`;
dbo168054367 1 SELECT post_id FROM phpbb_posts WHERE poster_id = %%;
dbo168054367 1 SELECT emoticon, code, smile_url FROM phpbb_smilies ORDER
BY smilies_id;
dbo168054367 1 SELECT pm.privmsgs_type, pm.privmsgs_id,
pm.privmsgs_date, pm.privmsgs_subject, u.user_id, u.username FROM
phpbb_privmsgs pm, phpbb_users u WHERE pm.privmsgs_to_userid = %% AND
u.user_id = %% AND ( pm.privmsgs_type = %% OR pm.privmsgs_type = %% OR
privmsgs_type = %% ) LIMIT %%;
dbo168054367 1 SELECT * FROM phpbb_users WHERE user_id=%%;
dbo168054367 1 SELECT ban_ip, ban_userid, ban_email FROM phpbb_banlist
WHERE ban_ip IN %% OR ban_userid = -%%;
dbo168054367 1 SELECT u.username, u.user_id, p.*, pt.post_text,
pt.post_subject, pt.bbcode_uid FROM phpbb_posts p, phpbb_users u,
phpbb_posts_text pt WHERE p.topic_id = %% AND p.poster_id = %% AND
p.post_id = %% LIMIT %%;

Une telle utilisation se trouve trop importante pour un serveur SQL
mutualisé.
Dans cette urgence, mes collègues furent contraints de suspendre cette
base de données.
Nous sommes convaincus que vous comprendrez notre décision afin de
garantir un servir équitable pour l'ensemble de nos clients se trouvant
sur la même installation que vous.

Une mise à jour des scripts et une indexation de la base ont très
souvent raisons de ces lenteurs.
Nous comptons sur vous pour la régularisation rapide de votre problème,
faut de quoi mes collègues seront contraints de supprimer définitivement
la base de données.


Je comprend pas grand chose à leurs chiffres.
Est-ce que ca traduit vraiment une utilisation importante de leurs serveurs?
Ou bien peut-être veulent-ils me pousser à prendre un truc plus cher?


Edit:
D'ailleurs, quand on regarde la liste des requêtes qu'ils me donnent, c'est que des requetes de phpbb, pas de mes modules supplémentaires a priori. Donc est-ce que c'ets simplement parce que mon forum est devenu trop lourd finalement? Et aussi à cause de l'utilisation qu'en font les membres du jeu? (a savoir ils actualisent super souvent en attente d'une réponse, lisent beaucoup de messages, en postent pas mal aussi...)


--------------------
user posted image
PMEmail PosterUsers Website
Top
Mouton
Ecrit le : Samedi 31 Mai 2008 à 18h50
Quote Post


Pro
*

Groupe : Membre
Messages : 78


Pour les premières données, il n'y a pas d'indice de temps, elle ne veulent donc rien dire.


Les secondes sont un peu difficiles a lire pour moi sachant que l'alignment a disparu mais elle t'informe que sur une unique requete, plsu de 3000 enregistrement ont été envoyé (c'est enorme) et plus de 250 000 enregistrement ont ete scanné (c'est effectivement beaucoups pour un serveur dédié)

Pense à nettoyer tes tables ET vérifier que des clés/index ont bien été defini comme il faut dans tes tables (idem, que les jointures soient correctes. S'il en manque une, le temps de traitement ne sera qu'augmente)

Diverses fonction de MySQL te permettent d'optimiser ou de vérifier tes requêtes....


--------------------
Lorsque l'on vous offre une seconde chance,
ne passez surtout pas à côté!

user posted image
PMEmail PosterUsers Website
Top
omgreg
Ecrit le : Samedi 31 Mai 2008 à 19h09
Quote Post


Pro
*

Groupe : Membre
Messages : 168


Hum ok jvais essayer de travailler sur tout ça dès qu'ils m'auront redonner accès à ma base de données afin d'essayer d'optimiser tout ça, bien que ca risque de s'avérer complexe s'il faut que je triffouille caremment dans les scripts de phpbb. J'avoue que ces valeurs me paressent hallucinantes :s

Merci pour ton aide en tout cas.


--------------------
user posted image
PMEmail PosterUsers Website
Top
Mouton
Ecrit le : Dimanche 01 Juin 2008 à 13h38
Quote Post


Pro
*

Groupe : Membre
Messages : 78


Essaye de voir du coté des modules complémentaires ou si tu as créé tes propres requêtes. Pense également à mettre à jour ton forum.

Par simple curiosité, c'est qui ton hébergeur ?


--------------------
Lorsque l'on vous offre une seconde chance,
ne passez surtout pas à côté!

user posted image
PMEmail PosterUsers Website
Top
omgreg
Ecrit le : Dimanche 01 Juin 2008 à 13h43
Quote Post


Pro
*

Groupe : Membre
Messages : 168


C'est 1and1 pack perso confort, dans les 6 ou 7 euros si jme souviens bien.


--------------------
user posted image
PMEmail PosterUsers Website
Top
Sybler
Ecrit le : Dimanche 01 Juin 2008 à 20h45
Quote Post


Ouf
*

Groupe : Membre
Messages : 453


Revoir les scripts c'est l'argument bidon et automatique qu'ils donnent.

Le mutualisé, c'est fait pour les sites avec 15 pages et un livre d'or en php/mysql. Plus que ca, ils vont te dire de revoir tes scripts.

VPS ca peut être une solution aussi, moins cher que dédié, mais j,ai eu de mauvaises expériences alors j'hésite à te dire que c'est vraiment bien... je vais donc me contenter de te dire que ca existe.


--------------------
user posted image
PMEmail PosterUsers Website
Top
omgreg
Ecrit le : Dimanche 01 Juin 2008 à 20h57
Quote Post


Pro
*

Groupe : Membre
Messages : 168


Je vais me renseigner sur la question. Si ca peut représenter un compromis entre les deux pourquoi pas.

Tu peux être plus précis quant à ta mauvaise expérience?


--------------------
user posted image
PMEmail PosterUsers Website
Top
Mouton
Ecrit le : Dimanche 01 Juin 2008 à 21h02
Quote Post


Pro
*

Groupe : Membre
Messages : 78


J'étais en mutualisé chez Oxito, jamais eu trop de problèmes, malgré plus qu'un livre d'or ;-)
Sinon, je connais pas 1and1 mais les avis trouvés semblent effectivement partagés...


--------------------
Lorsque l'on vous offre une seconde chance,
ne passez surtout pas à côté!

user posted image
PMEmail PosterUsers Website
Top
omgreg
Ecrit le : Dimanche 01 Juin 2008 à 21h16
Quote Post


Pro
*

Groupe : Membre
Messages : 168


Oui de ce que j'ai vu sur le net, ils sont coutumiers du fait.
Si vraiment mon site est trop gourmand, y'a pas de soucis je comprend, mais bon j'ai tendance à croire qu'ils forcent un peu la chose pour me pousser à investir dans un truc plus cher.


--------------------
user posted image
PMEmail PosterUsers Website
Top
Sybler
Ecrit le : Mercredi 04 Juin 2008 à 22h52
Quote Post


Ouf
*

Groupe : Membre
Messages : 453


Le VPS que j'avais sélectionné chez rapidvps avait 512 Mo de mémoire vive. (S'était, dans le temps, le plus gros forfait)

J'avais des problème de performance MySQL épouvantable.
J'ai besoin d'environ 1 ou 1.5 go de RAM pour être tranquille, mais mon cas de figure n'est pas celui de tous. Je ne suis pas prêt a cracher sur RapidVPS...


Et puis je doute que ca soit pour acheter plus, car meme avec plus, tu va autant "locker" des tables et ralentir MySQL. Ce n'est pas plus d'espace disque et plus de bandwidth qui va changer la situation qu'il te reproche.

Pour le plaisir de la chose, demande leur combien de site tourne sur le serveur, et combien de mémoire vive à le serveur au total. Fait la division, tu y verra plus clair wink.gif


--------------------
user posted image
PMEmail PosterUsers Website
Top
« Sujets + anciens | Hébergement et services | Sujets + récents »

Reply to this topicStart new topicStart Poll