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

New scheduler performance test




I run my quick test on scheduler performance, and it sure screams :)

---------------- Overview ---------------------
....
  On same machine with scheduler from zmailer-2.99.15, scheduling
  the messages took a bit under two minutes (1:55), which indicates
  speed of roughly 750 000 messages per day.  Very likely it can
  exceed million messages per day (not million recipients, like
  when expanding lists, but million individual messages!) [ Aug-1995 ]

  With rewritten scheduler (zmailer-2.99.19: scheduler-new) the speed
  improved still:
	- 1000 messages to same /dev/null:
		84 seconds -> 1.0 Million messages per day
	- 1000 messages to 10 different /dev/nulls:
		84 seconds ...
  The speed is actually dominated by the speed the scheduler can
  assimilate information from new entries.
....
-----------------------------------------------

  Ok, I think the only way left to speed it more, is to make the scheduler
  a non-low-tech application: thread it  (select() is low-tech :) )
  and scatter around mutexes due to that...

  (Sure, some gpref might be usefull too, but the controlling phase is,
   how fast the new entries can be read from the transport directory.)

  I also tested, how fast the system can route messages -- my testload.sh
  load generator was slower, than the routers.. (10 parallel testloads
  feeding 10 routers..)

  Anyway, once the 1000 submissions were in the directories, it took
  circa 120 seconds from 10 routers to process them (1.2 seconds per
  message, on average.) Then I started a butchered new scheduler,
  which did scan in all messages in one go, and ran  syncweb() in
  one go, the delivery time did drop to circa 75 seconds (-> 1.15 M)
  but such system is rather sluggish to start, if there is big queue
  and the disk performance is not really good...

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