Aller au contenu


Java 100% CPU et seconde intercalaire


  • Veuillez vous connecter pour répondre
11 réponses à ce sujet

#1 cvidal

cvidal

    Membre avancé

  • Modérateurs
  • 70 messages

Posté 01 juillet 2012 - 16:41

Cette nuit on a eu l'ajustement de la seconde intercalaire. Dans beaucoups de serveurs Java ne l'a pas aprécié, et à 2h du matin (00:00 UTC), vous verrez que le loadavg de votre serveur monte au ciel. La solucion est simple (une fois qu'on l'a trouvé) :

date $(date +"%m%d%H%M%C%y.%S")

Pour plus de détails voir http://www.zimbra.co...-00-00-utc.html

Carlos

#2 bartounet

bartounet

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 2 825 messages
  • LocalisationAngoulême

Posté 01 juillet 2012 - 21:36

Rien chez moi ... bizzare
Serveur Production 2 Dell R905 128Go Ram cluster DRBD Xen 3.2 - SLES11 64bits
Zimbra NE V7.1.4 Xen SLES11-SP1 Paravirtualized (DomU 4Vcpus 8Go ram) - Prod 200 users
Serveur Perso HP Proliant DL120 DEDIBOX PRO Xeon® E3-1220 16Go Ram Opensuse 12.1 64bits Virtualisation Xen4
Zimbra OSE V8 Xen Ubuntu 10.04 LTS 64 bits Paravirtualized (DomU 2Vcpus 4Go ram) + Zextras - Potes et assoc
Auto-entreprise: Solutions informatiques sur mesure : http://www.info16.fr
Mon blog : http://blog.info16.fr
Image IPBImage IPBImage IPB

#3 Klug

Klug

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 10 379 messages
  • LocalisationBeaucaire - Gard

Posté 02 juillet 2012 - 06:01

On a rencontré le soucis, pas sur toutes les plateformes.

#4 bartounet

bartounet

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 2 825 messages
  • LocalisationAngoulême

Posté 02 juillet 2012 - 09:17

Oé bizarre, pourtant moi j'ai du SLES11 sp1 et du ubuntu 10.04 ...
Serveur Production 2 Dell R905 128Go Ram cluster DRBD Xen 3.2 - SLES11 64bits
Zimbra NE V7.1.4 Xen SLES11-SP1 Paravirtualized (DomU 4Vcpus 8Go ram) - Prod 200 users
Serveur Perso HP Proliant DL120 DEDIBOX PRO Xeon® E3-1220 16Go Ram Opensuse 12.1 64bits Virtualisation Xen4
Zimbra OSE V8 Xen Ubuntu 10.04 LTS 64 bits Paravirtualized (DomU 2Vcpus 4Go ram) + Zextras - Potes et assoc
Auto-entreprise: Solutions informatiques sur mesure : http://www.info16.fr
Mon blog : http://blog.info16.fr
Image IPBImage IPBImage IPB

#5 Klug

Klug

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 10 379 messages
  • LocalisationBeaucaire - Gard

Posté 02 juillet 2012 - 09:31

Sur les plateformes multi-serveurs (en 10.04 LTS), on a eu le bug sur les MBX mais pas sur les autres...
Bizarre.

#6 Klug

Klug

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 10 379 messages
  • LocalisationBeaucaire - Gard

Posté 02 juillet 2012 - 11:10

Quelques éléments en plus, récupérés sur frsarg.

Des infos : https://fr.wikipedia...de_intercalaire

A ajouter dans la crontab des serveurs :
# 1er janvier
0 1		 1 1	 *	   root		/etc/init.d/ntp stop; LANG=C date -s "`date`" ; sleep 1; /etc/init.d/ntp start
# 1er avril
0 2		 1 4	 *	   root		/etc/init.d/ntp stop; LANG=C date -s "`date`" ; sleep 1; /etc/init.d/ntp start
# 1er juillet :
0 2		 1 7	 *	   root		/etc/init.d/ntp stop; LANG=C date -s "`date`" ; sleep 1; /etc/init.d/ntp start
# 1er octobre
0 1		 1 10	*	   root		/etc/init.d/ntp stop; LANG=C date -s "`date`" ; sleep 1; /etc/init.d/ntp start


#7 tof

tof

    Membre débutant

  • Membres
  • 6 messages
  • LocalisationParis & In the middle of nowhere

Posté 02 juillet 2012 - 13:12

Ubuntu 10.04 LTS, en multi server, je n'ai pas eu soucis...
zcs 7.1.1 - ubuntu - vmware

#8 Klug

Klug

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 10 379 messages
  • LocalisationBeaucaire - Gard

