[Résolu]qui consomme de la ram

qui consomme de la ram [Résolu] - Logiciels - Linux et OS Alternatifs

Marsh Posté le 25-01-2007 à 15:20:00    

Bonjour à tous,
 
j'ai un petit problème de consommation de ram sur mon serveur. Le serveur en question est un HP Proliant DL380 G4 (P4 3.2) avec 4 Giga de ram (kernel compilé en conséquence) sur lequel je fais tourner une debian sarge qui sert de passerelle anti-spam/anti-virus pour les mails et de DNS.
 
Pour cela, j'utilise Postfix, amavis, spamassassin et amavis. Le tout est vraiment très efficace, mais je trouve que la machine est très gourmande en ram, elle utilise en permanence 3,5 Giga de ram. Alors qu'elle est configurée pour ne lancer que 20 Processus mails simultanément.  
 
 
Tout ceci avec les paramètres suivants:  
 
dans la master.cf:
smtp-amavis     unix    -       -       -       -       20 smtp
 
dans le fichier amavisd.conf:
$max_servers  =  20;
 
et dans le fichier /etc/default/spamassassin
 
j'ai limité le nombre de processus enfant à 2
 
OPTIONS="--create-prefs --max-children 2 --helper-home-dir"
 
J'ai lancé la commande top, et les processus les plus gourmands en mémoires sont comme on peut s'y attendre les processus amavis, ils sont bien au nombre de 20, et consomment en moyenne 1,5% de la ram totale.
 
J'ai ensuite utilisé la commande "free -m" qui au premier abord, me donne une sortie assez curieuse, elle semble estimer que je n'ai que 3,5 Giga de ram
 
             total       used       free     shared    buffers     cached
Mem:          3547       3432        115          0        102       2221
 
Vu la puissance de la machine, je pensais pouvoir y ajouter un serveur ftp avec mysql, mais je ne veux pas risquer de perturber le bon fonctionnement de l'anti-spam.  
 
Mes questions sont les suivantes:
 
1°Comment puis-je déterminer avec précision ce qui bouffe de la ram
 
2° je ne sais pas à quoi correspond la colonne cached ci-dessus?  
 
Merci d'avance à tous ceux qui m'apporteront leur aide.


Message édité par pere castor le 26-01-2007 à 12:30:00
Reply

Marsh Posté le 25-01-2007 à 15:20:00   

Reply

Marsh Posté le 25-01-2007 à 15:38:21    

$max_servers  =  20;  
 
c'est un peu bcp pour ton cpu !
 
met le à 2 voire 4 si tu as le support de l'Hyperthreading
 
pas plus
 
(pareil dans le master.cf)


Message édité par toniotonio le 25-01-2007 à 15:39:06
Reply

Marsh Posté le 25-01-2007 à 15:44:12    

je suis un peu étonné par ta réponse, au niveau du cpu, je tourne en général autour des 25-30 %, de ce côté là, je n'ai pas constaté de surconsommation.

Reply

Marsh Posté le 25-01-2007 à 15:46:15    

c'a va  jouer en premier lieu sur la consommation memoire
c'est dans la doc d'amavisd:
 
http://www.ijs.si/software/amavisd [...] rmance.txt

Citation :


Both the amavisd child processes, and (to much lesser degree) the Postfix
smtpd services consume quite some chunks of memory, so the memory size
can determine how many parallel processes you can run.
 
Note that the Perl interpreter in amavisd-new processes occupies the same
memory if fork on a Unix system uses copy-on-write for memory pages,
as most modern Unixes do. This however does not apply to memory allocated
after the child processes have forked.
 
I would start small, e.g. by 2 or 3 child processes per CPU
(parameter $max_servers), then see how machine behaves.
If you see heavy swapping or load regularly going beyond 2 or 3 (per CPU),
decrease the number of parallel streams, otherwise increase it - gradually.
This number is probably the most important tuning parameter.
Going beyond 10 usually brings no more improvements in overall system
throughput, it just wastes memory.


Message édité par toniotonio le 25-01-2007 à 15:47:25
Reply

Marsh Posté le 25-01-2007 à 15:50:41    

il faudrait egalement connaitre l'utilsiation du swap sur ton serveur pour reellement savoir si il est surchargé.
 

Reply

Marsh Posté le 25-01-2007 à 15:51:21    

c'est entre autre pour ça, que j'ai mis autant de ram, avec 4 Giga, je pensais pouvoir facilement faire tourner 20 Processus en simultané, j'avais une installation similaire sur un p3 1 Ghz, 1 giga de ram et  une red-hat 7.3 avec qmail et qmail-qscanner, spamassassin et clamav qui me permettait elle de faire tourner 50 processus simultanés. (Je sais 50 c'est excessif ;) )

Reply

Marsh Posté le 25-01-2007 à 15:52:05    

toniotonio a écrit :

il faudrait egalement connaitre l'utilsiation du swap sur ton serveur pour reellement savoir si il est surchargé.


 
Il n'utilise pas son fichier swap.

Reply

Marsh Posté le 25-01-2007 à 15:55:00    

pere castor a écrit :

c'est entre autre pour ça, que j'ai mis autant de ram, avec 4 Giga, je pensais pouvoir facilement faire tourner 20 Processus en simultané, j'avais une installation similaire sur un p3 1 Ghz, 1 giga de ram et  une red-hat 7.3 avec qmail et qmail-qscanner, spamassassin et clamav qui me permettait elle de faire tourner 50 processus simultanés. (Je sais 50 c'est excessif ;) )


 
 
surtout cela ne sert a rien
pourquoi veux tu autant de process ?
combien a tu de boites mail et de trafic mail sur ce serveur ?
 
 
 

