Consultant Informatique Réseau et Internet

12 février 2010

Installer Zimbra 6 sur un serveur dédié OVH Proxmox/OpenVZ

Ayant déjà installé Zimbra 5 sur Promox/OpenVZ sans problème, je pensais installer cette nouvelle config Zimbra 6 vite fait avant de sortir déjeuner. Malgré l’absence d’erreur signalé lors de l’installation certains services ne démarrent et les problèmes commencent …

Update 2014/05/09

Pour info, j’ai installé Zimbra 8.0.7 dans un CT Ubuntu 12.0.4 selon cette procédure. Apparement OK.

(Si la procédure ci-dessous vous semble compliquée, n’hésitez pas à me contacter pour une prestation d’installation Proxmox sur serveur dédié OVH)

Les logs (/opt/zimbra/logs) listent des erreurs liées à JAVA du type:

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

Pour mon resto à midi, c’était raté, et en fait le diner aussi, mais je ne le savais pas encore à ce stade.

Je résume les épisodes suivants: après recherche sur Google, j’ai difficilement trouvé quelques pages traitant de ce problème. Il s’agit apparemment d’un problème lié à JAVA qui tente de réserver trop de mémoire au regard des possibilités par défaut d’une VM OpenVZ. La solution proposée consiste à augmenter les valeurs du paramètre PRIVVMPAGES.

Une fois le symptome JAVA contourné, j’ai constaté de fréquentes (environ toutes les minutes) surcharges CPU (90% à 100%)  alors que le système ne gère aucun email, ni entrant, ni sortant. Encore Google: il s’agit de taches de maintenance de Zimbra.

Update 17 février 2010:

Cette mauvaise expérience remonte maintenant à quelques temps. J’ai depuis installé un bon nombre de serveurs Zimbra, et j’ai peu à peu amélioré et complété cette page, qui est finalement devenue un tutorial pour installer Zimbra 6 sur une machine virtuelle Centos 5-64bits sur Proxmox/OpenVZ sur serveur dédié OVH.

1) Configuration DNS des entrées A et MX pour domain

Avant de commencer l’installation de Zimbra, les entrées DNS correspondantes doivent exister. C’est à dire l’entrée A pointant l’IP de la VM (ex: zimbra.mondomaine.com) et l’entrée MX pour le domaine.

IMPORTANT: Cette étape est nécessaire, Zimbra ne peut pas être installé si la configuration du domaine et du serveur de mail n’est pas correcte

Pour vérifier la configuration DNS, le plus simple est d’utiliser dig:

Vérification du MX pour le domaine (ex xxxxxx.com)

dig xxxxxx.com MX

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 <<>> xxxxxx.com MX
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51551
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;xxxxxx.com.                   IN      MX
;; ANSWER SECTION:
xxxxxx.com.            3600    IN      MX      30 mail.xxxxxx.com.
;; AUTHORITY SECTION:
xxxxxx.com.            133269  IN      NS      ns5.xxxxxxk.com.
xxxxxx.com.            133269  IN      NS      ns1.xxxxxxk.com.

;; Query time: 14 msec
;; SERVER: 213.186.33.99#53(213.186.33.99)
;; WHEN: Wed Feb 17 17:22:18 2010
;; MSG SIZE  rcvd: 95

On va ici que le serveur de mail pour le domaine "xxxxxx.com" est "mail.xxxxxx.com" (cf entrée MX).
En d'autres termes, "mail.xxxxxx.com" doit pointer sur l'IP publique de la VM dans laquelle Zimbra sera installé.

[root@mail ~]# dig mail.xxxxxx.com

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 <<>> mail.xxxxxx.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48047
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;mail.xxxxxx.com.              IN      A

;; ANSWER SECTION:
mail.xxxxxx.com.     3600    IN      A       87.1.140.12

;; AUTHORITY SECTION:
xxxxxx.com.            133224  IN      NS      ns1.xxxxxxk.com.
xxxxxx.com.            133224  IN      NS      ns5.xxxxxxk.com.

