Rsync quite slow (using very little cpu): how to improve its speed?


 
Thread Tools Search this Thread
Operating Systems Solaris Rsync quite slow (using very little cpu): how to improve its speed?
# 8  
Old 06-05-2018
No, I have been running tests on a new system, with just OS install,
Code:
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
 rpool   476G   136G   340G        -         -     0%    28%  1.00x  ONLINE  -

After advice on this forum, I simplified testing, now only on local SSD.

I created a 10G file (with urandom, to avoid zfs caching), and had following results (tested many times, best result reported):

Code:
### cp to same SDD

root@omniosce:~# time cp random.bin random1.bin

real    0m5.671s
user    0m0.134s
sys     0m4.974s

root@omniosce:~# time rsync -a random.bin random2.bin

real    1m25.644s
user    2m24.261s
sys     0m14.273s

### rsync'ing to same SDD with Joyent pkgsrc rsync

root@omniosce:~# time /opt/local/bin/rsync -a random.bin random1.bin

real    0m31.302s
user    0m40.634s
sys     0m13.994s

The last result is very close to what I get with FreeBSD on exact same hardware.

So, it seems to me, a possible reason could lie in OmniOS core rsync.

Last edited by priyadarshan; 06-05-2018 at 11:16 AM..
# 9  
Old 06-15-2018
Mystery solved

The mystery has finally been solved, by switching OmniOS rsync to 64-bit and enable optimisation. That more than doubles the speed of the checksumming code.


Now, considering exact same hardware, rysnc on OmniOS is even a bit faster than FreeBSD's.


Thank you to all here, and thanks to the excellent OmniOS devs that helped so promptly and exhaustively.

Last edited by priyadarshan; 06-15-2018 at 09:48 AM..
# 10  
Old 06-15-2018
And thank you for updating us!
# 11  
Old 06-20-2018
FWIW - on an x86-based server, processes running in 32-bit mode have access to eight 32-bit general purpose registers, three of which are PC (program counter), SP (stack pointer), and FP (frame pointer). So, unless the compilation process includes optimizations like '-fomit-frame-pointer', the process gets all of five general-purpose registers.

In 64-bit mode, processing have access to sixteen 64-bit general-purpose registers.

So an unoptimized 32-bit process gets to actually use five 32-bit registers, and an optimized 64-bit process gets to actually use fourteen 64-bit registers.

Guess which one's faster on the exact same hardware. ;-)
This User Gave Thanks to achenle For This Post:
# 12  
Old 06-20-2018
Thank you for the explanation!
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Improve script - slow process with big files

Gents, Please can u help me to improve this script to be more faster, it works perfectly but for big files take a lot time to end the job.. I see the problem is in the step (while) and in this part the script takes a lot time.. Please if you can find a best way to do will be great. ... (13 Replies)
Discussion started by: jiam912
13 Replies

2. Shell Programming and Scripting

Slow Perl script: how to speed up?

I had written a perl script to compare two files: new and master and get the output of the first file i.e. the first file: words that are not in the master file STRUCTURE OF THE TWO FILES The first file is a series of names ramesh sushil jonga sudesh lugdi whereas the second file (could be... (4 Replies)
Discussion started by: gimley
4 Replies

3. Red Hat

RHEL 5.6 Slow rsync to NFS array

Hi All, I have RHEL 5.6 with a 70GB local directory of Web content. Images, PHP scripts etc. I need to copy all this content to an NFS array thats mounted on the RHEL server. I did a baseline cp to copy the content one week ago. Since my baseline copy the local directory has grown by 8GB.... (2 Replies)
Discussion started by: general_lee
2 Replies

4. Shell Programming and Scripting

Help to improve speed of text processing script

Hey together, You should know, that I'am relatively new to shell scripting, so my solution is probably a little awkward. Here is the script: #!/bin/bash live_dir=/var/lib/pokerhands/live for limit in `find $live_dir/ -type d | sed -e s#$live_dir/##`; do cat $live_dir/$limit/*... (19 Replies)
Discussion started by: lorus
19 Replies

5. UNIX for Advanced & Expert Users

speed test +20,000 file existance checks too slow

Need to make a very fast file existence checker. Passing in 20-50K num of files In the code below ${file} is a file with a listing of +20,000 files. test_speed is the script. I am commenting out the results of <time test_speed try>. The normal "test -f" is much much too slow when a system... (2 Replies)
Discussion started by: nullwhat
2 Replies

6. Shell Programming and Scripting

egrep is very slow : How to improve performance

We have an egrep search in a while loop. egrep -w "$key" ${PICKUP_DIR}/new_update >> ${PICKUP_DIR}/update_record_new ${PICKUP_DIR}/new_update is 210 MB file In each iteration, the egrep on an average takes around 50-60 seconds to search. Ther'es nothing significant in the loop other... (7 Replies)
Discussion started by: hidnana
7 Replies

7. HP-UX

How to find CPU Speed of HP UX

Need to find the CPU speed of HP UX for a non root login. echo "itick_per_usec/D" | adb /stand/vmunix /dev/mem | tail -1 will give the following for non root users ERROR: cannot open `/dev/mem', errno = 13, Permission denied (2 Replies)
Discussion started by: surajb
2 Replies

8. AIX

cpu speed

how do i determine the speed of a cpu on AIX 4.3.3 or 5.1? (5 Replies)
Discussion started by: csaunders
5 Replies

9. UNIX for Advanced & Expert Users

network speed is slow

Hello, everyone: i encounter a problem these days , pls help me ,thanks in advance. my env: machine: ES40 A ES40 B os: true64 Unix 4.0f note: src.tar 8M network card speed 100M my problem: ... (3 Replies)
Discussion started by: q30
3 Replies
Login or Register to Ask a Question