具体表现是:我使用rsync往服务器同步文件,我设置了超时timeout=5(不设置这个值也会出现这样的问题),然后运行大约1小时后,不断出现timeout的错误提示,出现大约10多个后,程序卡在rsync上不往下运行。此时的CPU很高,如下:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2243 luffyctz 25 0 3900 1184 944 R 99 0.0 8:08.98 rsync
请问这是什么问题呢?
server端的log补充:
2015/03/24 20:05:59 [9603] Service registration expired, refreshing it
2015/03/24 20:05:59 [9603] rsyncd registering 1 service with slpd for 300 seconds:
2015/03/24 20:05:59 [9603] Could not resolve hostname: Name or service not known
2015/03/24 20:10:36 [23380] rsync error: timeout in data send/receive (code 30) at io.c(171) [receiver=2.6.8]
客户端的错误提示:
rsync error: timeout in data send/receive (code 30) at io.c(171) [receiver=2.6.8]
rsync: connection unexpectedly closed (4 bytes received so far) [sender]
-v可以加log级别,你可以加上试试。
另外你的rsync server端也可以配置log级别,rsync server显示什么错误?
明确一下同步文件的数量及文件大小。我曾经遇见过CPU很高的情况是没有限速,疯狂的占用,用
--bwlimit=500
限制500kb/s。另外你确实应该把日志打开,然后粘贴完整的日志,仅仅说一个timeout没法诊断
目测是网络问题。