• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Probleme mit FAM in Verbindung mit Courier-Imap

Knappe

Hacker
Hallo,

setzte seit Jahren
postfix (2.3.2-30)
+ courier-imap (4.1.1-23)
+ fam (2.7.0-90)
+ fetchmail (6.3.5-23.4)

auf einem eigenem Mailserver unter openSuSE 10.2 (2.6.23.1-900.ccj57-default, x86_64) ein.

Schon seit laengerem ist zu bemerken, dass sich Zugriffe auf die verschiedenen Mailkonten verlangsamen.
Dabei spielt es keine Rolle, ob die Zugriffe von WinXP-Clients und Linux-Clients via Outlook Express oder Thunderbird erfolgen :
Grundsaetzlich muessen die Clients auf Antwort vom Server warten - teilweise bis zu 20 Sekunden.

Ein bischen "sniffen" am Netzverkehr und auch am Server hat nur zutage gebracht, dass der
Code:
famd
fast staendig eine Serverlast von 100% produziert.

Vorsichtshalber habe ich daher den fam-server auf die neueste Version (s.o.) upgedated; leider ohne Aenderung.


Jetzt habe ich soeben mal das Programm mit
Code:
# famd -f -v -d
gestartet und die Zugriffe seitens der Clients verfolgt.

Dabei ist festzustellen, das der Fam staendig (bei jedem Client-Zugriff) die Dateien in den einzelnen Mailboxen neu auf Veraenderung hin ueberprueft.

Da in einer (nur 1 !) Mailbox mehr als 25.000 Eintraege enthalten sind, dauert das natuerlich bei dieser. Aber es sind genauso andere betroffen, die gerade mal ein paar hundert Messages enthalten.


Was ich jetzt aber nicht verstehe :
Ein und derselbe client "pollt" auf ein und das gleiche Mailverzeichnis (= Mailbox) mehrfach hintereinander (~ also im Client sich mehrere einzelne Messages nacheinander in einer Mailbox anzeigen zu lassen)

und

jedes (wirklich jedes) Mal prueft "fam" alle Files dieser Maildirectory wieder und immer wieder auf Veraenderung durch : da wird nichts gecached etc.


Da stimmt doch was nicht.

Auszug aus den Onlineseite von Courier :
Gamin/FAM is an application library that provides an interface to the operating system's kernel that applications can use to be notified when specific files or directories are changed, and Courier-IMAP leverages this API to implement realtime concurrent folder status updates

Von einem "Interface zum aktuellem Kernel" ist nichts zu spueren, stattdessen wird einfach nur gelesen, gelesen, gelesen ....


Hat vielleicht irgendjemand eine Idee was bei mir schief laeuft ?


Als Info hier mal meine /etc/courier/imap :
ADDRESS=0
PORT=143
MAXDAEMONS=40
MAXPERIP=10
PIDFILE=/var/run/imapd.pid
TCPDOPTS="-nodnslookup -noidentlookup"
LOGGEROPTS="-name=imapd"
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"
IMAP_KEYWORDS=1
IMAP_ACL=1
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE"
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE"
IMAP_PROXY=0
IMAP_PROXY_FOREIGN=0
IMAP_IDLE_TIMEOUT=60
IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"
IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"
IMAP_DISABLETHREADSORT=0
IMAP_CHECK_ALL_FOLDERS=1
IMAP_OBSOLETE_CLIENT=0
IMAP_UMASK=022
IMAP_ULIMITD=65536
IMAP_USELOCKS=1
IMAP_SHAREDINDEXFILE=/etc/courier/shared/index
IMAP_ENHANCEDIDLE=1
IMAP_TRASHFOLDERNAME=Trash
IMAP_EMPTYTRASH=Trash:7
IMAP_MOVE_EXPUNGE_TO_TRASH=0
SENDMAIL=/usr/bin/sendmail
HEADERFROM=X-IMAP-Sender
IMAPDSTART=YES
MAILDIRPATH=Maildir

und noch die /etc/fam:
insecure_compatibility = false

untrusted_user = nobody

local_only = true

xtab_verification = true

Bin fuer alle Hinweise dankbar, denn Courier will nicht ohne Fam und ich will (zur Zeit) nicht mit Fam :shock:
 
OP
K

Knappe

Hacker
Hallo,


ich habe jetzt mal das "Abonnement" des betreffenden Ordners mit den mehr als 25.000 Messages bei den Clients (Thunderbird, Outlook Express) herausgenommen :

--> keine Performance-Probleme mehr.


Aktiviere ich die Abrage auf den Ordner wieder, dann "bricht" die Performance komplett zusammen, "fam" erzeugt 100%-Prozessorlast und fam "pollt" die Verzeichnisse immer und immer wieder.

--> Demzufolge kann "fam" offensichtlich die Menge an Dateiinfos nicht mehr cachen.


Aber grundsätzlich verstehe ich den Mechanismus von "fam" nicht mehr !

Lt. den Infos von der Courierseite (hier)
FAM should also build on other platforms, but without a supported kernel monitor FAM will fall back to a polling mode
"fällt" fam nur bei einem nicht unterstützten Kernel in den "Polling" Mode.

Davon ausgehend, dass in den openSuSE-Repositorities nur unterstützte Software eingebunden wird, dürfte das doch eigentlich nicht der Fall sein :evil:


Hier auch mal den Link zur den "Herstellerseite", in welcher genau diese Vorzüge erklärt werden : --> hier


Hat jemand eine Idee wo ich weitersuchen könnte (zwar habe ich die Sourcen von fam gefunden, aber ein download geht nicht (siehe hier)).
 
Oben