Reply

Marsh Posté le 25-01-2007 à 15:56:52    

pere castor a écrit :

Il n'utilise pas son fichier swap.


 
 
alors il n'est pas surchargé
 
c'est normal que la memoire marquée free soit tres faible sur un systeme linux.
 
ton systeme n'est pas a court de memoire.
mais ce n'est pas la peine de la gaspiller en faisant tourner des process d'amavis inutiles !
 

Reply

Marsh Posté le 25-01-2007 à 15:57:30    

j'ai 500 utilisateurs derrières, des mailings listes, et le trafic mail se compte en dizaines de milliers de mails par jours (dont les 3/4 sont du spam malheureusement.) Pour le 50, c'est un chiffre qui plaisait aux décideurs financiers de ma boîtes qui connaissent les chiffres, mais pas l'informatique ;) .

Reply

Marsh Posté le 25-01-2007 à 15:57:30   

Reply

Marsh Posté le 25-01-2007 à 16:01:44    

ca devrait aller  
j'imagine qu'il est en scsi Raid 5 ?  
partitionné comment ?
le sous systeme disque est primordial pour ce genre de serveur.
 
quelle est sa charge moyenne ?  
 
est ce que tous les mails detectés comme du spam sont geres par amavis/Spamassassin ou bien as tu des regles dans postfix pour bloquer le "tout venant"  (cela reduit drastiquement la charge du serveur)
 
tu as optimisé clamav et amavisd en mettant utilisant des lecteurs tmpfs ?

Message cité 1 fois
Message édité par toniotonio le 25-01-2007 à 16:03:08
Reply

Marsh Posté le 25-01-2007 à 16:05:24    

Donne le résultat d'un free -m :

% free -m
             total       used       free     shared    buffers     cached
Mem:           994        969         25          0          8        368
-/+ buffers/cache:        592        402
Swap:          509        224        285


 
C'est l'avant dernière ligne qui donne la mémoire utilisée. C'est à dire la mémoire occupée moins le cache disque.
Sur le système donné en exple dans mon post par exemple, 25Mo de libres (sur 1go), MAIS en fait 402Mo de libre si on soustrait ce qui peut etre libéré rapidement.
 
C'est NORMAL que linux utilise autant de ram que possible pour du cache disque. Si il y'a de la RAM , autant s'en servir pour mettre en cache des données qui sont sur le disque et qui pourraient reservir.


---------------
--
Reply

Marsh Posté le 25-01-2007 à 16:16:13    

toniotonio a écrit :

ca devrait aller  
j'imagine qu'il est en scsi Raid 5 ?  
partitionné comment ?
le sous systeme disque est primordial pour ce genre de serveur.
 
quelle est sa charge moyenne ?  
 
est ce que tous les mails detectés comme du spam sont geres par amavis/Spamassassin ou bien as tu des regles dans postfix pour bloquer le "tout venant"  (cela reduit drastiquement la charge du serveur)
 
tu as optimisé clamav et amavisd en mettant utilisant des lecteurs tmpfs ?


 
 
En moyenne, le cpu est utilise entre 25 et 30%, c'est un raid 5 sur de l'ultra 320. J'ai ajouté quelques règles de filtrages basiques dans postfix pour alléger la charge du processus de l'antispam, qui sont les suivantes:
 
### Tarpit those bots/clients/spammers who send errors or scan for accounts
smtpd_error_sleep_time = 10
smtpd_soft_error_limit = 2
smtpd_hard_error_limit = 5
smtpd_junk_command_limit = 3
### Limit the info given to outside servers
show_user_unknown_table_name = no
### Reject codes
access_map_reject_code = 554
defer_code = 554
invalid_hostname_reject_code = 554
maps_rbl_reject_code = 554
non_fqdn_reject_code = 554
reject_code = 554
relay_domains_reject_code = 554
unknown_address_reject_code = 554
unknown_client_reject_code = 554
unknown_hostname_reject_code = 554
unknown_local_recipient_reject_code = 554
unknown_relay_recipient_reject_code = 554
unknown_virtual_alias_reject_code = 554
unknown_virtual_mailbox_reject_code = 554
 
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender, check_sender_access hash:/etc/postfix/sender_access
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_unauth_pipelining
smtpd_data_restrictions = reject_unauth_pipelining
# Rejet des noms d'hôtes ne correspondant pas à un enregistrement dns, inconnu, ou incomplet
smtpd_helo_restrictions = reject_invalid_hostname, reject_unknown_hostname, reject_non_fqdn_hostname
headers_check = pcre:/etc/postfix/header_checks
body_check = pcre:/etc/postfix/body_checks
 
 
Mais apparemment, je me fais du soucis pour rien, mon serveur n'est pas malmené. Merci pour ces précieuses informations. :jap:
 
 Par contre, si quelqu'un connaissait une commande autre que top pour voir ce qui consomme de façon plus précise la mémoire, je suis preneur.  
 
 
 
 

Reply

Marsh Posté le 26-01-2007 à 09:10:32    

euh je veux pas vous casser vos trips, mais le serveur de castor, il a des tonnes de RAM à revendre, il n'y a absolument aucun problème. Bref il y a pas besoin d'y toucher. Bref GO, ajoute ce que tu veux, t'as à foison de marge.

Reply

Marsh Posté le 26-01-2007 à 09:32:47    

:jap:  
c'est ce qu'on disait

Reply

Marsh Posté le 26-01-2007 à 12:31:10    

en effet, ce sujet m'a appris quelque chose que j'ignorais, et qui m'induisait en erreur.  
 
Merci à tous pour votre aide. :jap:


Message édité par pere castor le 26-01-2007 à 12:31:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed