Le redémarrage du service wapt permet de rétablir son fonctionnement mais je n'ai pas trouver la commander pour lister les processus. En pièce jointe vous trouverez la réponse complète de dmesg


Les commandes pour l'espaces disque et ram montre qu'il reste de la marge

root@srv-omv:/home/administrateur# df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda1           46G    7,3G   37G  17% /
udev                10M       0   10M   0% /dev
tmpfs              1,6G    8,8M  1,6G   1% /run
tmpfs              3,9G     88K  3,9G   1% /dev/shm
tmpfs              5,0M       0  5,0M   0% /run/lock
tmpfs              3,9G       0  3,9G   0% /sys/fs/cgroup
tmpfs              798M     20K  798M   1% /run/user/1000



root@srv-omv:/home/administrateur# free -m
             total       used       free     shared    buffers     cached
Mem:          7975       1354       6620         11         76        496
-/+ buffers/cache:        782       7193
Swap:        16321          0      16321



Pour le fichier /var/log/waptserver.log en effet il était incomplet :
*** Starting uWSGI 2.0.7-debian (64bit) on [Tue Jun  2 07:35:01 2015] ***
compiled with version: 4.9.1 on 25 October 2014 19:17:54
os: Linux-3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24)
nodename: srv-omv
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 4
current working directory: /
writing pidfile to /var/run/waptserver.pid
detected binary path: /usr/bin/uwsgi-core
setgid() to 33
setuid() to 118
your processes number limit is 31835
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address 127.0.0.1:8080 fd 3
Python version: 2.7.9 (default, Mar  1 2015, 13:01:26)  [GCC 4.9.2]
Python main interpreter initialized at 0x1cb06d0
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 1237056 bytes (1208 KB) for 16 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x1cb06d0 pid: 5068 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 5068)
spawned uWSGI worker 1 (pid: 5090, cores: 1)
spawned uWSGI worker 2 (pid: 5091, cores: 1)
spawned uWSGI worker 3 (pid: 5092, cores: 1)
spawned uWSGI worker 4 (pid: 5093, cores: 1)
spawned uWSGI worker 5 (pid: 5094, cores: 1)
spawned uWSGI worker 6 (pid: 5095, cores: 1)
spawned uWSGI worker 7 (pid: 5096, cores: 1)
spawned uWSGI worker 8 (pid: 5097, cores: 1)
spawned uWSGI worker 9 (pid: 5098, cores: 1)
spawned uWSGI worker 10 (pid: 5099, cores: 1)
spawned uWSGI worker 11 (pid: 5100, cores: 1)
spawned uWSGI worker 12 (pid: 5101, cores: 1)
spawned uWSGI worker 13 (pid: 5102, cores: 1)
spawned uWSGI worker 14 (pid: 5103, cores: 1)
spawned uWSGI worker 15 (pid: 5104, cores: 1)
spawned uWSGI worker 16 (pid: 5105, cores: 1)
...brutally killing workers...

