Rsync / ssh high cpu load

李如其 liruqi at gmail.com
Thu Dec 6 20:29:41 MST 2012


Hi,

ssh: OpenSSH_5.3p1
rsync: 3.0.6
OS: CentOS release 6.3

I got the same problem here, syncing 95M to amazon ec2 without
--bwlimit parameter. It should be not caused by cygwin. From 3.0.6 to
latest version, I did not find any ssh related problem fixed.

After the syncing job is over, ssh process did not quit and consumes
100% CPU. I collected other information, wish it may help.

related process:
root     29296  0.0  0.0 107612   964 pts/1    T    Dec06   0:00 rsync
-arv -e ssh data root at xxx.com:/tmp/data/ --exclude=.svn
root     29297 99.9  0.0  59760  3476 pts/1    R    Dec06 770:20 ssh
-l root xxx.com rsync --server -vlogDtpre.iLs . /tmp/data/
root     29306  0.0  0.0  55160  2028 ?        Ss   Dec06   0:00 scp
-f -- /yyy/zzz.sql

# strace -fF -v -p 29297
Process 29297 attached - interrupt to quit
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
rt_sigreturn(0x16)                      = -1 EINTR (Interrupted system call)
ioctl(4, SNDCTL_TMR_CONTINUE or TCSETSF, {c_iflags=0x500,
c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0,
c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"})
= ? ERESTARTSYS (To be restarted)
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
rt_sigreturn(0x16)                      = -1 EINTR (Interrupted system call)
ioctl(4, SNDCTL_TMR_CONTINUE or TCSETSF, {c_iflags=0x500,
c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0,
c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"})
= ? ERESTARTSYS (To be restarted)
--- SIGTTOU (Stopped (tty output)) @ 0 (0) ---
rt_sigreturn(0x16)                      = -1 EINTR (Interrupted system call)
(repeat)

-----Oorspronkelijk bericht-----
Van: Jan Alphenaar [mailto:jan.alphenaar at dotcolour.com]
Verzonden: woensdag 17 februari 2010 23:17
Aan: 'rsync at lists.samba.org'
Onderwerp: RE: Rsync / ssh high cpu load

Hi again,

Still working on this one. When I rsync/ssh a big file to my server over the
local network (100Mbit/s) with the --bwlimit=1000 I only have a small CPU
load. SSH takes about 10% and rsync approximately 0-5%. In the end the
transfer speed usually is around the value I set in bwlimit.

When I transfer the same file to a remote machine, where the bandwidth is
limited to roughly 140KB/s and the bandwidth limit is set to something below
this value I get around the same values which I have on the local network,
SSH 10% and rsync somewhere between 0-5%.

If I change the bwlimit value to 150KB/s or higher the SSH load goes up to
70% and rsync to 30% fully consuming my CPU.

I think the problem is pretty clear now. Does anybody have an idea, what the
next step could be to the resolution of this ?

Regards,

Jan

-----Oorspronkelijk bericht-----
Van: Jan Alphenaar [mailto:jan.alphenaar at dotcolour.com]
Verzonden: woensdag 17 februari 2010 12:17
Aan: 'rsync at lists.samba.org'
Onderwerp: RE: Rsync / ssh high cpu load

Hi,

In an attempt to narrow this down a bit I installed a RedHat machine with
openssh-5.3p1 and rsync-3.0.7 and did the same test as below.

Transferring data, both up and downstream, are not giving me any CPU load.

Although there is a small version difference in the rsync versions, I would
say that this is caused by the cygwin layer.

I will mention this in the cygwin list.

Still, if anybody has any ideas how to solve the issue below, please let me
know.

Warm regards,

Jan

-----Oorspronkelijk bericht-----
Van: Jan Alphenaar [mailto:jan.alphenaar at dotcolour.com]
Verzonden: dinsdag 16 februari 2010 17:31
Aan: 'rsync at lists.samba.org'
Onderwerp: Rsync / ssh high cpu load

Hi everybody,

I am using Cygwin rsync/ssh to synchronize my files from my home computer to
my server. I raised a question on the Cygwin list as well, but thought this
list would be appropriate too.

The issue is that the CPU on the sending side is fully allocated by
rsync/ssh (both taking 50%) during a file transfer. This is the command I
use:

        rsync -e ssh * <user>@<server>:/data

After some more testing on this I figured out that rsync/ssh is only taking
the full cpu if the bandwidth allocated to the session exceeds the true
bandwidth available on the link.

For example, if the uplink is 128KB/s and I pass in the --bwlimit=24
parameter the cpu is around 0%. Even --bw-limit=126 does not take 100% cpu,
but --bwlimit=132 does. Note this is the first install, the /data directory
on the receiving side is empty.

Would this be because of packet loss on the link and packets have to be
retransmitted ? I will do a quick test tonight with rsync/ssh between two
linux boxes (without cygwin), see what that gives me.

Note that I am using these versions:

Cygwin: 1.7.1-1
ssh: OpenSSH_5.3p1
rsync: 3.0.6

Has anybody seen this before ?

Thanks in advance.

Regards,

Jan


--
Phone: 18601240631
Blog: http://liruqi.info
Weibo: http://weibo.com/liruqi


-- 
Phone: 18601240631
Blog: http://liruqi.info
Weibo: http://weibo.com/liruqi


More information about the rsync mailing list