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 :
Extraits de la configuration APACHE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 [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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 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
Ce problème est assez critique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 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
Quelqu’un a-t-il déjà rencontré un problème similaire ?
En vous remerciant par avance.
Partager