首页 文章

tcp / ip发送延迟和性能调优

提问于
浏览
0

发送功能在3.10运行的linux服务器上花费3~4微秒,如下所示:

struct timeval  tv1,tv2;
gettimeofday(&tv1,NULL) ;
send(fd,strsend,strlen(strsend),MSG_NOSIGNAL) ; 
gettimeofday(&tv2,NULL) ;
printf("(%d)(%d)\n",tv1.tv_usec,tv2.tv_usec) ;

strlen(strsend)将是212个字节,所以我可以合并5个strsend和send的消息,而不是调用send 5次,它包含212 * 5 = 1060,低于MTU 1500,发送延迟比调用send更好5次 .

我想知道我是否可以合并10条消息并只发送一次?!
在这种情况下,它包含212 * 10 = 2120字节,高于MTU 1500,也许延迟会得到改善,因为我只调用一次发送,但是有没有副作用呢?! NIC的任何配置参数都有助于在最低延迟时进行划分? tcp / ip性能的对等端是否有效?

1 回答

  • 1

    你应该尽可能多地尝试将尽可能多的信息聚合到 send 的单个调用中 . 通常认为2KB是绝对最小值 . 否则,除了其他问题之外,您还会在线路上发送非常小的数据报并降低网络效率 .

相关问题