« MTA/Zimbra/Webmail/Tips/Optimize » : différence entre les versions
(Page créée avec « == Optimisation des performances == === Augmentation du nombre de thread pour l'IMAP === Obtention de la valeur actuelle du nombre de thread IMAP zmprov gs `zmhostname` zi... ») |
Aucun résumé des modifications |
||
| Ligne 1 : | Ligne 1 : | ||
'''Optimisation des performances''' | |||
== Augmentation du nombre de thread pour l'IMAP == | |||
Obtention de la valeur actuelle du nombre de thread IMAP | Obtention de la valeur actuelle du nombre de thread IMAP | ||
| Ligne 10 : | Ligne 10 : | ||
Modification de la valeur du nombre de thread IMAP | Modification de la valeur du nombre de thread IMAP | ||
zmprov ms `zmhostname` zimbraImapNumThreads 500 | zmprov ms `zmhostname` zimbraImapNumThreads 500 | ||
On va améliorer deux points: | |||
* amavis manipulera les fichiers en RAM et non sur disque afin de s'affranchir du ratio I/O des diques. En effet zimbra est installé sur une partition drbd. | |||
* amavis ne contrôlera plus les fichiers provenant du serveur ( notamment noreply qui envoi énormément de mails ). | |||
== Mettre le répertoire de travail d'amavis en RAM == | |||
Il faut obtenir l'uid et le gid de l'utilisateur et du groupe zimbra | |||
<pre> | |||
cat /etc/passwd | grep ^zimbra | |||
zimbra:x:501:501::/opt/zimbra:/bin/bash | |||
cat /etc/group | grep ^zimbra | |||
zimbra:x:501: | |||
</pre> | |||
L'utilisateur zimbra a l' *uid 501* | |||
Le groupe zimbra a le *gid 501* | |||
On monte le répertoire de travail de zimbra dans une partition tmpfs ( en RAM ) en fixant la taille à 400Mo. On ajoute simplement la ligne suivante au fichier */etc/fstab* | |||
<pre> | |||
/dev/shm /opt/zimbra/data/amavisd/tmp tmpfs defaults,noauto,noexec,nodev,nosuid,size=400m,mode=750,uid=501,gid=501 0 0 | |||
</pre> | |||
On arrête amavis, on monte notre répertoire et on redémarre amavis | |||
<pre> | |||
su - zimbra -c "zmamavisdctl stop" | |||
mount /opt/zimbra/data/amavisd/tmp | |||
su - zimbra -c "zmamavisdctl start" | |||
</pre> | |||
<ref>http://wiki.zimbra.com/wiki/Tmpfs_for_amavisd-new</ref> | |||
== Mettre les mails provenant du serveur en whitelist. == | |||
On insère la ligne suivante au début du fichier /opt/zimbra/conf/postfix_recipient_restrictions.cf | |||
<pre> | |||
check_client_access hash:/opt/zimbra/postfix/conf/amavis_client_whitelist | |||
</pre> | |||
On spécifie l'IP de notre serveur pour la whitelist et on transforme notre fichier en base de données Berkeley | |||
<pre> | |||
echo '195.216.193.6 FILTER smtp-amavis:[127.0.0.1]:10026' >> /opt/zimbra/postfix/conf/amavis_client_whitelist | |||
/opt/zimbra/postfix/sbin/postmap /opt/zimbra/postfix/conf/amavis_client_whitelist | |||
</pre> | |||
On va modifier le fichier de configuration d'amavis /opt/zimbra/conf/amavisd.conf.in. Pour cela on copie les lignes suivantes dans le fichier /root/zimbra-amavis-whitelist.patch | |||
<pre> | |||
diff -u /opt/zimbra/conf/amavisd.conf.in /opt/zimbra/conf/amavisd.conf.in | |||
--- /opt/zimbra/conf/amavisd.conf.in 2012-04-18 12:01:18.000000000 +0200 | |||
+++ /opt/zimbra/conf/amavisd.conf.in 2012-04-18 12:02:41.000000000 +0200 | |||
@@ -75,7 +75,14 @@ | |||
$enable_db = 0; # enable use of BerkeleyDB/libdb (SNMP and nanny) | |||
$enable_global_cache = 1; # enable use of libdb-based cache if $enable_db=1 | |||
-$inet_socket_port = 10024; # listen on this local TCP port(s) (see $protocol) | |||
+#$inet_socket_port = 10024; # listen on this local TCP port(s) (see $protocol) | |||
+$inet_socket_port = [10024, 10026]; # change from original setting | |||
+ $interface_policy{'10026'} = 'CLIENTWHITELIST'; | |||
+ $policy_bank{'CLIENTWHITELIST'} = { | |||
+ bypass_spam_checks_maps => [1], | |||
+ final_spam_destiny => D_PASS, | |||
+ final_virus_destiny => D_PASS, | |||
+ }; | |||
$unix_socketname = "$MYHOME/amavisd.sock"; # amavisd-release or amavis-milter | |||
$interface_policy{'SOCK'}='AM.PDP-SOCK'; # only relevant with $unix_socketname | |||
</pre> | |||
On applique le patch | |||
<pre> | |||
patch -p0 < /root/zimbra-amavis-whitelist.patch | |||
</pre> | |||
On restart le MTA et amavis pour prendre en compte nos modifications | |||
<pre> | |||
su - zimbra -c "zmmtactl restart && zmamavisdctl restart" | |||
</pre> | |||
On vérifie que le serveur fonctionne encore correctement | |||
<pre> | |||
su - zimbra -c "zmcontrol status" | |||
Host smtp.b2pweb.com | |||
antispam Running | |||
antivirus Running | |||
ldap Running | |||
logger Running | |||
mailbox Running | |||
memcached Running | |||
mta Running | |||
snmp Running | |||
spell Running | |||
stats Running | |||
zmconfigd Running | |||
</pre> | |||
<ref>http://wiki.zimbra.com/wiki/IP_Address_whitelisting</ref> | |||
== Pistes à creuser == | |||
* Compiler les règles antispam <ref>http://www.zimbra.com/forums/administrators/30587-solved-you-aware-you-can-compile-your-sa-rules.html</ref> | |||
== Réferences == | |||
<references/> | |||
Version du 7 septembre 2012 à 15:20
Optimisation des performances
Augmentation du nombre de thread pour l'IMAP
Obtention de la valeur actuelle du nombre de thread IMAP
zmprov gs `zmhostname` zimbraImapNumThreads name smtp.b2pweb.com zimbraImapNumThreads: 200
Modification de la valeur du nombre de thread IMAP
zmprov ms `zmhostname` zimbraImapNumThreads 500
On va améliorer deux points:
- amavis manipulera les fichiers en RAM et non sur disque afin de s'affranchir du ratio I/O des diques. En effet zimbra est installé sur une partition drbd.
- amavis ne contrôlera plus les fichiers provenant du serveur ( notamment noreply qui envoi énormément de mails ).
Mettre le répertoire de travail d'amavis en RAM
Il faut obtenir l'uid et le gid de l'utilisateur et du groupe zimbra
cat /etc/passwd | grep ^zimbra zimbra:x:501:501::/opt/zimbra:/bin/bash cat /etc/group | grep ^zimbra zimbra:x:501:
L'utilisateur zimbra a l' *uid 501* Le groupe zimbra a le *gid 501*
On monte le répertoire de travail de zimbra dans une partition tmpfs ( en RAM ) en fixant la taille à 400Mo. On ajoute simplement la ligne suivante au fichier */etc/fstab*
/dev/shm /opt/zimbra/data/amavisd/tmp tmpfs defaults,noauto,noexec,nodev,nosuid,size=400m,mode=750,uid=501,gid=501 0 0
On arrête amavis, on monte notre répertoire et on redémarre amavis
su - zimbra -c "zmamavisdctl stop" mount /opt/zimbra/data/amavisd/tmp su - zimbra -c "zmamavisdctl start"
Mettre les mails provenant du serveur en whitelist.
On insère la ligne suivante au début du fichier /opt/zimbra/conf/postfix_recipient_restrictions.cf
check_client_access hash:/opt/zimbra/postfix/conf/amavis_client_whitelist
On spécifie l'IP de notre serveur pour la whitelist et on transforme notre fichier en base de données Berkeley
echo '195.216.193.6 FILTER smtp-amavis:[127.0.0.1]:10026' >> /opt/zimbra/postfix/conf/amavis_client_whitelist /opt/zimbra/postfix/sbin/postmap /opt/zimbra/postfix/conf/amavis_client_whitelist
On va modifier le fichier de configuration d'amavis /opt/zimbra/conf/amavisd.conf.in. Pour cela on copie les lignes suivantes dans le fichier /root/zimbra-amavis-whitelist.patch
diff -u /opt/zimbra/conf/amavisd.conf.in /opt/zimbra/conf/amavisd.conf.in
--- /opt/zimbra/conf/amavisd.conf.in 2012-04-18 12:01:18.000000000 +0200
+++ /opt/zimbra/conf/amavisd.conf.in 2012-04-18 12:02:41.000000000 +0200
@@ -75,7 +75,14 @@
$enable_db = 0; # enable use of BerkeleyDB/libdb (SNMP and nanny)
$enable_global_cache = 1; # enable use of libdb-based cache if $enable_db=1
-$inet_socket_port = 10024; # listen on this local TCP port(s) (see $protocol)
+#$inet_socket_port = 10024; # listen on this local TCP port(s) (see $protocol)
+$inet_socket_port = [10024, 10026]; # change from original setting
+ $interface_policy{'10026'} = 'CLIENTWHITELIST';
+ $policy_bank{'CLIENTWHITELIST'} = {
+ bypass_spam_checks_maps => [1],
+ final_spam_destiny => D_PASS,
+ final_virus_destiny => D_PASS,
+ };
$unix_socketname = "$MYHOME/amavisd.sock"; # amavisd-release or amavis-milter
$interface_policy{'SOCK'}='AM.PDP-SOCK'; # only relevant with $unix_socketname
On applique le patch
patch -p0 < /root/zimbra-amavis-whitelist.patch
On restart le MTA et amavis pour prendre en compte nos modifications
su - zimbra -c "zmmtactl restart && zmamavisdctl restart"
On vérifie que le serveur fonctionne encore correctement
su - zimbra -c "zmcontrol status"
Host smtp.b2pweb.com
antispam Running
antivirus Running
ldap Running
logger Running
mailbox Running
memcached Running
mta Running
snmp Running
spell Running
stats Running
zmconfigd Running
Pistes à creuser
- Compiler les règles antispam [3]