Problem s pomalym SENDMAILem

Dan Lukes dan at obluda.cz
Fri Apr 23 17:17:19 CEST 2004


Břetislav Kubesa napsal/wrote, On 04/22/04 23:31:
>> >>>mam takovy (alespon pro me) zahadny problem se sendmailem. Z nejakeho
>> >>>neznameho duvodu trva posilani emailu z klienta neumerne dlouho -

>> Jine MUA s timtez sendmailem tyto problemy maji nebo nemaji ?

> Outlooky jsou ruznych ruznych Win (98,98SE,XP), vykazuji vsak stejne
> problemy. Nainstaloval jsem ted Bat 2.10 pod WinXP a svete div se, odesilani
> v poradku.
> Takze na vine je Outlook, ale proc... ;o( Jen nechapu, co se tak rychle
> pokazilo, kdyz vse pred tydnem fungovalo.

> Udelal jsem tedy >
>  tcpdump -s1600 -w tcpdumpoutlook
>  tcpdump -s1600 -w tcpdumpbat 

	No, rozdil mezi dumpy je jasne viditelny (vybral jsem z nej vzdy 
nejcharakteristictejsi pasaz, v obou pripadech preskakuji uvodni 
hanshaking a soustreduji se na prenos velkych dat behem DATA faze, obe 
vybrane casti jsou pripojeny dole, aby se nam nepletly tady v textu).

	Nejdriv tedy Outlook (priloha A). Ten prenese vzdy 7200B dat a posledni 
paket teto "davky" opatri "PUSH" flagem. Ten znamena, ze TCP/IP stack 
prijemce ma tato a vsechna predchozi data predat vyssim vrstvam. Outlook 
ceka na potvrzeni tohoto posledniho paketu a dalsi data neposila. 
Sendmail (respektive TCP/IP stack stroje, na kterem sendmail bezi) na 
druhe strane preda 7200B vyssim vrstvam a teprve pak prijem potvrdi. 
Teprve pak zahaji Outlook posilani "dalsi rundy". Zpracovani dat na 
strane prijemce trva neco okolo 0,09s. Preneseni 7kB dat kazdych 0,09s - 
to zhruba odpovida vami pozorovane prenosove rychlosti.

	No a ted BAT. Ten ma sice "rundy" ctyrkilove (presneji 4143B) a mezi 
nimi take vysila PUSH flag, jenze, neceka s odesilanim dalsich dat na 
to, az prijde potvrzeni o zpracovani tech predchozich. Coz je take 
"normalni" chovani, jak by se TCP/IP stack mel chovat, kdyz aplikace nad 
nim proste odesila hromady a hromady dat.

	Vkladani PUSH flagu obvykle odpovida jednotlivym zapisovym "write()" 
operacim. Cekani na odesilani dat odpovida spis operaci "flush()", 
nicmene, TCP/IP stack je obvykle do znacne miry konfigurovatelny - 
podobneho chovani bychom docilili i jinak, napriklad tak, ze "low 
watermark" hodnotu nastavime stejne velkou jako velikost odesilaciho 
bufferu.

	Podle toho, ze BAT funguje, se zda, ze pozorovana vlastnost neni 
"defaultni" vlastnosti TCP/IP stacku ve tvych Windows - jde o projev 
specificky pro Outlook. Znamena to tedy, nejspis, ze si Outlook neco 
specialne nastavuje, pripadne, ze se (vzhledem k prenosu velkych dat) 
chova nejak neobvykle - jinymi slovy, je to vlastnost kodu (i kdyz 
nevylucuji zcela i moznost, ze toto chovani lze "zapnout" respektive 
"vypnout" nejakym nastavenim).

	Duvod, proc se chovani objevilo az ted je nejasny - jako perspektivni 
kandidat me napada napriklad instalace opravek (pokud vim, ctyri, z 
nichz jedna zrovna pro Outlook se objevila 13.4; nicmene, nemusi jit 
primo o opravku Outlooku - ten pro odesilani patrne odesila nejake k 
tomu urcene knihovny, a vymemeny mohly byt ty) - samozrejme 
predpokladam, ze peclivy spravce site instalace opravek nebezpecnych 
chyb nezanedbava.

	Kazdopadne se zda, ze chyba je zcela mimo dosah FreeBSD a obavam se, ze 
s Outlookem uz prilis poradit nedokazu. A ani by to do konference 
nepatrilo (i tenhle prispevek jsem poslal do konference spis proto, ze 
by se do podobne situace mohl dostat i leckdos dalsi, kdo by mohl 
stravit, zbytecne, spoustu casu hledanim problemu na nespravne strane).

	Nejspis se budete muset obratit spis na jinak zamerene konference 
a/nebo radce. Nebo na technickou podporu, ktera vam, pokud vim, k 
produktu nalezi. No a v nejhorsim pripade musite uzivatelum vysvetlit, 
ze email NENI urcen k prenaseni velkych objemu dat (nejvetsi jeste 
zarucena velikost je 64kB) - a ze nevhodne pouzivany produkt nefunguje 
dobre preci neni divne ... ;-)

					Dan
