;; Query time: 2 msec
;; SERVER: 213.186.33.99#53(213.186.33.99)
;; WHEN: Wed Feb 17 17:23:03 2010
;; MSG SIZE  rcvd: 116

On voit ici que l'IP associé à mail.xxxxxx.com est 87.1.140.12 (cf entrée A)

2) Ajouter les règles iptables

Pour que votre Zimbra soit accessible depuis Internet, il faut ajouter quelques règles iptables à votre HN:

-A FORWARD  -m state –state NEW -m tcp -p tcp –dport 443 –destination <IP VM Zimbra> -j ACCEPT
-A FORWARD  -m state –state NEW -m tcp -p tcp –dport 80 –destination <IP VM Zimbra> -j ACCEPT
-A FORWARD  -m state –state NEW -m tcp -p tcp –dport 110 –destination <IP VM Zimbra> -j ACCEPT
-A FORWARD  -m state –state NEW -m tcp -p tcp –dport 143 –destination <IP VM Zimbra> -j ACCEPT
-A FORWARD  -m state –state NEW -m tcp -p tcp –dport 25 –destination <IP VM Zimbra> -j ACCEPT
-A FORWARD  -m state –state NEW -m tcp -p tcp –dport 7071 –destination <IP VM Zimbra> -j ACCEPT
-A FORWARD  -m state –state NEW -m tcp -p tcp –dport 993 –destination <IP VM Zimbra> -j ACCEPT
-A FORWARD  -m state –state NEW -m tcp -p tcp –dport 995 –destination <IP VM Zimbra> -j ACCEPT

3) Créer la VM Centos 5

maj 2012/11/25: Centos 6 avec Zimbra 8

Ayant rencontré des soucis avec la template Centos 5 fourni avec la distribution Promox d’OVH, je préfère télécharger la template OpenVZ:

http://wiki.openvz.org/Download/template/precreated

Si votre VM dispose de plus de 4Go de RAM+Swap, il est préférable d’utiliser la template 64 bits

Télécharger le fichier template: centos-5-x86_64.tar.gz (ou centos-5-x86.tar.gz)

et le copier dans le répertoire

/vz/template/cache

Pour que la template apparaisse dans le menu déroulant du formulaire de création d’un VM/openVZ, vous devez renommer le fichier selon le modèle suivant:

<OS>-<OSVERSION>-<NAME>_<VERSION>_<ARCH>.tar.gz

où <ARCH> = ‘i386′ ou ‘amd64′

par exemple:

#mv centos-5-x86_64.tar.gz centos-5.0-openvz_5.0_amd64.tar.gz

Créer la machine virtuelle:

Type: OpenVZ
Template: centos-5.0-openvz_5.0_amd64
Disk space: 50Go
Memory: 3072
Swap: 3072
hostname: zimbra
DNS domain: mondomaine.com

hostname + DNS domain doit correspondre aux entrées DNS définies ci-dessus (ici: zimbra.domaine.com).

4) Augmenter PRIVVMPAGES

maj 2012/11/25—:
# vzctl set 104 –privvmpages unlimited –save

IMPORTANT: 2 CPU (au minimum)
Avec Promox 1.9 ou plus, il faut impérativement associer au moins deux CPU à la VM sinon l’installation se bloque. (Pourquoi ? Je ne sais pas, seul info: le kernel prend en compte le nombre de CPU alors que les kernel précédent prenaient tous les CPU)

—————-

Update 2010/02/12, rubrique largement complétée:

Le paramètre privvmpages est le nombre de pages (1 page=4096 octets avec CPU x86 ou x86_64) de private virtual memory (mem + swap) qui est alloué par la VM. A noter que la mémoire allouée n’est pas nécessairement utilisée.

En savoir plus sur privvmpages: http://wiki.openvz.org/Privvmpages#privvmpages

Une demande d’allocation mémoire qui aurait pour conséquence de générer un total de la mémoire allouée qui dépasserait le maximum autorisé (soit “barrier” pour les allocations de priorité normale,  ”limit” pour les allocations de haute priorité) serait refusée.  Du point de vue de l’application en cours d’exécution dans la VM, la demande d’allocation mémoire est refusée avec une erreur du type “out of memory”.

