Soru Daha büyük klasörler için hızlı imap sunucusu


Daha büyük klasörler ile hızlı bir imap sunucusu arıyorum. Her klasör için 20'000-100'000 e-posta gönderin.

Şu anda güvercin kullanıyorum ve bir klasör açmak 10 saniye sürebilir ve imap sunucusundaki HD ışık çılgın gibi gözüküyor.

Bir istemci olarak alp kullanıyorum ve sadece en yeni postaları varsayılan olarak listeler, bu yüzden istemcim posta kutusunu açarken her şeyi aktarmaya çalışıyor. Bu, kaydırma yaptığımda, bir sonraki sayfa için konu satırlarını yüklemem gerektiği (orada ilk kez kaydırdığım) ile görülebilir.

XFS'de maildir kullanıyorum.

Düzenle: Şeylerin büyük şemasında fazla veri olmadığı için soruyorum. Bu bir SQL veritabanında olsaydı, en yeni 40 iletinin konu satırlarını almak olurdu değil 40'000 e-postaların bir klasörü için 10 saniye sürün. Gerekli tek veri:

SELECT date, from, subject FROM emails ORDER BY date DESC LIMIT 40;

Herhangi bir fikir?


6
2017-08-24 08:53


Menşei


Bu klasörleri bölmeyi öneririm. Kullanıcı ve sunucu için daha iyi olacak. - alex
Ben kullanıcıyım ve hayır olmazdı. Yine de gittiğim çirkin bir çözüm. - Thomas


Cevaplar:


Güvercin aslında oldukça iyi, performans açısından. Dovecot en Performans Ayarlama wiki sayfası Performansı daha da iyileştirmek için birkaç ipucu ve püf noktası var. Endeksleri ve posta kodlarını ayrı disklerde tutmak, sizin için mümkün olursa, başlamak için iyi bir şeydir. Dovecot’lara geçişi de değerlendirebilirsiniz. dbox depolama biçimi.


4
2017-08-24 09:01



Ayarlama sayfasını kullanarak optimize etmeye çalıştım. Bu aldığım kadar iyi. Dbox'ı deneyeceğim. - Thomas
güvercin hızlı bir şekilde bonker - hendry


Belki de Maildir / Maildir ++ posta kutularını kullanmak yerine, mesaj depolama için bir veritabanı motoru kullanmayı deneyebilirsiniz. Bu ile yapılabilir dbmail.

Dbmail'in bir üretim ortamı için ne kadar güvenilir olduğunu bilmiyorum, ancak zaten sanallaştırma çalışmanız olduğundan, sınama amacıyla başka bir VM'ye kurabilir ve ortamınızda nasıl performans gösterdiğini görebilirsiniz.

İşte dbmail mimarisine genel bir bakış:

alt metin http://www.dbmail.org/dokuwiki/lib/exe/fetch.php/dbmail.bigpicture.png


3
2017-08-24 12:49



Grafik, aksi takdirde güzel cevap için herhangi bir değer katıyor sanmıyorum. Ayrıca dovecot posta listesinde ilginç bir konu var, dovecot vs dbmail'in bazı yönlerini kıyaslıyor (dovecot.org/list/dovecot/2007-May/022599.html). - earl
Earl, geri bildirim için teşekkürler. OP kilometresinin değişebileceğini düşünüyorum ve bu yüzden kendi ortamında bazı testler yapması yararlı olacaktır. Bağlantınızdaki ölçütlerin değerini sorgulamak niyetim değil, ancak bu testler 2,5 yıl (ve 6 sürüm) önce çalıştırıldığından, tekrar kontrol etmek kötü bir fikir olmaz. - mfriedman
Oh, ve cevabımı eklediğim şema ile ilgili olarak, ben saygıyla katılmıyorum. Parçaların birbirine nasıl uyduğunu, DBMail ve DBMail olmayan bileşenlerin neler olduğunu ve birbirleriyle nasıl etkileştiklerini gösterir. Resmin, sorulanın ötesinde olabileceğini kabul ettiğimde bile, bu özel çözümün nasıl çalıştığını göstermeye yardımcı olduğunu düşünüyorum. Ve, dediği gibi, "bir resim bin kelimeye bedeldir". Saygılarımla, Marcus. - mfriedman
Link ve diyagram için teşekkürler. Bazı öznel "hissetme" kıyaslamalarını yaptım ve indeksi önbelleğe aldığında, güvercin biraz daha hızlı görünüyor, ancak e-postalar önbellekte gözyaşı dökülmeye devam ettiğinden, bu yüzden uygulamada posta kutusunu her açtığımda yavaş isabet alıyorum. dbmail isabetli bir şekilde eposta ekleme (hit) alır gibi görünüyor, bu yüzden o kadar hızlı olmayabilir, ben bir klasör açmak için 10s beklemek asla. Bir kutuda 44.000 e-posta ile test edilmiştir. - Thomas


