Optimisation nouveau Xeon qui pose problème

Discussion dans 'Administration d'un site Web' créé par ajax, 24 Mai 2006.

  1. ajax
    ajax WRInaute discret
    Inscrit:
    20 Mars 2006
    Messages:
    221
    J'aime reçus:
    0
    Bonjour

    J'ai un nouveau serveur: un xeon monoprocesseur :
    Modèle CPU Intel® Xeon™ CPU 3.00GHz
    Fréquence CPU 3000.67
    Cache CPU 2048 KB
    Bogomips CPU 11943.93

    A priori pas trop mal sur le papier. Seulement voilà, je me retrouve avec les mêmes problèmes qu'avec mon ancien Pentium IV: pas trop de charge cpu (150 personnes en ligne sur le forum) mais un load average: 0.93 et aussi je trouve un nombre de tasks anormalement élevé.

    4 à 5 fois chaque jour, alors que je n'ai pas plus de 250 personnes sur le forum, j'ai ce message d'erreur : "Sorry, SMF was unable to connect to the database. This may be caused by the server being busy. Please try again later."

    Je demande votre aide pour des solutions d'optimisation. Le forum (SMF) est rapide, mais je ne m'explique pas les montée de load average.

    Voici le résultat de mon TOP

    top - 18:55:17 up 4 days, 4:25, 1 user, load average: 0.93, 0.61, 0.64
    Tasks: 110 total, 1 running, 109 sleeping, 0 stopped, 0 zombie
    Cpu(s): 9.5% us, 2.5% sy, 0.0% ni, 86.9% id, 1.0% wa, 0.0% hi, 0.2% si
    Mem: 1035848k total, 528944k used, 506904k free, 11512k buffers
    Swap: 2650684k total, 102108k used, 2548576k free, 294716k cached

    Voici quelques uns de mes réglages:
    apache 2 conf:

    Timeout 30

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

    KeepAlive On

    # 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 1000

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

    KeepAliveTimeout 15

    ##
    ## 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 prefork.c>
    StartServers 15
    MinSpareServers 5
    MaxSpareServers 10
    MaxClients 250
    MaxRequestsPerChild 0
    #StartServers 15
    #MinSpareServers 10
    #MaxSpareServers 15
    #MaxClients 250
    #MaxRequestsPerChild 200000
    </IfModule>

    # pthread MPM
    # StartServers ......... initial number of server processes to start
    # MaxClients ........... maximum number of server processes allowed to start
    # MinSpareThreads ...... minimum number of worker threads which are kept spare
    # MaxSpareThreads ...... maximum number of worker threads which are kept spare
    # ThreadsPerChild ...... constant number of worker threads in each server process
    # MaxRequestsPerChild .. maximum number of requests a server process serves
    <IfModule worker.c>
    StartServers 10
    MaxClients 250
    MinSpareThreads 25
    MaxSpareThreads 75
    ThreadsPerChild 100
    MaxRequestsPerChild 100000
    </IfModule>

    # perchild MPM
    # NumServers ........... constant number of server processes
    # StartThreads ......... initial number of worker threads in each server process
    # MinSpareThreads ...... minimum number of worker threads which are kept spare
    # MaxSpareThreads ...... maximum number of worker threads which are kept spare
    # MaxThreadsPerChild ... maximum number of worker threads in each server process
    # MaxRequestsPerChild .. maximum number of connections per server process (then it dies)
    <IfModule perchild.c>
    NumServers 5
    StartThreads 5
    MinSpareThreads 5
    MaxSpareThreads 100
    MaxThreadsPerChild 100
    MaxRequestsPerChild 100000


    My?cnf

    key_buffer = 16M
    max_allowed_packet = 16M
    thread_stack = 128K
    #
    # * Query Cache Configuration
    #
    query_cache_limit = 10485760
    query_cache_size = 167772160
    query_cache_type = 1

    max_user_connections = 50
    #


    et dans php.ini (les réglages eaccelerator)

    extension=mcrypt.so
    extension=mysql.so
    extension=gd.so
    extension="eaccelerator.so"
    eaccelerator.shm_size="32"
    eaccelerator.cache_dir="/home/tmpfiles/eaccelerator"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="0"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"
     
  2. Momo
    Momo Nouveau WRInaute
    Inscrit:
    27 Septembre 2003
    Messages:
    49
    J'aime reçus:
    0
    Bonsoir,

    A première vue tu as une limite trop forte sur les connexions mysql.
    Il faudrait dans my.cnf un max_user_connections = 100
    Voir plus.

    Il faudra relancer ton serveur mysql pour que cette modif soit prise en compte.
     
  3. CrazyMoto
    CrazyMoto Nouveau WRInaute
    Inscrit:
    6 Mai 2006
    Messages:
    20
    J'aime reçus:
    0
    Salut,

    Remplace
    MaxRequestsPerChild 0

    par

    MaxRequestsPerChild 8000

    Ensuite, il faut revoir ta configuration mysql,

    Sur mon Bixeon avec 2Go de ram j'ai adopté la suivante :

    max_connections = 500
    key_buffer = 32M
    myisam_sort_buffer_size = 64M
    join_buffer_size = 1M
    read_buffer_size = 1M
    sort_buffer_size = 2M
    table_cache = 1800
    thread_cache_size = 384
    wait_timeout = 90
    connect_timeout = 10
    tmp_table_size = 64M
    max_heap_table_size = 64M
    max_allowed_packet = 64M
    max_connect_errors = 10
    read_rnd_buffer_size = 524288
    bulk_insert_buffer_size = 8M
    query_cache_limit = 3M
    query_cache_size = 80M
    query_cache_type = 1
    query_prealloc_size = 163840
    query_alloc_block_size = 32768

    Essaie ça pour voir, ca devrait être mieux même si un peu costaud. Ceci dit je ne suis pas dieu en mysql ...

    En ce qui concerne le load, ce n'est pas non plus affolant... voir largement raisonnable.

    A 750 connectés sur mon forum il m'arrive vite de loader a 2 ou 3, pourtant le temps de generation des pages reste inférieur à 0.01 seconde.
     
  4. ajax
    ajax WRInaute discret
    Inscrit:
    20 Mars 2006
    Messages:
    221
    J'aime reçus:
    0
    Il semblerait que sous apache 2 on doive mettre un MaxRequestsPerChild élevé (8000), alors que pas mal de personnes conseillent de ne pas dépasser 200 ?
     
  5. CrazyMoto
    CrazyMoto Nouveau WRInaute
    Inscrit:
    6 Mai 2006
    Messages:
    20
    J'aime reçus:
    0
    Dans tout les cas il ne faut pas 0, qui signifie infini :)
     
  6. Bool
    Bool WRInaute passionné
    Inscrit:
    26 Février 2004
    Messages:
    1 543
    J'aime reçus:
    0
    En théorie 0 c'est très bien. En pratique, un chiffre entre 5000 et 10000 est "rassurant", juste pour s'assurer que les éventuelles fuites mémoire coté PHP ne s'éternisent pas. Mais de toutes façons Apache est relancé au moins une fois par jour pour la rotation des logs...

    En tous cas j'ai vu des serveurs qui étaient loin d'être réactifs justement à cause d'un MaxRequetsPerChild bien trop bas... Si les processus ne sont pas relancés par défaut, c'est bien qu'il y a une raison...

    Donc a moins d'avoir 128Mo de RAM sur la machine et des scripts très très mal codés (et encore :s), je déconseillerais de mettre moins de 5000 (ou dans ce cas 0).
     
Chargement...
Similar Threads - Optimisation nouveau Xeon Forum Date
Nouveau site et optimisation du référencement Débuter en référencement 28 Septembre 2011
Mise en ligne d'un tout nouveau site, questions sur l'optimisation Débuter en référencement 17 Juillet 2010
Nouveau site/CMS - votre avis sur l'optimisation SEO du code Problèmes de référencement spécifiques à vos sites 26 Avril 2010
Tout nouveau site avis sur l'optimisation d code Problèmes de référencement spécifiques à vos sites 14 Mai 2007
optimisation des mots clés google - nouveau service AdWords 14 Décembre 2006
Optimisation de nouveau domaine Référencement Google 13 Juillet 2006
Optimisation d' un site avec Yoast Débuter en référencement 5 Mai 2022
WordPress Avis et question concernant une optimisation dû à de multiples sites Demandes d'avis et de conseils sur vos sites 18 Avril 2022
Optimisation publication FB Facebook 14 Avril 2022
Optimisation d'une page : Titre du Site et Menu comment les inclure? Débuter en référencement 13 Septembre 2021
Astuce Optimisation des URLs Débuter en référencement 15 Juin 2021
WordPress PageSpeed - optimisation - fonts Développement d'un site Web ou d'une appli mobile 27 Janvier 2021
Optimisation SXO de site web de mon agence Référencement Google 22 Janvier 2021
Avis et optimisation sur blog voyage Demandes d'avis et de conseils sur vos sites 24 Décembre 2020
Optimisation du Cumulative Layout Shift (CLS) Référencement Google 8 Décembre 2020
Optimisation URL pour les moteurs de recherche Débuter en référencement 15 Novembre 2020
Optimisation site Wordpress Débuter en référencement 21 Août 2020
Optimisation des publicités / revenus AdSense 19 Juillet 2020
WordPress optimisation des temps de chargements Débuter en référencement 28 Juin 2020
Optimisation pour la catégorie de produits de commerce électronique Rédaction web et référencement 26 Juin 2020