MTA's, message queue's en vertraging tijdens verzending
Inleiding:
Voor zenders en ontvangers van email met grote hoeveelheden data in de
bijlagen is het van belang om te weten wat de relatie is tussen de
lengte van een bericht en de tijdsduur die voor verzending van een
bericht nodig is. De vertraging tijdens dde verwerking door een MSA of
een MTA vormt meestal de snelheidsbepalende stap (of de bottleneck)
tijdens het transport van zender naar ontvanger.
Message queue:
Als de message queue van een MTA altijd leeg is, dan bestaat er een
eenvoudig lineair verband tussen verwerkingstijd T en de lengte L van
een bericht, zoals weergegeven wordt door:
T = c1 * L
waarin c1 een constante verwerkingssnelheid is.
In de praktijk is de message queue van een MTA zelden leeg. Berichten
worden door een scheduler, via een combinatie van prioritization en
onderlinge concurrentie, geselecteerd voor een positie in de message queue.
Als de statistische verdeling van de lengte van de verzonden berichten
constant en vlak is, dan wordt de relatie tussen verwerkingstijd en de
lengte van een bericht bij benadering gegeven door:
T = c0 + c1 * L + c2 * L^2 + c3 * L^3 + ...
De verwerkingsduur wordt bepaald door de lengte van een bericht en de
waarden van c0, c1, c2, c3, ... De verwerkingsduur is vooral afhankelijk
van de manier waarop een scheduler van de MTA de berichten in de message
queue ordent. De langste berichten lopen onevenredig veel vertraging op
tijdens de verwerking omdat de termen van hogere orde bij langere
berichten overheersen. Dat effect wordt versterkt als de MTA zwaar
belast wordt.
Bulkmail:
In de praktijk is er geen vlakke of constante statistische verdeling van
de lengtes van de berichten. De grootste hoeveelheid data wordt via
zogenaamde "targeted bulkmail", voor reclame doeleinden, door
mailservers getransporteerd. De verdeling varieert met de lengte van de
berichten en deze verdelingen kunnen bovendien variëren met de tijd. Een
statistisch model van bulkmail met een Gaussverdeling als functie van de
lengte van de berichten kan weergegeven worden met:
N(L,t) = N0(t) * exp(-(L - L0)^2 / S0)
waarin L0 de lengte van de meest talrijke berichten is, N0(t) het
gemiddelde aanbod op een bepaald tijdstip en S0 de breedte van de
statistische verdeling. Verreweg de meeste berichten hebben een lengte
die ligt tussen
Lk = L0 - 2 * S0
en
Ll = L0 + 2 * S0
Om optimaal te functioneren zal een mailserver zo geconfigureerd en
gedimensioneerd worden dat de server het gemiddelde aanbod zo snel
mogelijk kan verwerken. Daarbij zal de sterkste concurrentie om een
gunstige positie in de message queue optreden tussen berichten met een
lengte in de buurt van het gemiddelde L0.
Lengte van berichten:
Korte berichten met een lengte L << Lk worden altijd met de maximale
snelheid verwerkt. Op drukke momenten kan de verwerking van berichten
met een lengte L > Ll sterk vertraagd worden. Tijdens "daluren", zoals
's nachts of in het weekend, loopt de verwerking van lange berichten
meestal minder vertraging op.
Het grootste volume van data die met email verstuurd wordt zit in de
bijlagen van bulkmail. De snelheid van de verwerking van berichten hangt
dus groot deel af van de lengte van een bericht in verhouding tot de
gemiddelde grootte van de bulkmail. Als het volume van de bijlagen
aanzienlijk kleiner is dan de gemiddelde grootte van bulkmail, dan
verloopt de verwerking relatief snel.
Conclusie:
Voor het verzenden van grote hoeveelheden gegevens via email kan het
voordelig zijn om door prioritization de verzending te versnellen.
Als alternatief kunnen grote bestanden in delen verstuurd worden om het
vertragingseffect te reduceren. In het geval dat een bericht een
verzameling losse delen bevat, is het raadzaam om de verzameling in
deelverzamelingen op te delen. De grootte van de deelverzamelingen kan
onder de limiet gehouden worden waarbij vertraging begint op te treden.
Om grote hoeveelheden data in delen via email uit te wisselen, kan door
verzenders en de ontvangers software gebruikt worden die voor dat doel
ontwikkeld is.
Ik weet niet of er al gebruiksvriendelijke open source software bestaat
waarmee je via email grote (hoeveelheden) bestanden op de snelste manier
met elkaar kunt uitwisselen.
Links:
https://en.wikipedia.org/wiki/Bulk_email_software
http://www.webtrafficmarketing.com/
http://blog.deliverability.com/2011/03/as-demands-for-digital-messaging-grow-more-complex-the-need-for-feature-rich-and-sophisticated-email-infrastructure-becomes.html
Groeten,
Jan-Rens.
Reply to: