OVH Cloud OVH Cloud

Dimensionner un serveur

21 réponses
Avatar
JT
Bonjour,

Voici une question, AMHA, qui est assez vaste ...

Comment dimensionner le serveur (CPU, RAM, disque dur IDE, SCSI, raid
logiciel/matériel, ...) qu'il faudrait :
- pour héberger une base MySQL en fonction du nombre de requêtes et de la
taille de la base ?
- pour héberger un serveur apache avec php en fonction des hits sur pages
statiques et dynamiques (type site institutionnel et site e-commerce) ?

Je suis bien conscient que la formulation des requêtes SQL et de l'écriture
des scripts php jouent grandement, mais bon, il faut bien quand même une
base de travail ;-)

Merci de vos conseils et de vos retour d'expérience !

JT

10 réponses

1 2 3
Avatar
Christophe Baegert
JT wrote:
Voici une question, AMHA, qui est assez vaste ...

Comment dimensionner le serveur (CPU, RAM, disque dur IDE, SCSI, raid
logiciel/matériel, ...) qu'il faudrait :
- pour héberger une base MySQL en fonction du nombre de requêtes et de la
taille de la base ?
- pour héberger un serveur apache avec php en fonction des hits sur pages
statiques et dynamiques (type site institutionnel et site e-commerce) ?


Pour la RAM, prendre la taille des fichiers .MYI, multiplier par 2 et vous
aurez la RAM nécessaire pour MySQL avec de bonnes perfs. Pour Apache,
compter 4Mo par processus simultané pour être large et en MPM prefork (ou
avec Apache 1.3), un peu moins avec Apache 2.0 et en MPM worker. Rajouter
un peu de RAM pour le système et le cache disque.

Pour le CPU : à moins que vous ne fassiez du traitement multimédia ou du
calcul scientifique, ça n'a presque pas d'importance, par contre pour une
meilleure disponibilité surtout de MySQL, un bipro ça change tout.

Pour le disque : si vous avez suffisamment de RAM et que vous ne faites pas
beaucoup d'écriture, ça ne compte pas beaucoup. Sinon, vous devriez pouvoir
estimer vos besoins en nombre d'écritures par secondes et en Mo/s.

Cordialement,

Christophe Baegert

Avatar
Dominique ROUSSEAU
Le jeu, 12 mai 2005 at 08:04 GMT, Christophe Baegert
a écrit :
Pour Apache, compter 4Mo par processus simultané pour être large et en
MPM prefork (ou avec Apache 1.3), un peu moins avec Apache 2.0 et en
MPM worker.


Si tu as du PHP, tu peux au moins doubler, àmha.


Dom

Avatar
Christophe Baegert
Dominique ROUSSEAU wrote:

Le jeu, 12 mai 2005 at 08:04 GMT, Christophe Baegert
a écrit :
Pour Apache, compter 4Mo par processus simultané pour être large et en
MPM prefork (ou avec Apache 1.3), un peu moins avec Apache 2.0 et en
MPM worker.


Si tu as du PHP, tu peux au moins doubler, àmha.


En module non, en CGI c'est une autre histoire.


Avatar
Christophe Baegert
Dominique ROUSSEAU wrote:

Le jeu, 12 mai 2005 at 08:04 GMT, Christophe Baegert
a écrit :
Pour Apache, compter 4Mo par processus simultané pour être large et en
MPM prefork (ou avec Apache 1.3), un peu moins avec Apache 2.0 et en
MPM worker.


Si tu as du PHP, tu peux au moins doubler, àmha.


tout dépend de la proportion de scripts PHP sur l'ensemble, et si c'est en
CGI (lent) ou en module (rapide)


Avatar
Dominique ROUSSEAU
Le jeu, 12 mai 2005 at 10:09 GMT, Christophe Baegert a écrit :
Dominique ROUSSEAU wrote:

Le jeu, 12 mai 2005 at 08:04 GMT, Christophe Baegert
a écrit :
Pour Apache, compter 4Mo par processus simultané pour être large et en
MPM prefork (ou avec Apache 1.3), un peu moins avec Apache 2.0 et en
MPM worker.


Si tu as du PHP, tu peux au moins doubler, àmha.


tout dépend de la proportion de scripts PHP sur l'ensemble, et si c'est en
CGI (lent) ou en module (rapide)


En module, le PHP est chargé en mémoire même quand Apache sert une
requete "sans PHP". Et avec les diverses fuites de mémoire de PHP, ça
peut grossir vite.


Dom



Avatar
Christophe Baegert
Dominique ROUSSEAU wrote:
En module, le PHP est chargé en mémoire même quand Apache sert une
requete "sans PHP". Et avec les diverses fuites de mémoire de PHP, ça
peut grossir vite.


Oui mais des requêtes liquidées plus vite, ça fait moins de processus en
cours à un instant T. Et puis les fuites de mémoire de PHP ça se règle
autrement ça...

Avatar
Lionel
JT wrote:
Bonjour,

Voici une question, AMHA, qui est assez vaste ...

