Difference between revisions of "Postfix: smtp-source"

From OnnoWiki
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
SMTP-SOURCE(1)                                                  SMTP-SOURCE(1)
+
Postfix sudah menyediakan aplikasi smtp-source untuk mengirim e-mail dalam jumlah besar untuk melakukan stress test ke server SMTP.
 
 
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==
 
==Menjalankan==
  
11. Stress Testing
+
Sinkronkan waktu di ke dua mesin yang melakukan test. Di server maupun di client
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
+
ntpdate pool.ntp.org
(3)
 
  
100 total messages
+
Test
(4)
 
  
display a counter
+
time smtp-source -s 20 -l 5120 -m 1000 -C 4 -f onno@indo.net.id -t onno@korban.com 192.168.0.80:25
(5)
 
  
envelope sender
+
Dimana
(6)
+
-s jumlah paralel session
 +
-l besar message
 +
-m jumlah mail
 +
-C display counter
  
envelope recipient
+
Hasilnya
(7)
 
  
target SMTP server
+
real 0m5.879s
 +
user 0m0.307s
 +
sys 0m1.584s
  
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.
+
Butuh waktu 5.8 detik untuk mengirim 1000 mail ke server SMTP tersebut.
  
  

Latest revision as of 17:23, 8 June 2015

Postfix sudah menyediakan aplikasi smtp-source untuk mengirim e-mail dalam jumlah besar untuk melakukan stress test ke server SMTP.

Menjalankan

Sinkronkan waktu di ke dua mesin yang melakukan test. Di server maupun di client

ntpdate pool.ntp.org

Test

time smtp-source -s 20 -l 5120 -m 1000 -C 4 -f onno@indo.net.id -t onno@korban.com 192.168.0.80:25

Dimana

-s jumlah paralel session
-l besar message
-m jumlah mail
-C display counter

Hasilnya

real	0m5.879s
user	0m0.307s
sys	0m1.584s

Butuh waktu 5.8 detik untuk mengirim 1000 mail ke server SMTP tersebut.


Referensi