Optimiser Apache/php/mysql sur VPS

Des questions pour configurer votre réseau, Wifi, installer un serveur, sécuriser votre machine ?

Modérateur : Mods GNU/Linux

mfa

Optimiser Apache/php/mysql sur VPS

par mfa »

J'aimerai des conseils pour optimiser mon site internet/serveur, mes connaissances sont vraiment maigres, bien que ce soit moi qui avait déjà paramétré ça l'année dernière grâce a quelques tutos trouvés sur le web. Suite à montée du nombre de visiteurs (8000 à 10000 par jour) je trouve le site très lent.

ps je suis passé de maxclients 25 à 30 et ca va mieux deja j'ai l'impression.
Merci d'avance !


TOP

Code : Tout sélectionner

Tasks:  70 total,   4 running,  66 sleeping,   0 stopped,   0 zombie
Cpu(s): 11.7%us,  2.7%sy,  0.0%ni, 85.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1048576k total,   683128k used,   365448k free,        0k buffers
Swap:   131072k total,        0k used,   131072k free,   534584k cached

Ma conf Apache

Code : Tout sélectionner

#
# Timeout: The number of seconds before receives and sends time out.
#

Timeout 40

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive off


#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#

MaxKeepAliveRequests 100


#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#

KeepAliveTimeout 15

#
ServerSignature off
TraceEnable off
ServerTokens Prod

##
## Server-Pool Size Regulation (MPM specific)
##

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers            5
    MinSpareServers         5
 MaxSpareServers         10
    MaxClients              30
    MaxRequestsPerChild  1000
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadLimit: ThreadsPerChild can be changed to this maximum value during a
#              graceful restart. ThreadLimit can only be changed by stopping
#              and starting Apache.
# ThreadsPerChild: constant number of worker threads in each server process
# MaxClients: maximum number of simultaneous client connections
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers         1
    MinSpareThreads      5
    MaxSpareThreads      15
    ThreadLimit          25
    ThreadsPerChild      5
    MaxClients           30
    MaxRequestsPerChild  200
</IfModule>

conf mysql

Code : Tout sélectionner

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
innodb=OFF
default-storage-engine = InnoDB
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1
#
# * Fine Tuning
#
key_buffer              = 32M
myisam_sort_buffer_size  = 32M
join_buffer_size        = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
max_allowed_packet      = 1M
thread_stack            = 64K
thread_cache_size       = 4
interactive_timeout = 25
wait_timeout = 1000
connect_timeout = 10
max_allowed_packet = 16M
max_connect_errors = 10
# This replaces the startup script and checks InnoDB tables if needed
# the first time they are touched
myisam-recover         = BACKUP
#max_connections        = 100
table_cache            = 1024
thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit       = 1M
query_cache_size        = 92M
query_cache_type = 1
tmp_table_size = 128M
max_heap_table_size = 128M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
log_slow_queries        = /var/log/mysql/mysql-slow.log
long_query_time = 3
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id              = 1
#log_bin                        = /var/log/mysql/mysql-bin.log
expire_logs_days        = 3
max_binlog_size         = 100M
#binlog_do_db           = include_database_name
#binlog_ignore_db       = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem



[mysqldump]
quick
quote-names
max_allowed_packet      = 16M

[mysql]
no-auto-rehash  # faster start of mysql but no tab completition

[isamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M
#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
Avatar de l’utilisateur
mélodie
Messages : 1491
Inscription : 14 janv. 2007 00:29
Localisation : Pyrénées

Re: Optimiser Apache/php/mysql sur VPS

par mélodie »

Salut,

Sur la configuration serveur proprement dite j'aurais du mal à te renseigner, car je ne m'y connais pas en serveurs (lamp ou autres). Par contre pour la vitesse d'affichage il n'y a pas que la configuration du serveur qui compte. Il y a aussi le poids des pages, ainsi que la puisse de la machine sur laquelle le serveur est installé. Pour voir déjà au niveau du site lui-même, tu pourrais utiliser les outils google webmaster pour voir si tu peux faire quelque chose de ce côté.
http://fr.wikipedia.org/wiki/Outils_Goo ... webmestres

Quand au nombre des visiteurs, si tu peux vérifier un peu d'où ils viennent et ce qu'ils font sur ton site (visiter, ou autre chose ? Regarde les logs Apache), tu pourras voir si ce sont des vrais visiteurs ou pas, et si certains envoient des requêtes répétées sur des périodes longues... tu peux les mettre en liste noire.
Règles à respecter sur le forum Si vous ne savez pas comment poster, cliquez ici !
(Et tout particulièrement la section «À lire avant de poster, en 5 points de Capitaine Fab»)

Texte culte
:
Comment Poser Les Questions De Manière Intelligente
Avatar de l’utilisateur
mélodie
Messages : 1491
Inscription : 14 janv. 2007 00:29
Localisation : Pyrénées

Re: Optimiser Apache/php/mysql sur VPS

par mélodie »

PS: hier j'ai visité la page de Cherokee, un autre serveur web, peut-être cela pourrait t'aider à faire face aux milliers de requêtes: http://cherokee-project.com/
Règles à respecter sur le forum Si vous ne savez pas comment poster, cliquez ici !
(Et tout particulièrement la section «À lire avant de poster, en 5 points de Capitaine Fab»)

Texte culte
:
Comment Poser Les Questions De Manière Intelligente
mfa

Re: Optimiser Apache/php/mysql sur VPS

par mfa »

Merci pour ta réponse.
Je connais les outils google et pourr la puissance de la machine j'ai deja vu certains faire tourner des plus gros site avec plus de traffic sur une machine identique. C'est vraiment de la config que j'ai besoin et comme jai vu que malekal lui meme a fait un sujet pointu sur ce type de config je pensais qu'il pourrait m'aider

je vais tenter d'analyser les logs mais je n'y connais pas grand chose...

cherrokee ca l'air pas mal mais compliqué et plutot a installer au debut d'un projet la jai peur de tout casser lol
Avatar de l’utilisateur
mélodie
Messages : 1491
Inscription : 14 janv. 2007 00:29
Localisation : Pyrénées

Re: Optimiser Apache/php/mysql sur VPS

par mélodie »

mfa a écrit :je vais tenter d'analyser les logs mais je n'y connais pas grand chose...
Tu regardes juste si tu vois la même adresse IP sur un grand nombre répété de lignes, et si tu en vois tu fais un "whois" sur l'ip pour voir d'où ça vient. Ensuite il y a des outils pour bloquer les IP suspectes.
cherrokee ca l'air pas mal mais compliqué et plutot a installer au debut d'un projet la jai peur de tout casser lol
Je ne sais pas si c'est plus compliqué ou pas, l'idée n'est pas de changer d'un coup, mais plutôt de tester sur une machine à part, pour voir comment ça fonctionne, voire sur une machine virtuelle, au besoin.
Règles à respecter sur le forum Si vous ne savez pas comment poster, cliquez ici !
(Et tout particulièrement la section «À lire avant de poster, en 5 points de Capitaine Fab»)

Texte culte
:
Comment Poser Les Questions De Manière Intelligente
  • Sujets similaires
    Réponses
    Vues
    Dernier message

Revenir à « Réseau sous GNU/Linux »