注意
本文档适用于 Ceph 的开发版本。
Messenger notes
Messenger 是 Ceph 网络层的实现。目前 Ceph 支持一种 Messenger 类型:“async”。
ceph_perf_msgr
ceph_perf_msgr 仅用于对 Messenger 模块进行基准测试,可以帮助找到 Messenger 模块内的瓶颈或耗时部分。它就像 “iperf” 一样,我们需要首先启动服务器端程序
# ./ceph_perf_msgr_server 172.16.30.181:10001 1 0
第一个参数是 ip:port 对,它告诉客户端需要指定的目的地址。第二个参数配置服务器线程。第三个参数告诉分派消息时的“思考时间”(us)。在 Giant 之后,CEPH_OSD_OP 消息(即实际的客户端读/写 IO 请求)被快速分派,无需排队到 Dispatcher,以实现更好的性能。因此,CEPH_OSD_OP 消息将在线处理,“思考时间”用于模拟这种“在线处理”过程。
# ./ceph_perf_msgr_client 172.16.30.181:10001 1 32 10000 10 4096
第一个参数指定服务器 ip:port,第二个参数用于指定客户端线程。第三个参数指定并发数(每个客户端线程的最大未完成消息数),第四个参数指定每个客户端线程将向服务器发出的 IO 次数。第五个参数用于指示客户端线程接收消息时的“思考时间”,这也用于模拟客户端快速分派过程。最后一个参数指定要发出的消息数据长度。