Problème de déconnexions intempestives d'utilisateurs

Comment tirer meilleur parti du serveur Apache (réservé aux utilisateurs avancés).

Modérateur : Modérateurs

MAU123
Nouveau membre
Messages : 1
Inscription : mer. 14 mars 2012, 16:04

Problème de déconnexions intempestives d'utilisateurs

Messagepar MAU123 » mer. 14 mars 2012, 16:21

Bonjour,

Nous avons développé une application en PHP qui supporte actuellement environ 2000 utilisateurs par jour avec chaque jour un pic d’activité à 1600 utilisateurs en l’espace de 30 minutes. Le reste de la journée, il y a environ 500 utilisateurs connectés en moyenne.
L’application semble avoir correctement fonctionnée pendant plusieurs mois mais depuis quelques semaines nous avons des utilisateurs qui se plaignent de déconnexions intempestives.
A noter que le nombre d’utilisateurs semble s’être légèrement accru pour passer de 1600 à 2000.
Les utilisateurs qui se font déconnecter reçoivent deux types de messages dans leurs navigateurs :
- Type 1 : Internet explorer ne peut pas afficher cette page web
- Type 2 : l’accès au serveur de données est impossible. Merci de réessayer ultérieurement

L’environnement technique est le suivant :
- PHP 4
- MY SQL version 5.0.52
- APACHE 2.0
- Windows 2003, sp3
Ces différents éléments sont installés sur une même machine.

Physical memory (K)
Total : 4193500
Available : 3225892
System cache : 2111156

Le fichier log de MySQL ne comporte aucune erreur.
Par contre, le fichier log Apache comporte de nombreuses erreurs récurrentes :

Code : Tout sélectionner

 
[Thu Mar 08 09:13:23 2012] [error] [client XX.XXX.XXX.X] PHP Warning:  mysql_connect(): Can't connect to MySQL server on 'localhost' (10061) in C:\\Program Files\\Apache Group\\Apache2\\htdocs\\XXX\\XXX_stat\\lib\\sgbd\\mysql.class.php on line 60, referer: http://XXXXX.XX.fr.cly/XXX/lXXX_stat/index.php?page=3
FATAL:  erealloc():  Unable to allocate 90112 bytes
[Thu Mar 08 09:14:07 2012] [notice] Parent: child process exited with status 1 -- Restarting.
[Thu Mar 08 09:14:07 2012] [notice] Parent: Created child process 4196
[Thu Mar 08 09:14:07 2012] [notice] Disabled use of AcceptEx() WinSock2 API
[Thu Mar 08 09:14:07 2012] [notice] Child 4196: Child process is running
[Thu Mar 08 09:14:07 2012] [notice] Child 4196: Acquired the start mutex.
[Thu Mar 08 09:14:07 2012] [notice] Child 4196: Starting 350 worker threads.
[Thu Mar 08 09:14:07 2012] [notice] Child 4196: Listening on port 80.
[Thu Mar 08 09:14:33 2012] [error] [client XX.XXX.XXX.X] PHP Warning:  mysql_connect(): Can't connect to MySQL server on 'localhost' (10061) in C:\\Program Files\\Apache Group\\Apache2\\htdocs\\XXX\\lib\\sgbd\\mysql.class.php on line 62, referer: http://XXXXX.XX.fr.cly/XXX/lXXX_stat/index.php?page=3
[Thu Mar 08 09:14:33 2012] [error] [client XX.XXX.XXX.X] PHP Notice:  Use of undefined constant NOMDUSITE - assumed 'NOMDUSITE' in C:\\Program Files\\Apache Group\\Apache2\\htdocs\\XXX\\lib\\sgbd.inc.php on line 24, referer: http://XXXXX.XX.fr.cly/XXX/lXXX_stat/index.php?page=3
FATAL:  erealloc():  Unable to allocate 22528 bytes
[Thu Mar 08 09:14:43 2012] [notice] Parent: child process exited with status 1 -- Restarting.
[Thu Mar 08 09:14:43 2012] [notice] Parent: Created child process 1920
[Thu Mar 08 09:14:43 2012] [notice] Disabled use of AcceptEx() WinSock2 API
[Thu Mar 08 09:14:43 2012] [notice] Child 1920: Child process is running
[Thu Mar 08 09:14:43 2012] [notice] Child 1920: Acquired the start mutex.
[Thu Mar 08 09:14:43 2012] [notice] Child 1920: Starting 350 worker threads.
[Thu Mar 08 09:14:43 2012] [notice] Child 1920: Listening on port 80.
[Thu Mar 08 09:14:53 2012] [error] [client 10.223.23.5] PHP Notice:  Undefined variable:  id_vue in C:\\Program Files\\Apache Group\\Apache2\\htdocs\\XXX\\XXX_stat\\module\\referentiel\\statistiques.php on line 282, referer: http://XXXXX.XX.fr.cly/XXX/lXXX_stat/index.php?page=4
[Thu Mar 08 09:14:53 2012] [error] [client 10.XXX.XX.X] PHP Notice:  Undefined variable:  libelle_vue in C:\\Program Files\\Apache Group\\Apache2\\htdocs\\XXX\\XXX_stat\\module\\referentiel\\statistiques.php on line 282, referer: http://XXXXX.XX.fr.cly/XXX/lXXX_stat/index.php?page=4
FATAL:  erealloc():  Unable to allocate 90112 bytes
[Thu Mar 08 09:15:14 2012] [notice] Parent: child process exited with status 1 -- Restarting.