Sunucu özelliklerinden bahsetmiyorsun ... ne kadar bellek kullanıyorsun, işlemci, ağ kartı / anahtarlar gigabit mi? Eğer sunucuya bakarsanız, neyin dışarı çıktığını söyleyebilir misiniz? Eğer verim sürüyorsa, sunucu yazılımını çok fazla değiştiremezsiniz.

Bir ağ üzerinden sistemleri klonlamadım ve sistemimin 50 MB / s aralığında patlayabildiğini bildiğimde, sadece yaklaşık 15 MB / sn çeken bir gigabit anahtar üzerinde iki sisteme sahip olduğum için şaşırdım. Son sistemlerde darboğaz yapan diskler olduğu ortaya çıktı (ikinci IDE kanalına bir sürücü koydum ve doğrudan DD yaptım, aynı transfer hızlarını aldım).

İşlemcinin yanı sıra işlemci / disk / ağ kullanımını kontrol etmek ve bunlardan herhangi birinin sorunlara yol açıp açmadığını görmek isteyebilirsiniz. Değilse, ayrı diskleri kullanarak çıktıları artırmanın yollarını arayabilir, posta kutularını farklı iğlere ayırabilir, donanım RAID yansıtması kullanarak daha iyi bir çıktı elde edip edemeyeceğinizi kontrol edebilir ve görebilirim (okuma sürelerindeki artıştan ne kadar emin değilim) diskleri kapatabilir veya daha düşük gecikme süresi ve daha büyük önbelleklere sahip daha yüksek performanslı sabit disklere geçebilirsiniz.


2
2017-08-24 12:07



Benim amacım, fazla veri olmaması. 40'000 giriş veritabanı için bir şey değildir. Bir imap sunucusu için fazla olmamalı. Raid5 ve 8GB RAM ile bir dört çekirdekli 2.4GHz üzerinde sanal bir makine (Linux üzerinde KVM), ama bunu fiziksel bir makinede de gördüm. Diskleri ve ağı kıyasladım ve yaklaşık 100MByte / sn. Ancak, bunların sadece 40'000 e-postanın yaklaşık 40'ından (en son) seçkin posta başlıklarını (bayraklardan, konudan) okuduğunu unutmayın. 40 mail gövdesi bile yok. - Thomas
Ve 40.000 posta başlığı değil. Kaydırırsam istek üzerine yüklenir. - Thomas
Muhtemelen bunu zaten kontrol ettiniz (sunucudaki güzel özellikler ... sorun değil, düşünmeliyim) ama muhtemelen yerel olarak önbelleğe alınan bilgileri okuyan ve bazı yavaşlamalara neden olan ileri ve geri gitme istemcisidir. ? - Bart Silverstrim


Güvercin kullandığınız için, zaten kullandığınızı varsayalım indeksleme özellikleri? Hiçbir şeyden haberdar değilim (en azından ücretsiz bir şey değil), bu da güvercinden daha hızlı.


1
2017-08-24 08:56



Evet, indekslemeyi kullanıyorum. Beni şaşırtan şey, bir SQL veritabanının en yeni 40 satırı listelemek için 10 saniye sürmemesidir (düzgün bir şekilde indekslendiğinde). Soruyu bu konuda güncelledim. - Thomas