*** Starting uWSGI 2.0.7-debian (64bit) on [Tue Jun  2 08:41:02 2015] ***
compiled with version: 4.9.1 on 25 October 2014 19:17:54
os: Linux-3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24)
nodename: srv-omv
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 4
current working directory: /home/administrateur
writing pidfile to /var/run/waptserver.pid
detected binary path: /usr/bin/uwsgi-core
setgid() to 33
setuid() to 118
your processes number limit is 31835
your memory page size is 4096 bytes
detected max file descriptor number: 65536
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address 127.0.0.1:8080 fd 3
Python version: 2.7.9 (default, Mar  1 2015, 13:01:26)  [GCC 4.9.2]
Python main interpreter initialized at 0xe4de90
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 1237056 bytes (1208 KB) for 16 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0xe4de90 pid: 5185 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 5185)
spawned uWSGI worker 1 (pid: 5190, cores: 1)
spawned uWSGI worker 2 (pid: 5191, cores: 1)
spawned uWSGI worker 3 (pid: 5192, cores: 1)
spawned uWSGI worker 4 (pid: 5193, cores: 1)
spawned uWSGI worker 5 (pid: 5194, cores: 1)
spawned uWSGI worker 6 (pid: 5195, cores: 1)
spawned uWSGI worker 7 (pid: 5196, cores: 1)
spawned uWSGI worker 8 (pid: 5197, cores: 1)
spawned uWSGI worker 9 (pid: 5198, cores: 1)
spawned uWSGI worker 10 (pid: 5199, cores: 1)
spawned uWSGI worker 11 (pid: 5200, cores: 1)
spawned uWSGI worker 12 (pid: 5201, cores: 1)
spawned uWSGI worker 13 (pid: 5202, cores: 1)
spawned uWSGI worker 14 (pid: 5203, cores: 1)
spawned uWSGI worker 15 (pid: 5204, cores: 1)
spawned uWSGI worker 16 (pid: 5205, cores: 1)
invalid HTTP request size (max 4096)...skip
[pid: 5204|app: 0|req: 1/1] 127.0.0.1 () {38 vars in 567 bytes} [Tue Jun  2 08:42:15 2015] GET / => generated 6888 bytes in 458 msecs (HTTP/1.1 200) 2 heade$
[pid: 5204|app: 0|req: 2/2] 127.0.0.1 () {44 vars in 765 bytes} [Tue Jun  2 08:42:15 2015] GET /static/themes/tranquilit/style.css => generated 8443 bytes i$
[pid: 5198|app: 0|req: 1/3] 127.0.0.1 () {44 vars in 811 bytes} [Tue Jun  2 08:42:15 2015] GET /static/themes/tranquilit/img/logo-tis.jpg => generated 0 byt$
[pid: 5204|app: 0|req: 3/4] 127.0.0.1 () {44 vars in 808 bytes} [Tue Jun  2 08:42:15 2015] GET /static/themes/tranquilit/img/contact.jpg => generated 0 byte$
[pid: 5193|app: 0|req: 1/5] 127.0.0.1 () {44 vars in 776 bytes} [Tue Jun  2 08:42:15 2015] GET /static/themes/tranquilit/css/screen.css => generated 12613 b$
[pid: 5198|app: 0|req: 2/6] 127.0.0.1 () {44 vars in 776 bytes} [Tue Jun  2 08:42:15 2015] GET /static/themes/tranquilit/css/buttons.css => generated 2104 b$
[pid: 5196|app: 0|req: 1/7] 127.0.0.1 () {44 vars in 800 bytes} [Tue Jun  2 08:42:16 2015] GET /static/themes/tranquilit/img/bgd.png => generated 0 bytes in$
SIGINT/SIGQUIT received...killing workers...
worker 1 buried after 1 seconds
worker 2 buried after 1 seconds
worker 3 buried after 1 seconds
worker 4 buried after 1 seconds
worker 5 buried after 1 seconds
worker 6 buried after 1 seconds
worker 7 buried after 1 seconds
worker 8 buried after 1 seconds
worker 9 buried after 1 seconds
worker 10 buried after 1 seconds
worker 11 buried after 1 seconds
worker 11 buried after 1 seconds
worker 12 buried after 1 seconds
worker 13 buried after 1 seconds
worker 14 buried after 1 seconds
worker 15 buried after 1 seconds
worker 16 buried after 1 seconds
goodbye to uWSGI.
*** Starting uWSGI 2.0.7-debian (64bit) on [Tue Jun  2 08:45:21 2015] ***
compiled with version: 4.9.1 on 25 October 2014 19:17:54
os: Linux-3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24)
nodename: srv-omv
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 4
current working directory: /home/administrateur
writing pidfile to /var/run/waptserver.pid
detected binary path: /usr/bin/uwsgi-core
setgid() to 33
setuid() to 118
your processes number limit is 31835
your memory page size is 4096 bytes
detected max file descriptor number: 65536
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address 127.0.0.1:8080 fd 3
Python version: 2.7.9 (default, Mar  1 2015, 13:01:26)  [GCC 4.9.2]
Python main interpreter initialized at 0x970e90
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 1237056 bytes (1208 KB) for 16 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x970e90 pid: 5291 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 5291)
spawned uWSGI worker 1 (pid: 5296, cores: 1)
spawned uWSGI worker 2 (pid: 5297, cores: 1)
spawned uWSGI worker 3 (pid: 5298, cores: 1)
spawned uWSGI worker 4 (pid: 5299, cores: 1)
spawned uWSGI worker 5 (pid: 5300, cores: 1)
spawned uWSGI worker 6 (pid: 5301, cores: 1)
spawned uWSGI worker 7 (pid: 5302, cores: 1)
spawned uWSGI worker 8 (pid: 5303, cores: 1)
spawned uWSGI worker 9 (pid: 5304, cores: 1)
spawned uWSGI worker 10 (pid: 5305, cores: 1)
spawned uWSGI worker 11 (pid: 5306, cores: 1)
spawned uWSGI worker 12 (pid: 5307, cores: 1)
spawned uWSGI worker 13 (pid: 5308, cores: 1)
spawned uWSGI worker 14 (pid: 5309, cores: 1)
spawned uWSGI worker 15 (pid: 5310, cores: 1)
spawned uWSGI worker 16 (pid: 5311, cores: 1)
invalid HTTP request size (max 4096)...skip
[pid: 5299|app: 0|req: 1/1] 127.0.0.1 () {38 vars in 512 bytes} [Tue Jun  2 08:50:00 2015] GET /Packages => generated 233 bytes in 4 msecs (HTTP/1.1 404) 2 $
[pid: 5299|app: 0|req: 2/2] 127.0.0.1 () {38 vars in 512 bytes} [Tue Jun  2 08:50:00 2015] GET /Packages => generated 233 bytes in 0 msecs (HTTP/1.1 404) 2 $
[pid: 5299|app: 0|req: 3/3] 127.0.0.1 () {38 vars in 497 bytes} [Tue Jun  2 08:50:00 2015] HEAD / => generated 0 bytes in 421 msecs (HTTP/1.1 200) 2 headers$
[pid: 5299|app: 0|req: 4/4] 127.0.0.1 () {38 vars in 497 bytes} [Tue Jun  2 08:50:03 2015] HEAD / => generated 0 bytes in 420 msecs (HTTP/1.1 200) 2 headers$
[pid: 5299|app: 0|req: 5/5] 127.0.0.1 () {44 vars in 617 bytes} [Tue Jun  2 08:50:03 2015] POST /update_host => generated 1240 bytes in 19 msecs (HTTP/1.1 2$
[pid: 5310|app: 0|req: 1/6] 127.0.0.1 () {38 vars in 511 bytes} [Tue Jun  2 08:50:17 2015] GET /Packages => generated 233 bytes in 4 msecs (HTTP/1.1 404) 2 $
[pid: 5310|app: 0|req: 2/7] 127.0.0.1 () {38 vars in 511 bytes} [Tue Jun  2 08:50:17 2015] GET /Packages => generated 233 bytes in 0 msecs (HTTP/1.1 404) 2 $
[pid: 5311|app: 0|req: 1/8] 127.0.0.1 () {38 vars in 496 bytes} [Tue Jun  2 08:50:18 2015] HEAD / => generated 0 bytes in 429 msecs (HTTP/1.1 200) 2 headers$
[pid: 5310|app: 0|req: 3/9] 127.0.0.1 () {38 vars in 496 bytes} [Tue Jun  2 08:50:18 2015] HEAD / => generated 0 bytes in 428 msecs (HTTP/1.1 200) 2 headers$
[pid: 5310|app: 0|req: 4/10] 127.0.0.1 () {44 vars in 616 bytes} [Tue Jun  2 08:50:19 2015] POST /update_host => generated 1249 bytes in 30 msecs (HTTP/1.1 $
[pid: 5310|app: 0|req: 5/11] 127.0.0.1 () {38 vars in 511 bytes} [Tue Jun  2 08:50:22 2015] GET /Packages => generated 233 bytes in 0 msecs (HTTP/1.1 404) 2$
[pid: 5310|app: 0|req: 6/12] 127.0.0.1 () {38 vars in 511 bytes} [Tue Jun  2 08:50:29 2015] GET /Packages => generated 233 bytes in 0 msecs (HTTP/1.1 404) 2$
[pid: 5309|app: 0|req: 1/13] 127.0.0.1 () {38 vars in 511 bytes} [Tue Jun  2 08:50:41 2015] GET /Packages => generated 233 bytes in 4 msecs (HTTP/1.1 404) 2$
[pid: 5299|app: 0|req: 6/14] 127.0.0.1 () {38 vars in 496 bytes} [Tue Jun  2 08:52:20 2015] HEAD / => generated 0 bytes in 388 msecs (HTTP/1.1 200) 2 header$
[pid: 5299|app: 0|req: 7/15] 127.0.0.1 () {38 vars in 496 bytes} [Tue Jun  2 08:52:20 2015] HEAD / => generated 0 bytes in 431 msecs (HTTP/1.1 200) 2 header$
[pid: 5299|app: 0|req: 8/16] 127.0.0.1 () {38 vars in 496 bytes} [Tue Jun  2 08:52:24 2015] HEAD / => generated 0 bytes in 413 msecs (HTTP/1.1 200) 2 header$
[pid: 5299|app: 0|req: 9/17] 127.0.0.1 () {44 vars in 616 bytes} [Tue Jun  2 08:52:25 2015] POST /update_host => generated 1264 bytes in 30 msecs (HTTP/1.1 $
[pid: 5311|app: 0|req: 2/18] 127.0.0.1 () {38 vars in 511 bytes} [Tue Jun  2 08:52:35 2015] GET /Packages => generated 233 bytes in 1 msecs (HTTP/1.1 404) 2$
[pid: 5311|app: 0|req: 3/19] 127.0.0.1 () {38 vars in 511 bytes} [Tue Jun  2 08:52:36 2015] GET /Packages => generated 233 bytes in 0 msecs (HTTP/1.1 404) 2$
[pid: 5311|app: 0|req: 4/20] 127.0.0.1 () {38 vars in 496 bytes} [Tue Jun  2 08:52:36 2015] HEAD / => generated 0 bytes in 426 msecs (HTTP/1.1 200) 2 header$
[pid: 5311|app: 0|req: 5/21] 127.0.0.1 () {38 vars in 496 bytes} [Tue Jun  2 08:52:36 2015] HEAD / => generated 0 bytes in 392 msecs (HTTP/1.1 200) 2 header$
[pid: 5311|app: 0|req: 6/22] 127.0.0.1 () {44 vars in 616 bytes} [Tue Jun  2 08:52:37 2015] POST /update_host => generated 1264 bytes in 27 msecs (HTTP/1.1 $


Cordialement, Latieule Joël - TICE / Collège Jules Ferry de Narbonne
Le 01/06/2015 17:28, Denis Cardon a écrit :
Bonjour Joël,

Je suis en train de tester Wapt sur un serveur tout neuf et à par le
système et ses mise à jour, strictement aucuns services ou applications
n'ont été ajouté (sauf Wapt). Voici quelques informations que je peut
trouver :

  * Système : Debian 8.0 "Jessie"
  * RAM : 8 Go
  * Processeur : Intel Xeon / 3,8 Ghz quatre cœur
  * WAPT : 1.2.3

merci beaucoup pour ces détails. En effet, je pense que l'on peut écarter le problème lié à la RAM... On a déjà eu ce soucis qui avait été remonté sur la mailing list avec des serveurs à 256Mo de RAM, je voulais donc être sûr. Normalement ça devrait pouvoir tourner très bien sur une machine avec 1Go de RAM.

Le développement se fait actuellement sur la version Debian Jessie, donc on teste régulièrement wapt sur cette version. Après c'est vrai que l'on a principalement des déploiements en production sous Wheezy, la Jessie étant sortie que très récemment.

Pour obtenir les autres informations, quelle commande ou quel fichiers
doit je ouvrir ?


Ici le détail du fichier */var/log/waptserver.log*
> /
> *** Starting uWSGI 2.0.7-debian (64bit) on [Mon Jun  1 07:35:03 2015] ***
> compiled with version: 4.9.1 on 25 October 2014 19:17:54
> os: Linux-3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24)
> nodename: srv-omv
> machine: x86_64
> clock source: unix
> pcre jit disabled
> detected number of CPU cores: 4
> current working directory: /
> writing pidfile to /var/run/waptserver.pid
> detected binary path: /usr/bin/uwsgi-core
> setgid() to 33
> setuid() to 118
> your processes number limit is 31835
> your memory page size is 4096 bytes
> detected max file descriptor number: 1024
> lock engine: pthread robust mutexes
> thunder lock: disabled (you can enable it with --thunder-lock)
> uwsgi socket 0 bound to TCP address 127.0.0.1:8080 fd 3/

le log ne nous dit rien d'intéressant à part que le serveur à bien démarré... Est ce qu'il n'y a pas d'autre choses après? Est ce qu'il ne va pas jusqu'à :
 ...
 spawned uWSGI worker 15 (pid: 13581, cores: 1)
 spawned uWSGI worker 16 (pid: 13582, cores: 1)
 [pid: 13582|app: 0|req: 1/1] 127.0.0.1 () {38 vars in 529 bytes} [Mon Jun  1 07:07:23 2015] GET /Packages => generated 233 bytes in 5342 msecs (HTTP/1.1 404) 2 headers in 72 bytes (1 switches on core 0)

Est ce que vous pourriez vérifier dans ce fichier waptserver.log au moment du problème d'accès si il y a des stack trace avec des exceptions python?

Quand vous avez à relancer le serveur, est ce que vous avez tous les processus présents :
* 1 process /usr/bin/mongod --config /etc/mongodb.conf
* 16 process /usr/bin/uwsgi-core -d /var/log/waptserver.log --pidfile /var/run/waptserver.pid --ini /opt/wapt/waptserver/waptserver.ini --uid wapt --gid www-data --plugin http,python

Est ce que vous pourriez vérifier la mémoire au moment du problème :
 free -m

Juste pour vérifier, est ce qu'il y a suffisamment d'espace disque (le mongodb a tendance à consommer plusieurs centaines de Mo d'espace disque)?
 df -h

Lors du prochain problème, est ce que vous pourriez essayer de relancer d'abord le serveur wapt plutôt que de relancer toute la machine pour voir si ça résoud le problème.
 /etc/init.d/waptserver restart

Après vous pouvez vous reconnecter à l'adresse (il faudra éventuellement le relancer deux fois la requête http pour ré-initialiser le pool de connexion du ProxyPassReverse)
 http://10.111.15.2

Lors du blocage du serveur python, est ce que vous pourriez vérifier si il y a toujours des connexions en cours, par exemple :

[root@srvwapt.tranq mongodb]# netstat -tapn | grep 8080
tcp        0      0 127.0.0.1:8080          0.0.0.0:* LISTEN      5762/uwsgi-core
tcp        0      0 127.0.0.1:8080          127.0.0.1:39525 TIME_WAIT   -
tcp        1      0 127.0.0.1:39527         127.0.0.1:8080 CLOSE_WAIT  13336/apache2
tcp        0      0 127.0.0.1:8080          127.0.0.1:39526 TIME_WAIT   -
tcp        1      0 127.0.0.1:34114         127.0.0.1:8080 CLOSE_WAIT  13337/apache2
tcp        1      0 127.0.0.1:39372         127.0.0.1:8080 CLOSE_WAIT  13336/apache2
tcp        1      0 127.0.0.1:37259         127.0.0.1:8080 CLOSE_WAIT  13337/apache2
tcp        1      0 127.0.0.1:37269         127.0.0.1:8080 CLOSE_WAIT  13337/apache2
tcp        1      0 127.0.0.1:37227         127.0.0.1:8080 CLOSE_WAIT  13336/apache2
tcp        1      0 127.0.0.1:33772         127.0.0.1:8080 CLOSE_WAIT  13336/apache2
tcp        0      0 127.0.0.1:39207         127.0.0.1:8080 CLOSE_WAIT  13336/apache2
tcp        0      0 127.0.0.1:39202         127.0.0.1:8080 CLOSE_WAIT  13337/apache2
tcp        0      0 127.0.0.1:8080          127.0.0.1:39527 FIN_WAIT2   -

Pour voir si c'est un soucis avec le wrapper uwsgi, vous pouvez aussi essayer de lancer le serveur python sans uwsgi avec les commandes
 /etc/init.d/waptserver stop
 python /opt/wapt/waptserver/waptserver.py

Pour écarter des problèmes systèmes, est ce que vous pourriez vérifier avec la commande dmesg si il n'y aurai pas quelque chose d'intéressant de ce côté là?

J'ai jeté un coup d'oeil au logrotate du serveur wapt (le process qui fait tourner les logs pour éviter qu'ils deviennent trop gros). Il lance un redémarrage après la rotation des log à 6h du matin. Donc si vous n'avez que ce que vous mentionner dans le fichier de log, c'est que c'est tout ce qu'il y avait après le restart du uwsgi par le logrotate...

Cordialement,

Denis Cardon







Cordialement, Latieule Joël - TICE / Collège Jules Ferry de Narbonne

Le 29/05/2015 17:13, Denis Cardon a écrit :
Bonjour,

Je constate que chaque matin mon serveur WAPT est en panne et je doit
relancer la machine pour que tout refonctionne. J'ai installé WAPT sur
une débian et la console de gestion ou
la page http du serveur ne répond plus. Voici l'erreur que je
rencontre :


  Service Unavailable

The server is temporarily unable to service your request due to
maintenance downtime or capacity problems. Please try again later.

------------------------------------------------------------------------
Apache/2.4.10 (Debian) Server at 10.111.15.2 Port 80

le message indique que le serveur Apache n'arrive pas à récupérer une
réponse du serveur uwsgi-python. C'est un peu succinct pour
diagnostiquer un problème... Histoire de ne pas avoir à jouer à madame
soleil, il faudrait avoir quelques informations complémentaires :

combien de RAM avec vous sur cette machine? Est ce qu'il y a d'autres
choses services qui tournent en parallèle? Est ce qu'il y a des
oomkiller dans la sortie de dmesg? Est ce qu'il y a des process uwsgi
qui tourne encore quand le serveur ne répond plus? Est ce que process
mongodb est toujours là? Quelle est la version du serveur wapt
installé? Est ce qu'il y a des messages pertinents dans le fichier de
log /var/log/waptserver.log? etc.

Cordialement,

Denis Cardon





_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt