[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Load-average based SMTP receiver blocking ?



Hello,

	I have been asked for several times to introduce such
	a feature, and now it exists for a few initial platforms.
	(Pick the "loadavg" extraction code from "top" program,
	 and place it into the  smtpserver/loadaver.c ... )

	At the moment the default value is 10 (!), next dump will
	have it as 999  ( ftp.funet.fi  blocks for the most of the
	day if it is anything under 50 :-/  )

	I have a couple questions regarding the feature:

	When the host load-aver is over the limit, should
	it respond with:

		a)	Connection Refused (meaning that it should
			shut down the listen-socket, and be wakefull
			to spot the load-drop for re-init..)
			( This is COMPLEX thing to do :-/  )


		b)	Immediately at connection formation respond
			"400 Sorry, the system is too loaded.."
			and hangup
			( Implemented, works  -- ftp.funet.fi experience.. )

		c)	Accept  EHLO/HELO,  and then check who is
			sending (glob-matching a pattern), and use
			individual load-averages for each contacting
			site -- thus hang-up only AFTER EHLO/HELO.
			( The hooks are in the upcoming dump.. )

		d)	Some combination of the  b+c ?
			(absolute top loadmax + lower limits for
			 individual sites..)


	In the "c"-case there would be a change to give service to
	local users (like PCpine, Eudora), while blocking external
	feeders.


	Can you present arguments pro/cons about any of these ?
	(And what that code should be ? 466 ?)


		/Matti Aarnio	<mea@utu.fi> <mea@nic.funet.fi>