Topic: Optimisation de base de données et d'apache

Bonjour à toute l'équipe et aux créateurs de projets !

Aujourd'hui j'ai quelques petites questions à vous poser concernant l'optimisation d'une base de données et d'apache.

Commençons par la base de données.

J'ai une base de donnée qui est en train de grossir petit à petit car elle contient les statistiques d'utilisation de mon petit logiciel.

La base fait actuellement 45 Mo pour 370.000 enregistrements. Mon soucis c'est que la moitié de l'espace de stockage sert aux index (22 Mo d'index !).

Est-ce que cela vous paraît normal ?

Est-ce que je peux me passer de ces index tout en gardant des requêtes en lecture effectuées dans des temps raisonnables ?

Les requêtes en lecture effectuées sur cette base sont quasiment toujours les mêmes (comptage des identifiants après un GROUP BY).

Existe-t-il des techniques simples permettant de stabiliser la taille de la base de donnée ?

==============================================

En ce qui concerne apache, j'ai loué un petit serveur dédié pour essayer me faire la main sur l'administration d'un serveur web.

Je me suis pas trop pris la tête, j'ai mis une Ubuntu Server 10.04 avec une interface Webmin.

Mon but serait d'avoir un miroir de secours du site hébergé sur tuxfamily mais je ne pense pas que cela soit faisable de façon simple.

Donc dans un premier temps, j'aimerai juste me servir du serveur en temps que miroir pour les téléchargements et ainsi délester un partie de la bande passante de tuxfamily.

Est-ce que vous auriez des conseils d'optimisation du serveur Apache pour le téléchargement (ou général de configuration) ?

Un bon post d'utilisateur qui raconte sa vie (difficile) de geek comme on les aime ;-)

Merci encore à toute l'équipe de TuxFamily pour son travail formidable !

Bonne soirée,

Tibo

Re: Optimisation de base de données et d'apache

Yop,

slym wrote:

Bonjour à toute l'équipe et aux créateurs de projets !

Aujourd'hui j'ai quelques petites questions à vous poser concernant l'optimisation d'une base de données et d'apache.

Commençons par la base de données.

J'ai une base de donnée qui est en train de grossir petit à petit car elle contient les statistiques d'utilisation de mon petit logiciel.

La base fait actuellement 45 Mo pour 370.000 enregistrements. Mon soucis c'est que la moitié de l'espace de stockage sert aux index (22 Mo d'index !).

Est-ce que cela vous paraît normal ?

C'est le propre d'une base de données relationnelle d'avoir des index fournis pour retrouver rapidement l'information recherchée, un ratio 50/50 est même assez courant.

Une base de données relationnelle n'est à priori pas adaptée pour conserver des statistiques, mais elle peut l'être si utilisée correctement.

Pour avoir des statistiques et les conserver longtemps il faut en faire des résumés (hashfiles d'awstats par exemple) qui ne gardent que l'information pertinente, c'est à dire un volume de données que tu peux analyser humainement.

Pour ce qui est destiné à faire des graphiques, un stockage de type RRD (Round-Robin Database) est plus adapté, car il permet de stocker les infos pendant longtemps, mais avec de moins en moins de précision, ce qui est généralement le besoin.


slym wrote:

Est-ce que je peux me passer de ces index tout en gardant des requêtes en lecture effectuées dans des temps raisonnables ?

Non, les index sont là pour ça ;-)


slym wrote:

Les requêtes en lecture effectuées sur cette base sont quasiment toujours les mêmes (comptage des identifiants après un GROUP BY).

D'où l'intérêt de ne conserver que ces résultats et de supprimer les données sources. Bien sûr si on a oublié de récupérer ce qui est intéressant, c'est foutu, mais bon, c'est le jeu ;-)


slym wrote:

Existe-t-il des techniques simples permettant de stabiliser la taille de la base de donnée ?

Ya pas de mystère, il faut bien stocker ce qu'elle contient :-)  Pour les techniques voir ci-dessus.


slym wrote:

==============================================

En ce qui concerne apache, j'ai loué un petit serveur dédié pour essayer me faire la main sur l'administration d'un serveur web.

Je me suis pas trop pris la tête, j'ai mis une Ubuntu Server 10.04 avec une interface Webmin.

Mon but serait d'avoir un miroir de secours du site hébergé sur tuxfamily mais je ne pense pas que cela soit faisable de façon simple.

Tout ce qui concerne la redondance n'est pas simple, c'est de loin ce qu'il y a de plus difficile en ce qui concerne l'administration système. Le point le plus hardu étant la synchronisation des données.


slym wrote:

Donc dans un premier temps, j'aimerai juste me servir du serveur en temps que miroir pour les téléchargements et ainsi délester un partie de la bande passante de tuxfamily.

Aucun soucis pour la bande passante, on en manque pas ;-)   Tout ce qui est contenus statiques et téléchargements ne nous coûte pas grand chose, surtout comparé au reste.


slym wrote:

Est-ce que vous auriez des conseils d'optimisation du serveur Apache pour le téléchargement (ou général de configuration) ?

Ne pas utiliser Apache, mais plutôt se concentrer sur lighttpd, nginx, ou varnish :-)


slym wrote:

Un bon post d'utilisateur qui raconte sa vie (difficile) de geek comme on les aime ;-)

Merci encore à toute l'équipe de TuxFamily pour son travail formidable !

Merci merci ;-)


slym wrote:

Bonne soirée,

Tibo

Toi zaussi,

Sylvain

Re: Optimisation de base de données et d'apache

Merci pour les réponses, je vais étudier les différentes pistes que tu m'as donné dés que j'aurai un peu de temps.

J'ai déjà amélioré un peu le schéma de la base et j'ai divisé par 3 la taille des données (mais pas celle des index hélas).

Sinon au niveau de l'association ça se passe bien ? ça fait longtemps qu'on a pas eu de news.

Re: Optimisation de base de données et d'apache

Hop,

slym wrote:

Sinon au niveau de l'association ça se passe bien ? ça fait longtemps qu'on a pas eu de news.

Ça se passe, on est que deux à vraiment s'en occuper, mais on a vu pire :-)

Sylvain

Re: Optimisation de base de données et d'apache

Vous êtes que 2 parce que c'est l'été ou tout le monde a décampé ?

J'espère que vous allez refaire une tite newletter un de ces quatre pour nous tenir au courant de ce qui se passe.

6 (edited by slym 2010-07-25 20:27:59)

Re: Optimisation de base de données et d'apache

J'ai trouvé le moyen de sauvegarder le site web voire même de le mirrorer mais j'ai un soucis avec les noms d'utilisateurs MySQL.

J'ai modifié la base mysql.user pour avoir des noms de 32 chars ainsi que la base mysql.db.

J'ai vu que cette modification n'est pas supportée, est-ce que ça peut poser des problèmes ailleurs ou lors d'une mise à jour ?

Re: Optimisation de base de données et d'apache

Hop,

slym wrote:

J'ai trouvé le moyen de sauvegarder le site web voire même de le mirrorer mais j'ai un soucis avec les noms d'utilisateurs MySQL.

J'ai modifié la base mysql.user pour avoir des noms de 32 chars ainsi que la base mysql.db.

J'ai vu que cette modification n'est pas supportée, est-ce que ça peut poser des problèmes ailleurs ou lors d'une mise à jour ?

Le serveur ainsi que toutes les libs concernant MySQL sont patchés par TuxFamily, le patch est dans les sources de VHFFS. Et oui les mises à jour nécessitent un peu d'attention ;-)

Sylvain

Re: Optimisation de base de données et d'apache

Hop,

slym wrote:

Vous êtes que 2 parce que c'est l'été ou tout le monde a décampé ?

J'espère que vous allez refaire une tite newletter un de ces quatre pour nous tenir au courant de ce qui se passe.

Techniquement à deux ça va, ça permet de maintenir le truc ;-)

Sylvain