Postfix: smtp-source

From OnnoWiki
Jump to navigation Jump to search

SMTP-SOURCE(1) SMTP-SOURCE(1)

NAME

      smtp-source - parallelized SMTP/LMTP test generator

SYNOPSIS

      smtp-source [options] [inet:]host[:port]
      smtp-source [options] unix:pathname

DESCRIPTION

      smtp-source  connects to the named host and TCP port (default: port 25)
      and sends one or more messages to it, either sequentially or in  paral-
      lel. The program speaks either SMTP (default) or LMTP.  Connections can
      be made to UNIX-domain and IPv4 or IPv6 servers.  IPv4 and IPv6 are the
      default.
      Note:  this is an unsupported test program. No attempt is made to main-
      tain compatibility between successive versions.
      Arguments:
      -4     Connect to the server with IPv4. This option has no effect  when
             Postfix is built without IPv6 support.
      -6     Connect  to  the  server with IPv6. This option is not available
             when Postfix is built without IPv6 support.
      -A     Don't abort when the  server  sends  something  other  than  the
             expected positive reply code.
      -c     Display  a running counter that is incremented each time an SMTP
             DATA command completes.
      -C count
             When a host sends RESET instead  of  SYN|ACK,  try  count  times
             before giving up. The default count is 1. Specify a larger count
             in order to work around a problem with TCP/IP stacks  that  send
             RESET when the listen queue is full.
      -d     Don't  disconnect after sending a message; send the next message
             over the same connection.
      -f from
             Use the specified sender address (default: <foo@myhostname>).
      -F file
             Send the pre-formatted message header and body in the  specified
             file, while prepending '.' before lines that begin with '.', and
             while appending CRLF after each line.
      -l length
             Send length bytes  as  message  payload.  The  length  does  not
             include message headers.
      -L     Speak LMTP rather than SMTP.
      -m message_count
             Send the specified number of messages (default: 1).
      -M myhostname
             Use  the specified hostname or [address] in the HELO command and
             in the default sender and recipient addresses,  instead  of  the
             machine hostname.
      -N     Prepend  a  non-repeating  sequence  number  to  each  recipient
             address. This avoids the artificial 100% hit rate in the resolve
             and rewrite client caches and exercises the trivial-rewrite dae-
             mon, better approximating Postfix  performance  under  real-life
             work-loads.
      -o     Old mode: don't send HELO, and don't send message headers.
      -r recipient_count
             Send   the   specified  number  of  recipients  per  transaction
             (default: 1).  Recipient names are  generated  by  prepending  a
             number to the recipient address.
      -R interval
             Wait for a random period of time 0 <= n <= interval between mes-
             sages.  Suspending one thread does  not  affect  other  delivery
             threads.
      -s session_count
             Run  the specified number of SMTP sessions in parallel (default:
             1).
      -S subject
             Send mail with the named subject line (default: none).
      -t to  Use the specified recipient address (default: <foo@myhostname>).
      -T windowsize
             Override  the default TCP window size. To work around broken TCP
             window scaling implementations, specify a value > 0 and < 65536.
      -v     Make the program more verbose, for debugging purposes.
      -w interval
             Wait  a fixed time between messages.  Suspending one thread does
             not affect other delivery threads.
      [inet:]host[:port]
             Connect via TCP to host host, port port.  The  default  port  is
             smtp.
      unix:pathname
             Connect to the UNIX-domain socket at pathname.

BUGS

      No SMTP command pipelining support.

SEE ALSO

      smtp-sink(1), SMTP/LMTP message dump

LICENSE

      The Secure Mailer license must be distributed with this software.

AUTHOR(S)

      Wietse Venema
      IBM T.J. Watson Research
      P.O. Box 704
      Yorktown Heights, NY 10598, USA


Menjalankan

11. Stress Testing How much mail will my box be able to handle?

To find out how much traffic your installation can handle, you need to perform some kind of stress testing. To put an adequate load on the server, you need a fast mail generator. Postfix comes with a pair of testing programs named smtp-source and smtp-sink for just this purpose. Here's how they work:

smtp-source

   This program connects to a host on a TCP port (port 25 by default) and sends one or more messages, either sequentially or in parallel. The program speaks both SMTP (default) or LMTP and is meant to aid in measuring server performance.

smtp-sink

   This test server listens on the named host (or address) and port. It recieves messages from the network and throws them away. You can measure client and network performance with this program.

Let's start with smtp-source to stress-test your Postfix installation. The following example injects 100 total messages of size 5k each in 20 parallel sessions to a Postfix server running on localhost port 25. Because you're also interested in how much time this takes, use the time command:

$ time ./smtp-source -s 20 (1) -l 5120 (2) -m 100 (3) -c (4) \
  -f sender@example.com (5) -t recipient@example.com (6) localhost:25 (7)

100 real 0m4.294s user 0m0.060s sys 0m0.030s

(1)

20 parallel sessions (2)

5k message size (3)

100 total messages (4)

display a counter (5)

envelope sender (6)

envelope recipient (7)

target SMTP server

In the example above, injection took 4.294s. However, you also want to know how long actual delivery takes? Check your logs for this, and also to verify that every last message arrived for <recipient@example.com> received.


Referensi