Configuration httpd et my cnf sous centos 5

Fermé
skiny94 Messages postés 4 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 3 janvier 2012 - 2 janv. 2012 à 03:44
mamiemando Messages postés 33108 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 14 mai 2024 - 4 janv. 2012 à 10:45
Bonjour,


J'ai besoin de votre aide svp je suis débutant en administration des serveurs.
En effet, j'ai commandé un serveur virtuel XXL de chez 1and1 (Plesk 10, et Centos 5) pour faire tourner un site internet, mais c'est très très lent et parfois le serveur apache est hors services notamment les soirées.


Le site internet réalise 15 000 visites par jours pour 3 pages / visite.

Le site tourne sous joomla et utilise une base de données Mysql d'environ 70 Mo.

Configuration du serveur :
RAM : minimum 2go et 8go garantie d'après 1and1

Voici une partie de mon httpd.conf

Timeout 30

KeepAlive off

MaxKeepAliveRequests 100

KeepAliveTimeout 5

<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 1500
MaxClients 1200
MaxRequestsPerChild 20000
</IfModule>


Et une partie de mon my.cnf
[mysqld]
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=1
skip-networking
skip-bdb
set-variable = innodb_buffer_pool_size=2M
set-variable = innodb_additional_mem_pool_size=500K
set-variable = innodb_log_buffer_size=500K
set-variable = innodb_thread_concurrency=2
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-bdb
set-variable = innodb_buffer_pool_size=2M
set-variable = innodb_additional_mem_pool_size=500K
set-variable = innodb_log_buffer_size=500K
set-variable = innodb_thread_concurrency=2
A voir également:

3 réponses

mamiemando Messages postés 33108 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 14 mai 2024 7 753
2 janv. 2012 à 20:29
Tu peux regarder avec un script de ce genre si on peut améliorer la configuration de mysql pour la rendre plus efficace :
https://www.howtoforge.com/tuning-mysql-performance-with-mysqltuner

Autre approche, beaucoup plus complexe à mettre en place, c'est la réplication. C'est un peu dur de dire si c'est une charge suffisamment importante qui justifie de la mettre en place. Comme son nom l'indique la réplication requiert des machines supplémentaires : en effet,celle-ci consiste à répliquer la même information sur plusieurs machines qui pourront alors oeuvrer en parallèle.

Tu peux par exemple avoir un serveur mysql maître et n serveurs mysql esclaves :
https://dev.mysql.com/doc/refman/8.0/en/replication.html

Ensuite, pour répartir la charge, il faut installer un mysql-proxy (et non sur le base directement) sur une machine quelconque (éventuellement le serveur maître, un serveur esclave ou une autre machine). Le proxy mysql va répartir les requêtes en écriture vers le maître et les requêtes en lecture (si tu le configurer avec le script lua dédié) vers l'un des serveurs mysql (sous debian /usr/share/mysql-proxy/rw-splitting.lua) :
https://downloads.mysql.com/archives/proxy/

Sous debian, on le configure comme suit :
http://www.dsivolant.com/articles/2010/07/22/configurer-mysql-proxy/

Dans ton cas, il faut sans doute adapter tout ça, notamment il faut sans doute remplacer "apt-get install" par ton gestionnaire de paquets (yum install ?). Au besoin cherche un tutoriel dédié à centos pour la mise en place de mysql-proxy.

Une fois le proxy mysql mis en place, il faut corriger la configuration de ton joomla (configuration.ini si ma mémoire est bonne) pour qu'il se connecte au proxy mysql. Celui-ci se comporte exactement comme un serveur mysql, à ceci prêt que... c'est un proxy :-) Ainsi tu peux te connecter par exemple avec un client mysql directement dessus (et en réalité, ta requête atteindra l'un des serveurs sous-jacents).

Sur le même principe tu peux faire du load balancing avec apache :

- soit via un proxy apache :
http://httpd.apache.org/docs/2.1/mod/mod_proxy_balancer.html

- soit via un load balancer (genre oco chez ovh) pour répartir le trafic, et en mettant en place une solution pour partager les fichiers entre les différents serveurs apache (par exemple avec nfs).

Bonne chance
1
skiny94 Messages postés 4 Date d'inscription mardi 28 décembre 2010 Statut Membre Dernière intervention 3 janvier 2012
3 janv. 2012 à 16:54
Merci bcp pour votre aide, je vais essayer de mettre en application vos conseil. je viens vers vous ensuite pour le résultat.

Par ailleurs, je suis très intéressé par les services d'un professionnel capable de configurer le serveur pour rendre le site plus rapide.

Cordialement
0
mamiemando Messages postés 33108 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 14 mai 2024 7 753
4 janv. 2012 à 10:45
Si tu souhaites faire appel à des professionnels, le mieux serait de te tourner vers une société de service spécialisée dans le domaine. En ce qui me concerne, ce n'est pas mon métier et je n'ai pas suffisamment de temps libre pour envisager de faire ce genre en plus. Au besoin je peux te mettre en contact avec des gens que je connais et qui pourrait réaliser ce genre de prestations (envoie-moi un message privé si tu es intéressé).
0