|
|
| (2 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 -l 5120 -m 100 -C 4 -f onno@indo.net.id -t onno@korban.com 192.168.0.80:25
| |
|
| |
| real 0m50.516s
| |
| user 0m0.037s
| |
| sys 0m0.146s
| |
| | |
| | |
| $ 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
| | ntpdate pool.ntp.org |
| (2)
| |
|
| |
|
| 5k message size
| | Test |
| (3)
| |
|
| |
|
| 100 total messages
| | 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 |
| (4)
| |
|
| |
|
| display a counter | | Dimana |
| (5)
| | -s jumlah paralel session |
| | -l besar message |
| | -m jumlah mail |
| | -C display counter |
|
| |
|
| envelope sender
| | Hasilnya |
| (6)
| |
|
| |
|
| envelope recipient
| | real 0m5.879s |
| (7)
| | user 0m0.307s |
| | sys 0m1.584s |
|
| |
|
| target SMTP server
| | Butuh waktu 5.8 detik untuk mengirim 1000 mail ke server SMTP tersebut. |
|
| |
|
| 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== | | ==Referensi== |
|
| |
|
| * http://www.postfix.org/smtp-source.1.html | | * http://www.postfix.org/smtp-source.1.html |
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