Day 58 of 60: Developer benchmarks (pt 3)

Posted by nik on September 05, 2006

Yesterday I looked at performance compiling Sendmail on Solaris and FreeBSD using Sun’s compiler (on Solaris) and gcc (on both systems).

In the tests gcc come out handily ahead, with gcc on FreeBSD being 16% faster than gcc on Solaris with low optimisation options, and 12% faster than gcc on Solaris with optimisation turned on. Sun’s compiler was over twice as slow as gcc on either system.

Today I’ve been looking at the time taken to compile Perl on both systems, using both compilers, with and without optimisation.

Continue reading…

Day 55 of 60: Developer benchmarks (pt 1)

Posted by nik on September 02, 2006

The last week has been quite busy with work that’s not related to this project. Mindful that the 60 day time limit is almost up, and aware that I’ve not done any actual benchmarking of this workstation — vis a vis “How does Solaris on this hardware compare against another OS on this system?”, I’ve started doing some investigation.

Sun bill this machine as a developer workstation, so I thought I’d look at how speedy it is at carrying out tasks that developers do. I also thought it would be worthwhile carrying out a few performance benchmarks relating to a real-world application that I currently run on Solaris.

Continue reading…

Day 33 of 60: Strategies for processing the queue.

Posted by nik on August 11, 2006

Note: If you’re not familiar with sendmail queues, the sendmail queue primer I wrote might be useful.

There are two aspects of mail queue management to consider with Sendmail. The first is the process that puts messages in the queue. I’ve looked at that in some detail already, and written a number of D scripts that should make it easy for you to instrument Sendmail on your production systems so you can decide how best to layout your queue directories for optimal inbound performance.

The flip side of the coin is to try and answer the question How do you maximise delivery from the queue?” This is a more complex question to answer, as the number of variables that you can control that affect this is much larger. Also, there’s more variability when delivering mail, as you are at the mercy, to some extent, of each remote site — how fast they process mail you send them, whether or not they’re actually up, how much latency there is between you and them, the speed of DNS lookups, and so on.

So, what can we test?

Continue reading…

Day 29 of 60: What are the single queue directory bottlenecks?

Posted by nik on August 07, 2006

Earlier posts have shown that using a single queue directory imposes a significant bottleneck when processing concurrent connections with Sendmail. Yesterday I posed some questions, and today I’ve started work on answering the first one.

The first question was:

What is responsible for the dramatic slow down in the single-queue case (test 4)?

Continue reading…

Day 28 of 60: Instrumenting Sendmail queue file creation (pt 4)

Posted by nik on August 06, 2006

Yesterday I looked at the effect of multiple queue directories when processing messages over a single connection.

Today I’ve been looking at how multiple queue directories can help when processing concurrent connections.

The methodology was identical to the previous tests. The only change was to the smtp-source(1) command line. The previous tests were run with -s 1, indicating one concurrent connection. These tests were run with -s 10, to force 10 concurrent connections.

Continue reading…

Day 27 of 60: Instrumenting Sendmail queue file creation (pt 2)

Posted by nik on August 05, 2006

It’s time to run an instrumented Sendmail, throw some messages at it, and see how it performs. Specifically, does the number of queue directories (on a single disk) make a significant impact on the time taken to create new entries in the queue?

Continue reading…

Day 26 of 60: Instrumenting Sendmail queue file creation (pt 1)

Posted by nik on August 04, 2006

I’ve (finally) got Sendmail built, zones configured, DTrace working for functions declared static, and a mechanism for creating test SMTP sessions.

So it’s time to start putting this together, instrumenting Sendmail, and seeing whether or not I can use this to prove (or disprove) some common advice given when configuring Sendmail.

First, I’m going to look at queue directories.

Continue reading…

Day 8 of 60: Sendmail queues

Posted by nik on July 17, 2006

The time has come to start adding DTrace functionality to Sendmail. Of course, there’s no point in just diving in and adding code left, right, and centre, so over the last couple of days I’ve been thinking about what I should be instrumenting first.

Continue reading…


Close
E-mail It