Aller au contenu

Sujets conseillés

Posté

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

Posté (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é par jcaron
Posté

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...