CEPH_PERF_MSGR
ceph_perf_msgrは、Messengerモジュールのベンチマークにのみ使用され、Messengerモジュールのボトルネックまたは時間のかかるものを見つけるのに役立ちます。「iperf」と同様に、最初にサーバー側プログラムを開始する必要があります。
サーバ
#。/ ceph_perf_msgr_server 172.16.30.181:10001 1 0
./ceph_perf_msgr_server [bind ip:port] [サーバーワーカースレッド] [thinktime us]
[bind ip:port]:バインドするip:portペア、クライアントは接続するためにこのペアを指定する必要があります
[サーバーワーカースレッド]:スレッドは着信メッセージと応答を処理します(pgスレッドに一致)
[thinktime]:ディスパッチを行うときのスリープ時間(OSD.ccの高速ディスパッチロジックと一致します)
最初のパラメーター:ip:ポートペア、バインディングIP:バインディングポート番号。
2番目のパラメーター:サーバースレッドの数
3番目のパラメーター:ディスパッチが各メッセージをディスパッチするのにかかる時間をシミュレートします(「思考時間」(think_time)-コード内:usleep(think_time);)。Giantの後、CEPH_OSD_OPメッセージ(つまり、実際のクライアントの読み取り/書き込みio要求)は、パフォーマンスを向上させるためにディスパッチャーにキューイングすることなく、迅速にディスパッチされます。したがって、CEPH_OSD_OPメッセージはインラインで処理され、「インラインプロセス」をシミュレートするプロセスは「思考時間」を使用します。
void MessengerClient::ClientDispatcher::ms_fast_dispatch(Message *m) {
usleep(think_time);
m->put();
std::lock_guard l{thread->lock};
thread->inflight--;
thread->cond.notify_all();
}
クライアント
#。/ ceph_perf_msgr_client 172.16.30.181:10001 1 32 10000 10 4096
最初のパラメーター:サーバーIP:ポート
2番目のパラメーター:クライアントスレッドの数。
3番目のパラメーター:同時実行性(クライアントスレッドごとに送信されるメッセージの最大数)
4番目のパラメーター:各クライアントスレッドによって開始されたIOの数。
5番目のパラメーター:メッセージを受信したときのクライアントスレッドの「思考時間」。これは、クライアントの迅速な割り当てプロセスをシミュレートするためにも使用されます。
最後のパラメータ:メッセージデータの長さ
オリジナル:http ://docs.ceph.org.cn/dev/messenger/?highlight = ceph_perf_msgr_server