Pour une raison que j’ignore, Java alloue bien plus de mémoire que la quantité réellement utilisée. De plus, il semble que la quantité allouée est fonction de la mémoire totale du système.

En utilisant la commande “cat /proc/user_beancounters” dans une VM, il est possible d’obtenir la quantité actuellement allouée et la maximum alloué depuis le lancement de la VM. J’ai examiné ces valeurs sur plusieurs VM chargée avec Zimbra mais je ne parviens pas à trouver une explication logique. En effet, la quantité de mémoire allouée semble toujours beaucoup trop importante au regard de la mémoire totale affectée à la VM.

Par exemple, j’ai constaté :

privvmpages maxheld = 3057269 pour une VM disposant de 6Go de RAM+SWAP. Soit en octets: 12 522 573 824 (3057269*4096), soit 12Go. En d’autres termes, d’après les informations trouvées sur le wiki OpenVZ, Java aurait allouée 12Go dans un machine disposant de 6Go ! Très surprenant, malheureusement, à ce jour je n’ai aucune explication. Si vous en savez plus à ce sujet, surtout contactez-moi.

Heureusement, OpenVZ ne réserve pas la mémoire à hauteur des “privvmpages” des VM, aussi il ne semble pas génant que le total des “privvmpages” (de toutes les VM du HN) dépasse de beaucoup la mémoire réelle du HN (RAM + swap). Il est donc possible d’augmenter ces valeurs autant que de besoin pour Zimbra.

Bref, pour une VM de N Go de RAM+Swap, je recommande :barrier = (N+1) x 2000000

  • limit = (N+1) x 2500000
Par exemple, pour une VM disposant de 6Go (ex 3Go RAM + 3Go Swap), cela donne barrier=14 000 000 et limit = 17 500 000.  (formule mise à jour le 2010/08/08. Zimbra 6.0.7 semble nécessiter beaucoup plus de mémoire que les versions précédentes. J’ai donc multiplié par deux les valeurs précédemment indiquées)

Je ne peux évidemment donner aucune explication théorique à cet algorithme très élaboré. D’après mon expérience, il donne des résultats satisfaisants (jusqu’à preuve du contraire …). Je précise que je n’ai pas constaté de problème sur les HN hébergeant plusieurs VMs en plus de Zimbra. Si vous rencontrez des problèmes avec ce paramètrage merci de me le faire savoir.

Dans la pratique, vous pouvez changer les valeurs de privvmpages avec l’utilitaire “vzctl” ou directement en éditant le fichier “/etc/vz/conf/101.conf”. “vzctl” présente l’avantage d’être actif immédiatement sans avoir à redémarrer la VM.

Avant de démarrer la vm, sur le HN, entrez (exemple pour une VM avec 6Go de RAM+Swap):

# vzctl set 104 --privvmpages 14000000:17500000 --save
UB limits were set successfully
Configure meminfo: 7000000
Saved parameters for CT 104
Attention, ces nouvelles valeurs seront effacées si vous sauvez des modifications dans "Options" de la VM via l'interface web de proxmox.
Par précaution, vous pouvez vérifier la validité de la configuration de la VM avec "vzcfgvalidate":
# vzcfgvalidate /etc/vz/conf/104.conf
Validation completed: success

Pour savoir si les valeurs conviennent, il faut exécuter la commande suivante avant et après le démarrage de Zimbra (donc après l’installation bien sur), mais aussi après une nuit car certaines taches de maintenance de Zimbra allouent beaucoup de mémoire. Je recommande aussi de vérifier qu’un reboot complet du HN ne pose pas de problème. J’ai constaté qu’au boot du serveur physique, une VM Zimbra alloue ponctuellement une quantité de mémoire importante.

vzctl exec 101 cat /proc/user_beancounters (101 étant l’ID de la VM)

Les valeurs de PRIVVMPAGES conviennent si la valeur (en principe zéro) failcnt pour privvmpages ne change pas. (failcnt indique le nombre de fois où une allocation mémoire a échouée depuis le lancement de la VM)

Ci-dessous un exemple de valeurs privvmpages trop petites:

#  cat /proc/user_beancounters
Version: 2.5
       uid  resource                     held              maxheld              barrier                limit              failcnt
      112:  kmemsize                148335913            189392916  9223372036854775807  9223372036854775807                    0
            lockedpages                     0                 1089               786432               786432                    0
            privvmpages                793266              1573142              1572864              1585364                   37

La valeur “maxheld” contient le maximum effectivement allouée, et non les demandes refusées.

Pour réinitialiser failcnt à zéro, vous devez redémarrer la VM (cela ne fonctionne pas toujours et souvent failcnt conserve sa valeur précédente)

5) Démarrer la VM

Démarrer la VM.

Dans le host, vérifier que les nouvelles valeurs PRIVVMPAGES sont prises en compte:

vzctl exec 101 cat /proc/user_beancounters

la ligne PRIVVMPAGES doit indiquer les nouvelles valeurs.

IMPORTANT:
Si l’installation de Zimbra est lancée avec des valeurs de PRIVVMPAGES trop petites, certaines procédures d’installation vont échouer, mais sans nécessairement afficher de message d’erreur à la console. Ces erreurs sont toutefois visibles dans le log de l’installation (/opt/zimbra/log/zmsetup.NNNNNNN-NNNNN.log)

Exemple d’erreurs typiques:

Could not create the Java virtual machine.
Could not create the Java virtual machine.
Could not create the Java virtual machine.
Could not create the Java virtual machine.
/opt/zimbra/bin/zmjava: line 56: [: too many arguments
/opt/zimbra/bin/zmjava: line 60: [: too many arguments
/opt/zimbra/bin/zmjava: line 64: [: too many arguments
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Wed Feb 17 01:21:55 2010 failed. This may impact system functionality.
Wed Feb 17 01:21:55 2010 	com_zimbra_ymemoticons...
Wed Feb 17 01:21:55 2010 *** Running as zimbra user: 

6) Vérifier /etc/hosts

Dans la vm, vérifier /etc/hosts, ce fichier doit contenir les IP et hostname corrects (très important), en principe généré lors de la création de la VM:

[root@zimbra ~]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
199.0.0.1 zimbra.mondomaine.com  zimbra

7) Arrêter sendmail et httpd

Pour éviter les conflits de ports, il faut désactiver sendmail et httpd:

service sendmail stop
service httpd stop
chkconfig sendmail off
chkconfig httpd off

8 ) Configurer la zone horaire

