【问题标题】:message queue vs TCP IP Socket. which IPC is faster in linux?消息队列与 TCP IP 套接字。哪个IPC在linux中更快?
【发布时间】:2018-10-14 17:27:48
【问题描述】:

我想知道哪个 IPC 在 linux 中提供了更高的性能(TCP IP 套接字与消息队列)。我的目的是以频繁的间隔(大约 50 毫秒)从进程 A 向 B 发送包含少量整数值的数据包。B 以 5 秒的间隔向 A 发送一些其他数据包。

【问题讨论】:

标签: ipc


【解决方案1】:

使用共享内存解决方案可获得最佳效果。

消息队列TCP 套接字的 3 倍。

使用IPC benchmarking获取结果:

  • 系统:Linux (Linux ubuntu 4.4.0 x86_64 i7-6700K 4.00GHz)
  • 消息:128 字节
  • 消息数:1000000

管道基准:

Message size:       128
Message count:      1000000
Total duration:     27367.454 ms
Average duration:   27.319 us
Minimum duration:   5.888 us
Maximum duration:   15763.712 us
Standard deviation: 26.664 us
Message rate:       36539 msg/s

FIFO(命名管道)基准测试:

Message size:       128
Message count:      1000000
Total duration:     38100.093 ms
Average duration:   38.025 us
Minimum duration:   6.656 us
Maximum duration:   27415.040 us
Standard deviation: 91.614 us
Message rate:       26246 msg/s

消息队列基准测试:

Message size:       128
Message count:      1000000
Total duration:     14723.159 ms
Average duration:   14.675 us
Minimum duration:   3.840 us
Maximum duration:   17437.184 us
Standard deviation: 53.615 us
Message rate:       67920 msg/s

共享内存基准测试:

Message size:       128
Message count:      1000000
Total duration:     261.650 ms
Average duration:   0.238 us
Minimum duration:   0.000 us
Maximum duration:   10092.032 us
Standard deviation: 22.095 us
Message rate:       3821893 msg/s

TCP 套接字基准测试:

Message size:       128
Message count:      1000000
Total duration:     44477.257 ms
Average duration:   44.391 us
Minimum duration:   11.520 us
Maximum duration:   15863.296 us
Standard deviation: 44.905 us
Message rate:       22483 msg/s

Unix 域套接字基准测试:

Message size:       128
Message count:      1000000
Total duration:     24579.846 ms
Average duration:   24.531 us
Minimum duration:   2.560 us
Maximum duration:   15932.928 us
Standard deviation: 37.854 us
Message rate:       40683 msg/s

ZeroMQ 基准测试:

Message size:       128
Message count:      1000000
Total duration:     64872.327 ms
Average duration:   64.808 us
Minimum duration:   23.552 us
Maximum duration:   16443.392 us
Standard deviation: 133.483 us
Message rate:       15414 msg/s

【讨论】:

  • 共享内存基准测试(我假设它是this)执行忙等待...
猜你喜欢
  • 2011-04-16
  • 1970-01-01
  • 2013-04-16
  • 2011-11-04
  • 2012-09-19
  • 2021-03-12
  • 1970-01-01
  • 1970-01-01
  • 2011-06-01
相关资源
最近更新 更多