Postal: Smtp Performance Benchmark
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYImzUZN' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Postal, mail sunucuların performans testlerini yapmak üzere geliştirilmiş güzel ve küçük bir yazılımdır. Temel olarak postal ile belirlediğiniz adreslere (ya da adres listesine), belirlediğiniz bir süratte e-mail göndererek, mail sunucusunun gelen postaları işleme hızını tespit edebiliyorsunuz. Postal, gönderilecek maillerin ebatı, gönderimin kaç süreç ile yapılacağı, dakikada ne kadar mail atılacağı ve bağlantı başına gönderilecek mail adedine kadar bir çok test parametresini belirlemenize olanak sağlıyor. Aynı zamanda postal içerisinde gelen rabid aracı ile mail sunucunuzun pop3 servisi için de benzer testleri yapabiliyorsunuz.
Ben postal'ı marketing mailleri için kullandığım posta sunucularının gönderim hızlarını tespit etmek için kullanıyorum. Bu araçla, birden fazla posta sunucusuna round-robin gönderim yapabiliyor ve genel durumu da tespit edebiliyor ve test verilerinden hareketle sistemlerinizi iyileştirme şansına sahip oluyorsunuz.
Yazının devamında, postal'ın kaynak koddan kurulumu ve benchmark işlemlerinin yapılmasından bahsedeceğim. Siz de posta sunucularınızın performanslarını ölçmek istiyorsanız işinize yarayacaktır.
Postal
Girişte kısaca bahsettiğim çalışma prensibi şu şekilde; Postal email gönderilecek adresleri hazırladığınız bir text dosyasından okuyor ve bu adreslere belirlediğiniz eşiklere göre mail gönderiyor. Gönderilen maillerin başlığı ve gövdesi random olarak üretiliyor ve default olarak 0 ile 10 Kbyte arasında bir ebata tekabul ediyor. Ancak bu değerleri de ayrıca belirtebiliyorsunuz. Bunun dışında gönderilen maillerin header'ların X-Postal ibaresi ekleniyor, bu şekilde mailleri yanlış bir posta adresine göndermeniz durumunda kolayca filtrelenebilir hale getiriliyor.
Kurulum
Postal FreeBSD port ağacında ya da Debian paket deposunda bulunuyor, ancak ben burada kaynak koddan kurulmasını anlatacağım. Herhangi bir bağımlılık paketi yok. Bundan dolayı kurulum oldukça basit. Ancak, derleme işleminin yapılabilmesi için sisteminizde gcc ve gcc-c++ paketlerin kurulu olması gerekir.
Postal'ın son sürümünü http://doc.coker.com.au/projects/postal/ adresinden download ediyoruz:
# wget http://www.coker.com.au/postal/postal-0.70.tgz
Download edilen paketi açıp kurulum dizinine geçiyoruz:
# tar xvfz postal-0.70.tgz # cd postal-0.70
Sonrasında klasik şekilde kuruyoruz:
# ./configure # make # make install
Kurulum bu kadar.
SMTP benchmark
Herşeyden önce test sırasında email gönderilecek adresleri içeren bir text dosyasına ihtiyacınız var. Email adreslerini, aşağıda görüldüğü şekilde alt alta bir dosyaya yazmanız yeterli:
# more users.txt [email protected] [email protected] [email protected] [email protected]
Bu listeyi kullanarak kısa bir test yapmak için postal komutu şu şekilde:
# postal -t 1 -r 60 192.168.12.12 /user.txt
Bu komutla, 192.168.12.12 ip adresli posta sunucusu kullanılarak (default 25. port) tek bir süreç üzerinden, users.txt dosyasında bulunan email adreslerine dakikada toplam 60 adet mail gönderilmesini söylüyoruz.
Görüldüğü gibi -t süreç sayısını -r ise toplam gönderilecek e-mail sayısını belirtiyor.
Bunun yanı sıra gönderilecek maillerin minimum ve maximum size'larını da şu şekilde belirtebilirsiniz:
# postal -M 3 -m 5 -t 1 -r 60 192.168.12.12 /user.txt
-m kbyte cinsinden minimum size'ı, -M ise maximum ebatı belirtir. Bu örnekte emailler 3 ile 5 kbyte arasında random bir ebata sahip olacaklar.
Birden fazla posta sununusunu test etmek istiyorsanız posta sunucuların virgul (,) ile ayırarak belirtebilirsiniz.
# postal -M 3 -m 5 -t 1 -r 60 192.168.12.12,192.168.12.13,192.168.12.14 /user.txt
Bu komutta emailler sıralı olarak (round-robin) 192.168.12.12, 13 ve 14 ip'li sunuculardan gönderilecek. Ayrıca -c parametresini kullanırsanız aynı bağlantıdan gönderilecek posta adedini belirleyebilirsiniz.
Postal'ın tüm paramterleri aşağıdaki şekildedir:
postal [-m maximum-message-size] [-M minimum-message-size] [-t threads] [-c messages-per-connection] [-r messages-per-minute] [-a] [-b [no]netscape] [-p port] [-[z|Z] debug-file] [-l local-address] [-f sender-file] smtp-server user-list-filename
Daha fazla bilgi http://doc.coker.com.au/projects/postal/ adresine ya da man sayfasina bakabilirsiniz.
Bu yazılar da ilginizi çekebilir:
- noatime – Disk I/O Optimizasyonu
- Daha Hızlı Firefox: Swiftfox ve Swiftweasel
- Dstat ile Efektif Sistem Monitoring
- Fusion-io ile Yüksek I/O Kapasitesi
Yorumlar
Trackbacks
- Tweets that mention Postal ile SMTP Performans Testleri | Syslogs -- Topsy.com
- Sayı24: Dikkat Çeken Yazılar | NETSEC AĞ VE BİLGİ GÜVENLİĞİ TOPLULUĞU
Yorumda bulunun.