Comment dimensionner le serveur (CPU, RAM, disque dur IDE, SCSI, raid
logiciel/matériel, ...)


J'ai le meme problème avec une petite appli web java.
5/10 utilisateurs en simultané aux heures de bureau
Serveur tomcat 5, jdk 1.4.2, ou éventuellement tomcat 5.5 jdk 1.5
Base postgreSQL, un dizaine de tables, la plus grosse supportant 60000
nouvelles lignes par an soit une broutille.
Essentiellement utilisée pour des saisies, puis extractions de bilans, assez
simples.
Avec upload de documents (une dizaine par jour, 1Mo en moyenne)
Probablement un webservice.
Génération de pdf avec fop.

J'ai actuellement à disposition un dédié windows2000 PIV 2.8GHz avec 512Mo
de ram, et un disque IDE 40Go utilisé par qq autres petits sites php/asp
mysql+ ftp + mail, qui ont également très peu de visiteurs.
J'ai du mal à imaginer la consommation cpu/memoire/HD pour le tout.
J'ai peur que meme en rajoutant seulement de la ram ca fasse un peu léger,
surtout niveau disque et cpu.
D'un autre coté, prendre un bipro avec 2Go de ram + raid rien que pour cette
appli serait ridicule.
Un mutualisé peut-il faire l'affaire ? (avec java j'ai des doutes, surtout
vue l'incompétence des hébergeur)
On peut faire du SSL sur un mutualisé ou faut-il impérativement un dédié ?


Habituellement je suis plutot sur du mutualisé quadripro HP-UX 12Go de ram
pour mes applications (x2: un pour le serveur d'application, 1 pour oracle)
je n'ai donc pas trop de repères pour de petites appli :(

Merci pour vos retours d'expérience.

Avatar
Manuel Guesdon
On Fri, 13 May 2005 20:50:00 +0200, Lionel wrote:

JT wrote:
Bonjour,

Voici une question, AMHA, qui est assez vaste ...

Comment dimensionner le serveur (CPU, RAM, disque dur IDE, SCSI, raid
logiciel/matériel, ...)


J'ai le meme problème avec une petite appli web java.
5/10 utilisateurs en simultané aux heures de bureau
Serveur tomcat 5, jdk 1.4.2, ou éventuellement tomcat 5.5 jdk 1.5
Base postgreSQL, un dizaine de tables, la plus grosse supportant 60000
nouvelles lignes par an soit une broutille.
Essentiellement utilisée pour des saisies, puis extractions de bilans, assez
simples.
Avec upload de documents (une dizaine par jour, 1Mo en moyenne)
Probablement un webservice.
Génération de pdf avec fop.

J'ai actuellement à disposition un dédié windows2000 PIV 2.8GHz avec 512Mo
de ram, et un disque IDE 40Go utilisé par qq autres petits sites php/asp
mysql+ ftp + mail, qui ont également très peu de visiteurs.
J'ai du mal à imaginer la consommation cpu/memoire/HD pour le tout.
J'ai peur que meme en rajoutant seulement de la ram ca fasse un peu léger,
surtout niveau disque et cpu.
D'un autre coté, prendre un bipro avec 2Go de ram + raid rien que pour cette
appli serait ridicule.
Un mutualisé peut-il faire l'affaire ? (avec java j'ai des doutes, surtout
vue l'incompétence des hébergeur)
On peut faire du SSL sur un mutualisé ou faut-il impérativement un dédié ?


J'aurais envie de dire qu'il ne faut pas tout melanger :-)
Je vois plusieurs points qui ne sont pas forcement liés:
- la charge/la ram/le proc
- le raid
- le ssl

Sur la charge,...il faudrait faire des mesures precises. 5/10 utilisateurs
simultanés ne veut pas dire grand chose dans l'absolu. Il faudrait voir
exactement ce qu'il font, la "simultaneitée" réelle et la consommation
mémoire/utilisateur ou tache.

Sur le raid, cela depend du degré
de disponibilité souhaité et de l'importance des données.Si on
considere le rapport entre le surcout d'un d'un raid sata (par exemple) et
le cout d'intervention lorsqu'un probleme disque arrivera, il n'y a pas
tellement a hesiter (imho).

Sur le ssl, a priori plusieurs hebergeurs le proposent sur du mutualisé.

Et plus globalement, est-il raisonable de mettre tous les ervices
mail/ftp/appli/bdd sur le meme serveur (sous windows en plus) ? Dans
l'absolu c'est difficile à dire. Si aucun de ses services n'a de besoin
important en disponbilité, peut etre. Sinon, cela peut sembler hasardeux...


Manuel


Avatar
ludo06
Lionel wrote:
JT wrote:

Bonjour,

Voici une question, AMHA, qui est assez vaste ...

Comment dimensionner le serveur (CPU, RAM, disque dur IDE, SCSI, raid
logiciel/matériel, ...)