Posté 02 juillet 2012 - 13:19

Voir le messagetof, le 02 juillet 2012 - 13:12, dit :

Ubuntu 10.04 LTS, en multi server, je n'ai pas eu soucis...
Je voulais t'en parler 8)

Si on veut creuser, faut regarder les VM qui sont en ntp et celles qui ne le sont pas, celles qui sont en "mise à l'heure via l'hôte" et celles qui ne le sont pas, etc

#9 Zimbra Guy

Zimbra Guy

    Zimbra Jedi

  • Modérateurs
  • 5 514 messages
  • LocalisationPlanète Terre

Posté 02 juillet 2012 - 13:45

Moi j'ai eu le problème sur mon serveur perso, j'ai crû que j'avais un afflux massif de visiteur, me disant que ça y est le début de la gloire. En fait non  :(  
Sinon ça l'a fait aussi pour mon serveur web. Du coup j'ai tout mis à jour sur mes serveurs et hop ça roule  :P
Guy Carré, professionel certifié Zimbra, Contributeur Zimbra
tel : +33 (0)6 63 18 08 XX / mail : guy.carre+zimbrafr@libremail.fr

#10 cvidal

cvidal

    Membre avancé

  • Modérateurs
  • 70 messages

Posté 02 juillet 2012 - 13:50

La seconde intercalaire n'affecte pas tous le serveurs parce que il faut remplir un certain nombre de critères.

A la base le problème est du à une mauvaise configuration de NTP, qui tout d'un coup ajoute 1 seconde à l'horloge du serveur. Donc si on n'a pas NTP (parce que on utilise ntpdate via cron par exemple), on n'est pas touché par la seconde intercalaire.

Le protocole NTP prévoit la gestion de la seconde intercalaire par 2 mécanismes (voir http://support.ntp.o...P#Section_6.14. ) : soit un fichier qui spécifie les secondes à venir, soit une annonce par le serveur NTP parent 24h à l'avance de l'ajustement. Donc si 24h avant la correction on est rattaché à un serveur NTP qui est bien configuré (ou "bien rattaché"), le serveur ne sera pas affecté, parce que NTP fera la correction en douceur. C'est ce que fait Google.

Sinon, la correction se fait d'un coup, à minuit UTC ntpd s’aperçoit que subitement l'horloge du serveur a une seconde de retard, et corrige d'un coup, pour que le système ne se rende pas compte du retard. NTP est convaincu que quelques millisecondes avant l'horloge était à l'heure, c'est pour ça qu'il corrige subitement. Et ceci affecte les logiciels qui dépendent de l'horloge du serveur.

La commande "date" (ou "ntpdate") par contre, changent l'heure via un system call qui informe à toutes les applications de faire un reset de leurs chronomètres, et c'est pour ça qu'elle résous le problème.

Les deux applications les plus affectés par une actualisation subite de l'horloge sont Java et MySQL.

Java utilise l'horloge du système pour planifier ces tâches parallèles ("threads"). Si d'un coup on a une seconde en trop, les tâches vont attendre 1 seconde avant d'être lancées, ce qui ralentit tout. Une seconde c'est une éternité en temps de CPU.

MySQL utilise l'horloge du système pour synchroniser les master et les slave. Comme avec Java, la seconde intercalaire met MySQL en pause pour rien et le système ralenti.

Donc si on n'utilise pas Java en multithreading ou si MySQL est monoserveur on n'est pas affecté.

Dans le cas de Zimbra, c'est jetty qui utilise le multithreading, et donc les mailbox sont affectées.

Bref, si vous voulez l'éviter la prochaine fois, téléchargez le fichier de secondes intercalaires (ftp://time.nist.gov/pub/leap-seconds.list), ajoutez la ligne "leapfile /xx/yy/leap-seconds.list" dans /etc/ntp.conf et mettez vous une alarme ou un cron pour actualiser le fichier de temps en temps.

Carlos

#11 Klug

Klug

    Zimbra Jedi

  • Membres
  • PipPipPipPip
  • 10 379 messages
  • LocalisationBeaucaire - Gard

Posté 02 juillet 2012 - 13:57

Merci pour les détails !

#12 Zimbra Guy

Zimbra Guy

    Zimbra Jedi

  • Modérateurs
  • 5 514 messages
  • LocalisationPlanète Terre

Posté 02 juillet 2012 - 14:55

J'épingle pour ces détails riches d'enseignement.
Guy Carré, professionel certifié Zimbra, Contributeur Zimbra
tel : +33 (0)6 63 18 08 XX / mail : guy.carre+zimbrafr@libremail.fr




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)