/…./

[Mon Mar 12 08:53:33 2012] [notice] Child 4640: Listening on port 80.
[Mon Mar 12 08:54:05 2012] [error] [client XX.XXX.XX.XX] request failed: error reading the headers, referer: http://XXXXX.XX.fr.cly/XXX/XXX_stat/index.php?page=2
FATAL:  erealloc():  Unable to allocate 90112 bytes
[Mon Mar 12 08:54:08 2012] [notice] Parent: child process exited with status 1 -- Restarting.
[Mon Mar 12 08:54:08 2012] [notice] Parent: Created child process 5676
[Mon Mar 12 08:54:08 2012] [notice] Disabled use of AcceptEx() WinSock2 API
[Mon Mar 12 08:54:08 2012] [notice] Child 5676: Child process is running
[Mon Mar 12 08:54:08 2012] [notice] Child 5676: Acquired the start mutex.
[Mon Mar 12 08:54:08 2012] [notice] Child 5676: Starting 350 worker threads.
[Mon Mar 12 08:54:08 2012] [notice] Child 5676: Listening on port 80.
FATAL:  erealloc():  Unable to allocate 360448 bytes
[Mon Mar 12 08:54:40 2012] [notice] Parent: child process exited with status 1 -- Restarting.



Extraits de la configuration APACHE

Code : Tout sélectionner

 
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
# WinNT MPM
<IfModule mpm_winnt.c>
ThreadsPerChild 350
MaxRequestsPerChild  0
</IfModule>
Listen 80
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_module modules/mod_auth.so
#LoadModule auth_anon_module modules/mod_auth_anon.so
#LoadModule auth_dbm_module modules/mod_auth_dbm.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule headers_module modules/mod_headers.so
LoadModule imap_module modules/mod_imap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule status_module modules/mod_status.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
UseCanonicalName Off
<Directory />
    Options FollowSymLinks
    AllowOverride None

</Directory>
    Options Indexes FollowSymLinks

    AllowOverride None


Extraits de la configuration PHP

Code : Tout sélectionner

 
max_execution_time = 10800   
max_input_time = 60   
memory_limit = 128M
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1 
odbc.defaultlrl = 4096 
odbc.defaultbinmode = 1 
[MySQL]
mysql.allow_persistent = On
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.connect_timeout = 60
mysql.trace_mode = Off



Extraits de la configuration MySQL

Code : Tout sélectionner

 
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=800
query_cache_size=84M
table_cache=1520
tmp_table_size=85M
thread_cache_size=38
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=170M
key_buffer_size=300M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_additional_mem_pool_size=6M
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=3M


Ce problème est assez critique.
Quelqu’un a-t-il déjà rencontré un problème similaire ?
En vous remerciant par avance.

Revenir vers « Optimisation Apache »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité