Good news, and bad news…
It seems that your mail server is the culprit. I don't fully understand why - a couple of messages get out, then a bunch of connectons get stuck:
kevin:development graeme$ egrep "htons\(25\)|sendto.+(MAIL FROM|RCPT TO|HELO|EHLO|DATA|QUIT|Subject|owning)" keepalived.strace
7364 07:18:59.504875 connect(13, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
7364 07:18:59.505146 connect(14, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
7364 07:18:59.552312 sendto(13, "HELO tmpha2\r\n", 13, 0, NULL, 0 <unfinished ...>
7364 07:18:59.555856 sendto(14, "HELO tmpha2\r\n", 13, 0, NULL, 0 <unfinished ...>
7364 07:18:59.556904 sendto(13, "MAIL FROM:<***@vittoriaassicurazioni.it>\r\n", 48, 0, NULL, 0 <unfinished ...>
7364 07:18:59.558642 sendto(14, "MAIL FROM:<***@vittoriaassicurazioni.it>\r\n", 48, 0, NULL, 0 <unfinished ...>
7364 07:18:59.558954 sendto(13, "RCPT TO:<***@vittoriaassicurazioni.it>\r\n", 43, 0, NULL, 0 <unfinished ...>
7364 07:18:59.560898 sendto(14, "RCPT TO:<***@vittoriaassicurazioni.it>\r\n", 43, 0, NULL, 0 <unfinished ...>
7364 07:18:59.561709 sendto(13, "DATA\r\n", 6, 0, NULL, 0 <unfinished ...>
7364 07:18:59.563130 sendto(14, "DATA\r\n", 6, 0, NULL, 0 <unfinished ...>
7364 07:18:59.570996 sendto(13, "Date: Thu, 06 Jun 2013 11:18:59 +0000\r\nFrom: ***@vittoriaassicurazioni.it\r\nSubject: [tmpha2] VRRP Instance SMTPOUT - Entering BACKUP state\r\nX-Mailer: Keepalived\r\n\r\n", 170, 0, NULL, 0 <unfinished ...>
7364 07:18:59.571184 sendto(13, "=> VRRP Instance is nolonger owning VRRP VIPs <=\r\n", 50, 0, NULL, 0) = 50
7364 07:18:59.571505 sendto(14, "Date: Thu, 06 Jun 2013 11:18:59 +0000\r\nFrom: ***@vittoriaassicurazioni.it\r\nSubject: [tmpha2] VRRP Instance ISTITUZIONALE - Entering BACKUP state\r\nX-Mailer: Keepalived\r\n\r\n", 176, 0, NULL, 0 <unfinished ...>
7364 07:18:59.571571 sendto(14, "=> VRRP Instance is nolonger owning VRRP VIPs <=\r\n", 50, 0, NULL, 0 <unfinished ...>
7364 07:18:59.611025 sendto(13, "QUIT\r\n", 6, 0, NULL, 0) = 6
7364 07:18:59.611450 sendto(14, "QUIT\r\n", 6, 0, NULL, 0) = 6
OK, so all good that far, one message per instance gets sent. But then this happens:
7364 07:19:48.767849 connect(13, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
7364 07:19:48.769976 connect(14, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
7364 07:19:53.770282 connect(15, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
7364 07:19:53.772589 connect(16, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
7364 07:20:43.469544 connect(17, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
7364 07:20:43.472064 connect(18, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
7364 07:21:23.485573 connect(19, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
7364 07:21:23.488321 connect(20, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
…and this is where you see the endless CPU utilisation. The process spins round and round trying to read from the open SMTP connections.
Then we see another process send another two messages successfully - this is a new child process as the previus one (7364) terminated.
8026 07:22:22.326167 connect(13, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
8026 07:22:22.326424 connect(14, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("172.30.3.75")}, 128) = -1 EINPROGRESS (Operation now in progress)
8026 07:22:22.374481 sendto(13, "HELO tmpha2\r\n", 13, 0, NULL, 0 <unfinished ...>
8026 07:22:22.376086 sendto(14, "HELO tmpha2\r\n", 13, 0, NULL, 0 <unfinished ...>
8026 07:22:22.377182 sendto(13, "MAIL FROM:<***@vittoriaassicurazioni.it>\r\n", 48, 0, NULL, 0 <unfinished ...>
8026 07:22:22.377498 sendto(14, "MAIL FROM:<***@vittoriaassicurazioni.it>\r\n", 48, 0, NULL, 0 <unfinished ...>
8026 07:22:22.378816 sendto(13, "RCPT TO:<***@vittoriaassicurazioni.it>\r\n", 43, 0, NULL, 0 <unfinished ...>
8026 07:22:22.379362 sendto(14, "RCPT TO:<***@vittoriaassicurazioni.it>\r\n", 43, 0, NULL, 0 <unfinished ...>
8026 07:22:22.380825 sendto(13, "DATA\r\n", 6, 0, NULL, 0 <unfinished ...>
8026 07:22:22.381210 sendto(14, "DATA\r\n", 6, 0, NULL, 0 <unfinished ...>
8026 07:22:22.383241 sendto(13, "Date: Thu, 06 Jun 2013 11:22:22 +0000\r\nFrom: ***@vittoriaassicurazioni.it\r\nSubject: [tmpha2] VRRP Instance SMTPOUT - Entering BACKUP state\r\nX-Mailer: Keepalived\r\n\r\n", 170, 0, NULL, 0 <unfinished ...>
8026 07:22:22.383413 sendto(13, "=> VRRP Instance is nolonger owning VRRP VIPs <=\r\n", 50, 0, NULL, 0 <unfinished ...>
8026 07:22:22.384515 sendto(14, "Date: Thu, 06 Jun 2013 11:22:22 +0000\r\nFrom: ***@vittoriaassicurazioni.it\r\nSubject: [tmpha2] VRRP Instance ISTITUZIONALE - Entering BACKUP state\r\nX-Mailer: Keepalived\r\n\r\n", 176, 0, NULL, 0 <unfinished ...>
8026 07:22:22.385274 sendto(14, "=> VRRP Instance is nolonger owning VRRP VIPs <=\r\n", 50, 0, NULL, 0 <unfinished ...>
8026 07:22:22.422562 sendto(13, "QUIT\r\n", 6, 0, NULL, 0) = 6
8026 07:22:22.430301 sendto(14, "QUIT\r\n", 6, 0, NULL, 0) = 6
There's an awful lot of stuff in your system logs from this instance which might be helpful. But the first thing is for you to work out why the (remote?) SMTP server doesn't respond in a nice timely fashion.
It's quite possible that you're being caught out here by the system's rlimits too… could be that there are too many open files.
Graeme