-------- Priloha A, vybrana cast prenosu Outlook -> sendmail ------
22:11:01.387990 192.168.0.250.3194 > 192.168.0.1.smtp: P 7296:8288(992) 
ack 316 win 17109 <nop,nop,timestamp 587565 2721658>
22:11:01.485592 192.168.0.1.smtp > 192.168.0.250.3194: . ack 8288 win 
33120 <nop,nop,timestamp 2721670 587565> (DF)
22:11:01.487745 192.168.0.250.3194 > 192.168.0.1.smtp: . 8288:9728(1440) 
ack 316 win 17109 <nop,nop,timestamp 587566 2721670>
22:11:01.489147 192.168.0.250.3194 > 192.168.0.1.smtp: . 
9728:11168(1440) ack 316 win 17109 <nop,nop,timestamp 587566 2721670>
22:11:01.489349 192.168.0.1.smtp > 192.168.0.250.3194: . ack 11168 win 
32400 <nop,nop,timestamp 2721670 587566> (DF)
22:11:01.490194 192.168.0.250.3194 > 192.168.0.1.smtp: . 
11168:12608(1440) ack 316 win 17109 <nop,nop,timestamp 587566 2721670>
22:11:01.490513 192.168.0.1.smtp > 192.168.0.250.3194: . ack 12608 win 
33120 <nop,nop,timestamp 2721670 587566> (DF)
22:11:01.491507 192.168.0.250.3194 > 192.168.0.1.smtp: . 
12608:14048(1440) ack 316 win 17109 <nop,nop,timestamp 587566 2721670>
22:11:01.493011 192.168.0.250.3194 > 192.168.0.1.smtp: . 
14048:15488(1440) ack 316 win 17109 <nop,nop,timestamp 587566 2721670>
22:11:01.493190 192.168.0.1.smtp > 192.168.0.250.3194: . ack 15488 win 
32400 <nop,nop,timestamp 2721670 587566> (DF)
22:11:01.493730 192.168.0.250.3194 > 192.168.0.1.smtp: P 
15488:16480(992) ack 316 win 17109 <nop,nop,timestamp 587566 2721670>
22:11:01.585576 192.168.0.1.smtp > 192.168.0.250.3194: . ack 16480 win 
33120 <nop,nop,timestamp 2721680 587566> (DF)
22:11:01.587731 192.168.0.250.3194 > 192.168.0.1.smtp: . 
16480:17920(1440) ack 316 win 17109 <nop,nop,timestamp 587567 2721680>
22:11:01.588977 192.168.0.250.3194 > 192.168.0.1.smtp: . 
17920:19360(1440) ack 316 win 17109 <nop,nop,timestamp 587567 2721680>
22:11:01.589154 192.168.0.1.smtp > 192.168.0.250.3194: . ack 19360 win 
32400 <nop,nop,timestamp 2721680 587567> (DF)
22:11:01.590186 192.168.0.250.3194 > 192.168.0.1.smtp: . 
19360:20800(1440) ack 316 win 17109 <nop,nop,timestamp 587567 2721680>
22:11:01.590354 192.168.0.1.smtp > 192.168.0.250.3194: . ack 20800 win 
33120 <nop,nop,timestamp 2721680 587567> (DF)
22:11:01.591499 192.168.0.250.3194 > 192.168.0.1.smtp: . 
20800:22240(1440) ack 316 win 17109 <nop,nop,timestamp 587567 2721680>
22:11:01.592848 192.168.0.250.3194 > 192.168.0.1.smtp: . 
22240:23680(1440) ack 316 win 17109 <nop,nop,timestamp 587567 2721680>
22:11:01.593025 192.168.0.1.smtp > 192.168.0.250.3194: . ack 23680 win 
32400 <nop,nop,timestamp 2721680 587567> (DF)

-------- Priloha B, vybrana cast prenosu Bat -> sendmail ------
23:12:04.527420 192.168.0.250.3231 > 192.168.0.1.smtp: P 
11263:12527(1264) ack 425 win 17000 <nop,nop,timestamp 624195 3087969>
23:12:04.528669 192.168.0.250.3231 > 192.168.0.1.smtp: . 
12527:13967(1440) ack 425 win 17000 <nop,nop,timestamp 624195 3087969>
23:12:04.529936 192.168.0.250.3231 > 192.168.0.1.smtp: . 
13967:15407(1440) ack 425 win 17000 <nop,nop,timestamp 624195 3087969>
23:12:04.530953 192.168.0.250.3231 > 192.168.0.1.smtp: P 
15407:16671(1264) ack 425 win 17000 <nop,nop,timestamp 624195 3087969>
23:12:04.531018 192.168.0.1.smtp > 192.168.0.250.3231: . ack 11263 win 
33120 <nop,nop,timestamp 3087970 624195> (DF)
23:12:04.531122 192.168.0.1.smtp > 192.168.0.250.3231: . ack 13967 win 
32400 <nop,nop,timestamp 3087970 624195> (DF)
23:12:04.531207 192.168.0.1.smtp > 192.168.0.250.3231: . ack 15407 win 
33120 <nop,nop,timestamp 3087970 624195> (DF)
23:12:04.533165 192.168.0.250.3231 > 192.168.0.1.smtp: . 
16671:18111(1440) ack 425 win 17000 <nop,nop,timestamp 624196 3087970>
23:12:04.533329 192.168.0.1.smtp > 192.168.0.250.3231: . ack 18111 win 
32400 <nop,nop,timestamp 3087971 624195> (DF)
23:12:04.534382 192.168.0.250.3231 > 192.168.0.1.smtp: . 
18111:19551(1440) ack 425 win 17000 <nop,nop,timestamp 624196 3087970>
23:12:04.534584 192.168.0.1.smtp > 192.168.0.250.3231: . ack 19551 win 
33120 <nop,nop,timestamp 3087971 624196> (DF)




-- 
Dan Lukes     tel: +420 2 21914205, fax: +420 2 21914206
root of  FIONet, KolejNET,  webmaster  of www.freebsd.cz
AKA: dan at obluda.cz, dan at freebsd.cz,dan at kolej.mff.cuni.cz





More information about the Users-l mailing list