J'ai le meme problème avec une petite appli web java.
5/10 utilisateurs en simultané aux heures de bureau
Serveur tomcat 5, jdk 1.4.2, ou éventuellement tomcat 5.5 jdk 1.5
Base postgreSQL, un dizaine de tables, la plus grosse supportant 60000
nouvelles lignes par an soit une broutille.
Essentiellement utilisée pour des saisies, puis extractions de bilans, assez
simples.
Avec upload de documents (une dizaine par jour, 1Mo en moyenne)
Probablement un webservice.
Génération de pdf avec fop.

J'ai actuellement à disposition un dédié windows2000 PIV 2.8GHz avec 512Mo
de ram, et un disque IDE 40Go utilisé par qq autres petits sites php/asp
mysql+ ftp + mail, qui ont également très peu de visiteurs.
J'ai du mal à imaginer la consommation cpu/memoire/HD pour le tout.


A ta place je ferais des plans de test avec JMeter (
http://jakarta.apache.org/jmeter ) pour stresser l'appli et voir combien
elle bouffe en ressources (tu peux simuler des parcours differents de
plusieurs utilisateurs par exemple, de l'upload aussi...), pendant au
moins 48h, avec le nombre d'utilisateur prevu + 20% (enfin tu choisis,
c'est a toi de voir ce que tu veux tester: la capacite en charge, en
surcharge, la stabilite dans le temps...)

J'ai peur que meme en rajoutant seulement de la ram ca fasse un peu léger,
surtout niveau disque et cpu.
Si tu as peux monitorer ton serveur pendant que tu execute le plan de

test tu devrais savoir exactement combien de ressources tu consommes par
rapport a un nombre d'utilisateurs. Pour ma part j'utilise MRTG, les
type de stats que j'ai a http://durandal.ubik-products.com/mrtg , s'il
est rudimentaire permet d'avoir une idee precise de ce qui est consomme
sur ton serveur, donc si tu regardes pendant que le testplan est execute
tu peux voir l'impact du nombre d'users.

D'un autre coté, prendre un bipro avec 2Go de ram + raid rien que pour cette
appli serait ridicule.
Un mutualisé peut-il faire l'affaire ? (avec java j'ai des doutes, surtout
vue l'incompétence des hébergeur)
On peut faire du SSL sur un mutualisé ou faut-il impérativement un dédié ?


Habituellement je suis plutot sur du mutualisé quadripro HP-UX 12Go de ram
pour mes applications (x2: un pour le serveur d'application, 1 pour oracle)
je n'ai donc pas trop de repères pour de petites appli :(

Merci pour vos retours d'expérience.


J'espere qu'avec ce qui est ecrit tu pourras te faire ta propre

experience, ce qui est le mieux non ?

--
Cordialement,
Ludo - http://www.ubik-products.com
---
"L'amour pour principe et l'ordre pour base; le progres pour but" (A.Comte)


Avatar
Lionel
Manuel Guesdon wrote:
Je vois plusieurs points qui ne sont pas forcement liés:
- la charge/la ram/le proc
- le raid
les 2 impactent les performances et le prix :)

Le raid (désolé je me souviens jamais des noms des modes) pour la sécurité
des données me parait indispensable.
Mes doutes concernent plutot l'utilisation du raid point de vue performances
(débit doublé en lecture en utilisant 2 disques, soit 3 disques au total,
c'est possible, non ?).
A partir de quelle utilisation cela apporte-il un réél plus ?
Je voudrais pas qu'un ADSL 10mbps qui télécharge un fichier de 20Mo en ftp
pendant qu'un autre upload un fichier de 10Mo et que 3 utilisateurs se
baladent sur le disque (donc nombreux accès sgbd en lecture) écroulent
toutes les perfs et bouffent tout le cpu.

- le ssl
c'était une question subsidiaire qui m'est venue à l'esprit quand j'ai écrit

le mot "mutualisé" :)

Sur la charge,...il faudrait faire des mesures precises. 5/10
utilisateurs simultanés ne veut pas dire grand chose dans l'absolu.
Il faudrait voir exactement ce qu'il font, la "simultaneitée" réelle
et la consommation mémoire/utilisateur ou tache.
Je pense surtout consommation mémoire en parlant d'utilisateurs simultanés.

Mes appli consomment assez peu de cpu sauf besoin exceptionnel (génération
de pdf).
La probabilité pour que 2 clics soient rééllement simultanés est quasi
nulle.

En fait, je sais dimensionner pour mon appli java, je ne sais pas
dimensionner pour java + sgbd + autres services sur la meme machine.

Sur le ssl, a priori plusieurs hebergeurs le proposent sur du
mutualisé.
Apparemment le mutualisé java c'est pas trop ça, donc la question est réglée

:)

Et plus globalement, est-il raisonable de mettre tous les ervices
mail/ftp/appli/bdd sur le meme serveur (sous windows en plus) ? Dans
l'absolu c'est difficile à dire. Si aucun de ses services n'a de
besoin important en disponbilité, peut etre.
Jamais eu le moindre problème en 1 an.

Mais j'ai pas encore déplacé mon serveur mail dessus.

Sinon, cela peut sembler
hasardeux...
D'ou mes hésitations :)


1 2 3