jeremyczhen / fdbus

FDBus - Fast Distributed Bus
https://blog.csdn.net/jeremy_cz/article/details/89060291
161 stars 85 forks source link

大量数据通信时、fdbus会出现卡滞 #12

Closed sunclgogo closed 4 years ago

sunclgogo commented 4 years ago

通过logsvc工具查看、logsvc输出的log会出现卡滞现象、在具体场景中的表现是:fdbus client上在几秒钟内会出现无法通信的情况、其他server向client broadcast的数据、要几秒钟后才能收到。 branch:hotfix_autoreply_for_sunclgogo。 @jeremyczhen 希望有时间帮忙看下、谢谢!

jeremyczhen commented 4 years ago

可能的原因是,logsvc启动后,FDBus上所有消息都要向logsvc转发一份,导致通信的数据量会加倍(考虑到log的数据是文本格式,可能比加倍还要多),另外如果logsvc向屏幕打印数据,打印过程也会阻塞消息收发。现在还无法判断具体原因,能不能做以下试验并告知测试结果:

  1. logsvc > /dev/null:看一下系统是不是会阻塞
  2. logsvc -o:此时不会打印任何信息,看看会不会阻塞;如果不阻塞,则执行下面操作:
  3. logsvc -o &:此时没有打印 logviewer:此时会有打印,看看会不会阻塞
sunclgogo commented 4 years ago

@jeremyczhen 我们尝试将Fdbus makefile中的log控制宏开关注掉、但是log还是能输出、有什么办法可以禁用掉Fdbus所有的log输出么? 注掉的宏开关如下:

add_definitions("-DCONFIG_DEBUG_LOG")

add_definitions("-DCONFIG_LOG_TO_STDOUT")