Loïc7 Posté 2 Février 2008 Posté 2 Février 2008 Bonjour, J'ai un site web qui fonctionne sur un serveur dedié OVH et s'appuie sur une base SQL. Avec l'augmentation du trafic, les performances (en terme de delai d'affichage des pages) commence à diminuer en particulier aux heures de pointes du trafic J'aimerais savoir selon vous de quel côté chercher pour conserver un service de qualité. Voila les infos interessantes que j'ai en terme de trafic pour le mois de janvier. Total des Hits 5744200 Total des Fichiers 3894074 Total Pages 2785627 Total Visites 301053 Total des Ko 10651831 . Moy. Max Hits par Heure 7720 26642 Hits par Jour 185296 234814 Fichiers par Jour 125615 158733 Pages par Jour 89858 115198 Visites par Jour 9711 12433 KOctets par Jour 343607 436516 Les pages sont très legere en terme de poids mais pour chaque pages de nombreuses requetes SQL sont executés. Le contenu du site étant ajouté par les internautes la taille de la base de données commence également à être plus consequante. Quand j'exporte la base je recupere un fichier de 150000 lignes. Description du serveur : Intel Pentium : IV 3.00 GHz 2007 Architecture 32 bits Mémoire vive 512 Mo DDR Disque dur 250 Go Type disque IDE / SATA2 Connexion 100 Mbps Bande passante 100 Mbps A votre avis, quel est la cause du ralentissement de l'affichage des pages? et surtout quel solution pour y remedier? Merci d'avances pour vos conseils
jcaron Posté 2 Février 2008 Posté 2 Février 2008 (modifié) Ben si ça prend tu temps, c'est que ça sature quelque chose quelque part: soit le CPU, soit la RAM, soit les accès disque. La première chose à faire c'est de mesurer tout ça: de façon instantanée avec top par exemple, et sur la durée avec des graphes à la mrtg (il me semble que c'est fourni en standard par ovh, même si leurs graphes ne sont pas forcément tous exacts ou utiles). Si c'est le CPU, il faut déterminer quel processus en consomme le plus (a priori ça ne peut être que ton serveur http ou ton serveur mysql, mais tu pourrais découvrir d'autres trucs dans les parages). Si c'est la RAM, ça swappe (donc accès disque) ou ça augmente les accès disque (parce qu'il n'y a pas assez de RAM pour garder ce qu'il faut en cache). Pour le premier il faut réduire le nombre de processus ou ajouter de la RAM. Pour le deuxième, voir ci-dessous. Si c'est les accès disque (le plus vraisemblable à mon avis), probablement du fait de mysql, plusieurs options: - s'assurer que toutes tes requêtes sont correctement optimisées et en particulier qu'elles utilisent bien des index - dans certains cas une restructuration de la base et/ou des index peut aider - si la "partie utile" de la base (celle qui est régulièrement accédée, on se moque un peu du post d'il y a 6 mois que personne ne va jamais lire) est trop grosse pour tenir en RAM, il va soit falloir réduire cette partie utile (cf plus haut), soit dégager de la mémoire pour faire du cache (éventuellement en réduisant le nombre de processus apache, par exemple), soit modifier la config de mysql pour adapter la taille de ses buffers à la taille de ta base, soit ajouter de la RAM (pour qu'il y ait plus de choses en cache, donc moins d'accès disque) - tu peux aussi faire du caching au niveau de ton appli - et à la fin, la seule option c'est d'augmenter le nombre de disques pour avoir plus de bande passante d'I/O. Voilà déjà quelques pistes à explorer... Jacques. (edit: cas de la saturation de la RAM) Modifié 2 Février 2008 par jcaron
Loïc7 Posté 4 Février 2008 Auteur Posté 4 Février 2008 Merci beaucoup pour cette réponse plus que complete. Je vais enqueter vois ce qu'il se passe. A priori, c'est la charge du CPU qui monte à 100% quand le trafic monte qui me fait ralentir le site. Je n'es pas vu la RAM depassé 50% de charge et le Swap semble etre utilisé à 2% maximimum
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant