はじめまして
今dovecotでメールシステム設計中なんですが、
imapのsearchコマンドの処理時間を挙げる方法を模索中です。
メールボックス用のLUNはiscsiで外部ストレージ上のLUNにつくります。
ボトルネックはディスクI/Oでさらに言えばディスクヘッドなのですが、
予算が足りなくてSSD導入はできません。
メールボックス用の仮想ディスクはRAID6でSAS10k回転のHDD10台で
ディスクヘッドを分散させるつもりですが、
4KB randam readでIOPSを計測すると、他のディスクI/Oが無くても
300台です。
10台でRAID6組んでるのならHDDの本数の10倍近いIOPSになると期待していたのですが、
もしかしたら、imap searchのread I/Oが1メッセージずつしか発行されなくて、
メッセージがディスクからディスクキャッシュに読み込まれるまで
CPUがI/O待ちになっているように思えます。
ストレージ側では並列にread I/Oを処理できるだから、、
dovecotも並列read I/Oを出せるようにしたいと考えております。
一回のimap searchのプロセスをマルチスレッドで動作させてread I/Oも
並列処理出動くようにチューニングするなど、
imap search時に並列read I/Oを実現する方法はありませんでしょうか?