高并发的rsync服务器

     2014年02月07日       teddy.sun       运维笔记->系统管理       rsync 

今天有上千台服务器需要从我们的rsync源同步一个文件夹,结果发现pssh的并发开到30的时候rsync客户端开始报错。报错如下:

rsync: failed to connect to host: Connection refused (111)

这样的错误,看起来是rsync服务器拒绝链接了。但是我们的rsync服务是好的呀,有一些服务器也成功地rsync了,为什么有一部分服务器却报错了呢?

排查原因的过程中发现可能是xinetd导致的。分析如下:

  1. 我们的rsync服务器是通过xinetd托管的,客户端在链接rsync服务的时候会首先连接xinetd。然后xinetd再启动rsync进程
  2. xinetd将rsync请求转给rsync服务器的时候,会启动一个rsync的daemon进程,这个需要时间
  3. xinetd的并发度有限,影响到rsync服务的并发

所以尝试着脱离xinetd的托管模式,直接以daemon的形式启动rsync服务。

rsync --daemon -4 --config=/etc/rsyncd.conf --log-file /var/log/rsyncd.log

实际测试的rsync服务端的并发大于300(pssh并发开到300未报错),极限值尚未测试。