# rm /etc/localtime
rm: remove regular file `/etc/localtime'? y
# ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
# date
Wed Feb 17 09:02:06 CET 2010

9) Télécharger Zimbra 6 Open Source

cd /var/tmp

Télécharger zimbra :
http://www.zimbra.com/community/downloads.html
pour red hat 5 - 64bits

wget http://<url Red Hat Enterprise Linux 5 - 64 bit x86>

décompresser le fichier reçu:

tar xzvf [zcsfullfilename.tgz]

10) Installer les dépendances:

yum install gmp compat-libstdc++-33 sysstat

11) Lancer l’installation

Rappel: Avant de lancer l’installation, les valeurs de PRIVVMPAGES doivent être augmentées comme indiqué en début d’article

Pour référence, voici la capture console d’une installation réussie de Zimbra: zimbra_install_capture_console.log

cd [zcsfullfilename]
./install.sh –platform-override

suivre les instructions, si nécessaire spécifier le domaine:

Installing LDAP configuration database…done.
Setting defaults…
Interface: 127.0.0.1
Interface: 199.0.0.1

DNS ERROR - none of the MX records for zimbra.domain.com
resolve to this host
Change domain name? [Yes]
Create domain: [zimbra.domain.com] mondomaine.com
[ENTER]

Un peu plus tard, le menu d’installation doit s’afficher. Vous devez au moins définir la zone horaire et choisir un mot de passe administrateur:

Choisir 1 pour Common Configuration, puis 6 pour TimeZone. Choisir une zone (233 pour France)

Choisir 3 pour zimbra-store, puis 4 pour Admin password

Update 2014/05/09 Zimbra 8.0.7
Si besoin de changer le domaine par défaut:
Aller dans “2) zimbra-ldap”, puis “3) Domain to create” (pas évident a trouver !)

Enfin, appuyer sur a pour valider. En principe, l’installation se poursuit et se termine sans problème.

*** CONFIGURATION COMPLETE - press ‘a’ to apply
Select from menu, or press ‘a’ to apply config (? - help) a
Save configuration data to a file? [Yes] y
Save config in file: [/opt/zimbra/config.6836] y
Saving config in y…done.
The system will be modified - continue? [No] y
Operations logged to /tmp/zmsetup.09272009-145143.log
Setting local config values…done.
Setting up CA…done.
Deploying CA to /opt/zimbra/conf/ca …done.
Creating SSL certificate…done.
Installing mailboxd SSL certificates…done.
Initializing ldap…done.
Setting replication password…done.
Setting Postfix password…done.
Setting amavis password…done.
Setting nginx password…done.
Creating server entry for zimbra.mondomaine.com…done.
Saving CA in ldap …done.
Saving SSL Certificate in ldap …done.
Setting spell check URL…done.
Setting service ports on zimbra.mondomaine.com…done.
Adding zimbra.mondomaine.com to zimbraMailHostPool in default COS…done.
Installing webclient skins…
goldrush…done.
bones…done.
waves…done.
hotrod…done.
yahoo…done.
beach…done.
bare…done.
zmail…done.
steel…done.
sky…done.
lemongrass…done.
lavender…done.
sand…done.
Finished installing webclient skins.
Setting zimbraFeatureIMEnabled=FALSE…done.
Setting zimbraFeatureTasksEnabled=TRUE…done.
Setting zimbraFeatureBriefcasesEnabled=TRUE…done.
Setting zimbraFeatureNotebookEnabled=TRUE…done.
Setting MTA auth host…done.
Setting TimeZone Preference…done.
Initializing mta config…done.
Setting services on zimbra.mondomaine.com…done.
Creating domain mondomaine.com…done.
Setting default domain name…done.
Creating domain mondomaine.com…already exists.
Creating admin account admin@
mondomaine.com…done.
Creating root alias…done.
Creating postmaster alias…done.
Creating user wiki@
mondomaine.com…done.
Creating user spam.rtndbe51s@
mondomaine.com…done.
Creating user ham.uo3preyjey@mondomaine.com…done.
Setting spam training accounts…done.
Initializing store sql database…done.
Setting zimbraSmtpHostname for zimbra.mondomaine.com…done.
Configuring SNMP…done.
Checking for default IM conference room…not present.
Initializing default IM conference room…done.
Setting up syslog.conf…Updating /etc/syslog.conf….done.
done.

Attention, le démarrage des serveurs peut être assez long (bloqué sur Starting servers… jusqu’à 10 ou 15 minutes), ne soyez pas impatient, laisser le processus se terminer. Ci-dessous les sorties correspondantes:

Starting servers…done.
Installing common zimlets…
com_zimbra_ymemoticons…done.
com_zimbra_url…done.
com_zimbra_bulkprovision…done.
com_zimbra_email…done.
com_zimbra_phone…done.
com_zimbra_date…done.
com_zimbra_local…done.
com_zimbra_cert_manager…done.
Finished installing common zimlets.
Initializing Documents…done.
Restarting mailboxd…done.
Setting up zimbra crontab…done.

Moving /tmp/zmsetup.09272009-163208.log to /opt/zimbra/log

Configuration complete - press return to exit

12) Verifications en fin d’installation

a) Depuis la VM, verifier que failcnt de privvmpages est bien resté à zéro.

# /proc/user_beancounters

b) Consulter le log de l’installation: /opt/zimbra/log/zmsetup.NNNNN-NNNN.log

Exemple de log avec des erreurs générées avec des valeurs de PRIVVMPAGES trop petites:
zmsetup02172010-011138-error.log

Exemple de log sans erreur:
zmsetup02172010-094428-ok.log

c) Vérifier que tous les services sont “running”

su - zimbra
zmcontrol status
Host zimbra.domain.com
antispam Running
antivirus Running
convertd Running
ldap Running
logger Running
mailbox Running
mta Running
snmp Running
spell Running
stats Running

d) Si tout va bien, vous pouvez maintenant vous connecter à l’administration:

https://mail.mondomain.com:7071

login: admin
password: saisi lors de l’installation

e) et enfin, envoyer (et recevoir) un premier mail

Pour cela, connectez-vous au webmail du compte “admin”:

http://mail.mondomain.com

login: admin
password: saisi lors de l’installation

f) si tout va toujours pour le mieux, vous pouvez maintenant teester avec un client mail comme Outlook ou Thunderbird.

A noter que par defaut, Zimbra exige l’utilisation du protocole d’authentification “TLS” et interdit l’échange en clair des données d’authentification.

En cas de problème, vous pouvez donc assouplir ces règles, quite à la rétablir plus tard (conseillé).

Pour cela, aller dans l’administration Zimbra:

Global Settings >> IMAP >> Enable clear text login
Global Settings >> POP >> Enable clear text login
Global Settings >> MTA >> TLS authentication only

Pour le MTA, il convient de vérifier aussi le paramétrage au niveau du serveur qui est prioritaire:

Servers >> mail.mondomain.com >> TLS authentication only

Rappel : la plupart des fournisseurs d’accès internet ADSL bloquent par défaut le port 25 (en particulier Free, Orange, Neuf/SFR).
Si vous souhiatez envoyer des mails par SMTP via Zimbra, il faut auparavant vous assurer que le port 25 sortant de votre routeur/box est ouvert. En principe, il est possible de l’ouvrir dans l’administration de votre compte ADSL. Le plus simple pour vérifier si le port 25 est ouvert est d’utiliser Putty en choisissant “Telnet” avec 25.

13) Réduire la charge CPU

Zimbra execute de nombreuses taches de maintenance qui consomment beaucoup de CPU. Sur un serveur dédié entrée de gamme (processeur CoreDuo) cela se traduit par des pointes d’utilisation CPU à 90 ou 100 % toutes les minutes, même si la VM ne traite aucun message. Il est possible d’optimiser la charge CPU en réduisant la fréquence de certaines de ces taches:

Pour réduire la fréquence du watchdog chargé de vérifier l’état (et les redémarrer si nécessaire) des services :

su - zimbra
/opt/zimbra/bin/zmlocalconfig -e zmmtaconfig_interval=6000

Ensuite, je conseille de réduire la frequence de mise à jour du statuslog dans crontab.

yum install nano

su - zimbra
export EDITOR=”nano” (si vous préférez l’éditeur nano à vim)
crontab -e

remplacer */2 par */60 dans la ligne suivante:

*/60 * * * * /opt/zimbra/libexec/zmstatuslog

14) Optimisation des options JAVA de Zimbra

Vous trouverez ci-dessous quelques informations dédiées à l’optimisation de Zimbra. J’ai passé un certain temps à les étudier et les tester, mais, à ce jour, sans constater de bénéfice visible. J’espérais en particulier pouvoir éviter le paramétrage spécifique de “privvmpages” grâce à l’option ”mailboxd_java_heap_memory_percent”. De fait, “mailboxd_java_heap_memory_percent” et “privvmpages” sont liés, le fait de diminuer le premier réduit les besoins en “privvmpages”.  Mais au final, malgré tous mes essais, je n’ai pas réussi à mettre en place une configuration Zimbra opérationnelle avec les valeurs par défaut de “privvmpages”.

La section “JVM Options” de la page ci-dessous présente les différents paramétrages de Zimbra relatifs à JAVA

http://wiki.zimbra.com/index.php?title=Performance_Tuning_Guidelines_for_Large_Deployments#JVM_Options

En particulier les options:

mailboxd_java_options : permet de modifier les options utiliser pour lancer JAVA. A utiliser avec grandes précautions.

mailboxd_java_heap_memory_percent: permet de modifier la quantité de mémoire utilisée comme heap par JAVA. La valeur de ce paramètre est exprimée en % de la mémoire totale attribuée à la VM et est utilisé pour déterminer les paramètres java -Xms et -Xmx

Pour afficher la valeur actuelle de ces paramètres il faut utiliser la commande zmlocalconfig:

# su - zimbra


# zmlocalconfig mailboxd_java_heap_memory_percent
mailboxd_java_heap_memory_percent = 40


# zmlocalconfig mailboxd_java_options
mailboxd_java_options = -server -Djava.awt.headless=true -XX:+UseConcMarkSweepGC
-XX:NewRatio=2 -XX:PermSize=128m -XX:MaxPermSize=128m -XX:SoftRefLRUPolicyMSPerMB=1
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime

Pour changer une valeur il faut utiliser "zmlocalconfig -e", par exemple:
# zmlocalconfig mailboxd_java_heap_memory_percent=25

Pour voir les paramètres effectivement utilisés par Zimbra pour lancer JAVA:

#ps aux | grep java

root     13612  0.0  0.0   3800   408 ?        Ss   10:07   0:00 /opt/zimbra/libexec/zmmailboxdmgr start -server
-Djava.awt.headless=true -XX:+UseConcMarkSweepGC -XX:NewRatio=2 -XX:PermSize=128m -XX:MaxPermSize=128m -XX:SoftRefLRUPolicyMSPerMB=1
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -Xss256k -Xms3150m -Xmx3150m -Xmn787m

zimbra   13613  0.1 10.3 3780780 832308 ?      Sl   10:07   0:37 /opt/zimbra/java/bin/java -server -Djava.awt.headless=true
-XX:+UseConcMarkSweepGC -XX:NewRatio=2 -XX:PermSize=128m -XX:MaxPermSize=128m -XX:SoftRefLRUPolicyMSPerMB=1 -verbose:gc
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -Xss256k -Xms3150m -Xmx3150m -Xmn787m
-Djava.io.tmpdir=/opt/zimbra/mailboxd/work -Djava.library.path=/opt/zimbra/lib -Djava.endorsed.dirs=/opt/zimbra/mailboxd/common/endorsed
-Dzimbra.config=/opt/zimbra/conf/localconfig.xml -Djetty.home=/opt/zimbra/mailboxd -DSTART=/opt/zimbra/mailboxd/etc/start.config
-jar /opt/zimbra/mailboxd/start.jar /opt/zimbra/mailboxd/etc/jetty.properties /opt/zimbra/mailboxd/etc/jetty-setuid.xml /opt/zimbra/mailboxd/etc/jetty.xml

zimbra   30112  0.0  0.0   6032   652 pts/0    S+   17:42   0:00 grep java

4 commentaires

  1. Arfff, vais tester de suite, en me basant sur l’buntu et en jonglant avec pri’machin, pas reussi a avoir quelque chose de fonctionnel…

    Merci d’avance =)

    Commentaire par fabz — 29 décembre 2009 @ 12:09

  2. Bonjour … et merci pour ce tutorial

    Je ne comprends pas la formule indiqué dans le tutorial:

    * barrier = (N+1) x 2000000
    * limit = (N+1) x 2500000

    Par exemple, pour une VM disposant de 6Go (ex 3Go RAM + 3Go Swap), cela donne barrier=14 000 000 et limit = 14 500 000

    En effet si (6+1) * 2 000 000= 14 000 000 (6+1) * 2 500 000 = 17 500 000 et non 14 500 000 ?

    Ou alors je compte encore plus mal que je ne crois :)

    Cordialement,
    Guillaume

    Commentaire par Guillaume — 12 août 2010 @ 14:56

  3. Merci 1000 fois pour cette page.

    Commentaire par Damien — 27 août 2010 @ 17:17

  4. merci de ces tuyaux. le zmmtaconfig_interval et le zmstatuslog influent grandement sur les performances d’une dedibox entrée de gamme avec un celeron vaillant mais un peu dépassé par ces tâches de maintenance

    Commentaire par jmax — 21 novembre 2010 @ 9:55

Flux RSS des commentaires de cet article.

Désolé, les commentaires sont fermés pour le moment.

Propulsé par WordPress