Linux上的快速用户空间进程间通知方法?

Linux上的快速用户空间进程间通知方法?,linux,performance,ipc,broadcast,futex,Linux,Performance,Ipc,Broadcast,Futex,我们有两个Linux进程与域套接字通信,性能目标是通过单个域套接字连接以5k iops和4k请求大小进行通信,为了降低cpu成本,我们使用io环(基于共享内存)替换域套接字,但关键的“通知”步骤仍然由域套接字执行,而且似乎开销还是太大了 PS:当前io深度通常为2-4,表示每个“通知”的iops为1k 信号量、pthread_condvars、基于futex的锁、eventfd、inotify,您(或其他人)更喜欢哪一个,我非常关心性能和开销。谢谢 您可以使用linux 查看SIGALRM或者您

我们有两个Linux进程与域套接字通信,性能目标是通过单个域套接字连接以5k iops和4k请求大小进行通信,为了降低cpu成本,我们使用io环(基于共享内存)替换域套接字,但关键的“通知”步骤仍然由域套接字执行,而且似乎开销还是太大了

PS:当前io深度通常为2-4,表示每个“通知”的iops为1k

信号量、pthread_condvars、基于futex的锁、eventfd、inotify,您(或其他人)更喜欢哪一个,我非常关心性能和开销。谢谢

您可以使用linux


查看SIGALRM或者您可以使用SIGUSR1

虽然这个问题在询问“最佳”方法时可能相当广泛,但我认为它足够具体(IPC、notify、Linux、列出的机制的比较)来防止关闭。您需要立即发送每个通知吗?有一种众所周知的方法(例如,在外部设备的中断生成中使用)在前一种方法之后的一段时间内抑制通知生成,因此全速率不会超过某个最大值。例如,你可以使用10毫秒的最小间隔,每秒发出的通知不超过100次,但在上一部分之后10毫秒内仍能做出反应……嗯,延迟是主要目标,10毫秒太大。你真的读过这个问题吗?虽然信号是进程间通知的一种形式。。。您没有提供基准数据,也没有理由认为OP可能会考虑这种方法(OP主要关注的是批量吞吐量和延迟)。