SpamAssassin frisst Memory ohne Ende

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
kuntho
Posts: 149
Joined: 2004-10-27 14:22
Location: Küps

SpamAssassin frisst Memory ohne Ende

Post by kuntho » 2004-11-13 20:35

Habe seit einiger Zeit SA in der Version 3.0.1 am Laufen. In der Standard - Konfiguration startet der Dämon 5 child - Prozesse. So weit so gut, mein Problem ist nur, dass JEDER dieser SA - Prozessa knapp 80 MB Speichehr belegt, was früher oder später die Maschine zum swappen zwingt. Damit ist natürlich die Performance im Eimer. Ich habe mir jetzt beholfen, indem ich die Anzahl der childs auf 1 reduziert habe. Jetzt belegen die SA - Prozesse (master + 1 child) wenigstens nur noch knapp 160 MB. Ich kapiere nicht, woher dieser immense Speicherverbrauch herkommen soll. Hat hier vielleicht jemand Erfahrungen?

floschi
Userprojekt
Userprojekt
Posts: 3388
Joined: 2002-07-18 08:13
Location: München

Re: SpamAssassin frisst Memory ohne Ende

Post by floschi » 2004-11-13 21:43

Das habe ich noch nie gehört... aber SA frisst schon ziemlich Speicher, wenn es gefordert ist - aber ständig 80MB, woher weisst du das?

Kleines Beispiel:
Ich hatte anfangs einige kleine Mailinglisten über Mailman, die allesamt in der Standardkonfig über SA gingen. Bei einer Mail an die Liste gab's dann jedesmal nen Crash, weil das zuviel Last war. Konsequenz: Jetzt werden die ausgehenden Mails nicht mehr SA-gefiltert (sinnfrei) und es läuft ;)

kuntho
Posts: 149
Joined: 2004-10-27 14:22
Location: Küps

Re: SpamAssassin frisst Memory ohne Ende

Post by kuntho » 2004-11-14 11:05

Na ja, lässt sich ziemlich klar nachvollziehen. top und mit <SHIFT>+<M> die Prozesse nach Speicherverbrauch aufgelistet. Im anderem Fenster den spamd neu gestartet. Dann kommt zuerst der masterprozess, der braucht zunächst knapp über 90 MB, dann kommt der childprozess mit knapp über 80 MB. nach paar Minuten liegen beide Prozesse so ungefähr bei 82 MB, unabhängig, ob mails gescannt werden oder nicht. Das zwingt meine alte Kiste mit 250 MB leider mächtig in die Knie. Bin zur Zeit schwer am Ã?berlegen, ob ich zurück auf SA 2.6.3 soll. :cry:

dodolin
RSAC
Posts: 4009
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: SpamAssassin frisst Memory ohne Ende

Post by dodolin » 2004-11-14 20:12

Code: Select all

dominik@trinity:~$ spamassassin -V
SpamAssassin version 3.0.0
  running on Perl version 5.8.4

Code: Select all

top - 19:54:40 up 214 days,  3:50,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 101 total,   1 running, 100 sleeping,   0 stopped,   0 zombie
Cpu(s):   0.3% user,   0.7% system,   0.0% nice,  99.0% idle
Mem:    255272k total,   250812k used,     4460k free,    20840k buffers
Swap:   771112k total,   141808k used,   629304k free,    78788k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 9024 root       9   0 31592  24m  23m S  0.0  9.7   1:14.84 spamd
 8326 root       9   0 30716  23m  23m S  0.0  9.5   1:19.86 spamd
 7615 root       9   0 30636  23m  22m S  0.0  9.5   1:21.64 spamd
 8132 root       9   0 30080  23m  23m S  0.0  9.4   1:14.64 spamd
 7607 root       9   0 30556  23m 7576 S  0.0  9.3   1:23.24 spamd
  951 clamav     9   0  6044 5836 2372 S  0.0  2.3   0:09.75 clamd
 1114 clamav     8   0  6044 5836 2372 S  0.0  2.3   0:00.01 clamd
Wie man sieht, benutzen die spamd Prozesse bei mir nur ca. 23-24 MB RAM und davon sind 22-23 MB "shared", d.h. effektiv benutzen wohl alle 5 Prozesse zusammen < 30 MB. Ich würde mal deine Konfig prüfen, was du alles für Checks laufen lässt. Hast du viele Extra-Checks eingebaut, benutzt du razor/pyzor und Co., etc.?

kuntho
Posts: 149
Joined: 2004-10-27 14:22
Location: Küps

Re: SpamAssassin frisst Memory ohne Ende

Post by kuntho » 2004-11-14 20:42

Code: Select all

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
16782 root       9   0 98.3M  76M 23264 S     0.0 31.4   0:02 spamd
16781 root       9   0 96708  51M 39100 S     0.0 21.0   0:27 spamd
 4089 wwwrun     9   0 14196  12M  5020 S     0.0  5.1   0:04 httpd
  839 wwwrun     9   0 14424  12M  8928 S     0.0  5.1   0:09 httpd
Bei mir siehts (aktuell) so aus. Habe mal versucht, einige der Extra - Prüfungen auszuschalten (alle *.cf - Files umbenannt) und nur den bayes - Test am Laufen. Bringt aber effektiv gar nichts.

:evil:

Auch wenn ich die Bayes-DB platt mache, bringt mir das absolut gar nichts. Ansonsten habe ich gar nix besonderes am Laufen, vielleicht noch mal meine Konfig:

Code: Select all

allow_user_rules 1
user_scores_sql_custom_query    SELECT preference, value FROM spampref WHERE username = _USERNAME_ ORDER BY prefid

report_safe 0

use_bayes       1
bayes_auto_learn                        1
bayes_auto_learn_threshold_nonspam      2.0
bayes_auto_learn_threshold_spam         12.0
bayes_path /etc/mail/spamassassin/bayes
bayes_file_mode 0777

score BAYES_00 -2.0
score BAYES_05 -1.5
score BAYES_20 -1.0
score BAYES_40 -0.5
score BAYES_50 0.0
score BAYES_60 1.0
score BAYES_80 2.0
score BAYES_95 3.0
score BAYES_99 4.0

use_auto_whitelist 0
auto_whitelist_path /etc/mail/spamassassin/auto_whitelist
auto_whitelist_file_mode 0777

user_scores_dsn                 DBI:mysql:confixx:localhost;mysql_socket=/var/lib/mysql/mysql.sock
user_scores_sql_username        confixx
user_scores_sql_password        XXXXXXXX
user_scores_sql_table           spampref

Na ja, und in der Datenbank stehen nur Blacklist - und Whitelisteinträge, das ist ja auch nix Besonderes. Bin echt am Verzweilfeln mittlerweile...

kuntho
Posts: 149
Joined: 2004-10-27 14:22
Location: Küps

Re: SpamAssassin frisst Memory ohne Ende

Post by kuntho » 2004-11-15 21:24

Bewahrheitet sich immer wieder: wenn man später nicht mehr weiss, was man früher gemacht hat, sollte man vielleicht doch lieber die Finger von einem Rootserver lassen. Hatte in der alten Version einige configs nach /usr/share/spamassassin verlinkt, und angenommen, dass alles, was in dem Verzeichnis steht, sowieso beim Update platt gemacht wird. Der überschreibt beim Update aber nur die alten cf - Files, die Links lässt er unangetastet. Hatte da einige Tests drin (ich tippe auf bigevil.cf). Nachdem ich die platt gemacht habe, läuft der SA auch wieder mit vernünftigen Werten.

Danke für die Hilfe, man ist in erster Linie immer geneigt, den Fehler beim Programm zu suchen...