I use rsync similarly. In addition to he standard /tmp traffic, junkbuster has a 4MB jarfile and 18MB log, ccache has 16 directories and 8000 files of which 3000 are > 10k. Both are heavily used.


At boot time /tmp is populated from on disk storage:
/bin/nice -19 /usr/bin/rsync -aq --whole-file /usr/TMP /tmp &

At shutdown /tmpfs deltas are put back:
/usr/bin/rsync -aq --delete --no-whole-file \
--exclude "*-lock" --exclude "*-unix" --exclude "*=:0.0" /tmp /usr/TMP &

Here are some representative timings (start == boot, stop == shutdown):
[9:26] abit:/tmp > egrep '(stop|start)\) .*  tmp' /var/log/messages.3
Mar 19 20:53:55 abit rc.local: (stop) starting  tmp /tmp/ /usr/TMP
Mar 19 20:53:57 abit rc.local: (stop) finished  tmp /tmp/ /usr/TMP
Mar 20 09:31:18 abit rc.local: (start) starting  tmp /usr/TMP/ /tmp
Mar 20 09:31:55 abit rc.local: (start) finished  tmp /usr/TMP/ /tmp
Mar 20 21:07:37 abit rc.local: (stop) starting  tmp /tmp/ /usr/TMP
Mar 20 21:07:41 abit rc.local: (stop) finished  tmp /tmp/ /usr/TMP
Mar 21 20:33:21 abit rc.local: (start) starting  tmp /usr/TMP/ /tmp
Mar 21 20:34:17 abit rc.local: (start) finished  tmp /usr/TMP/ /tmp

There is never a hang or pause, in fact the process would be transparent if I didnt have xosview in a corner window. The problem probably isn't the way rsync, /tmpfs or 2.4 work, so you may want to look elsewhere.

kernel: 2.4.30-rc1
cpu/mem: athlon XP 2800, 1GB PC2700
rsync: 2.6.3
disk: 3xRAID-5 (old 20GB PATA drives, about 50MB/s throughput)

[9:07] abit:/tmp > df /tmp
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                   460800    159492    301308  35% /tmp
[9:18] abit:/tmp > ls -la
total 7729
drwxrwxrwt  11 root   root       480 Mar 26 08:57 .
drwxr-xr-x  26 root   root      1024 Mar 26 08:51 ..
-r--r--r--   1 root   root        11 Mar 26 08:52 .X0-lock
drwxrwxrwt   2 root   root        60 Mar 26 08:52 .X11-unix
drwxrwxr-x  18 tim    tim     163900 Mar 23 23:34 .ccache
drwxrwxrwt   2 xfs    xfs         60 Mar 26 08:52 .font-unix
drwx------   3 tim    tim         60 Jan 11 23:35 .wine-tim
drwx------   2 root   root        40 Feb  6 00:44 .xf86config1053
drwx------   2 root   root        40 Feb  6 00:46 .xf86config1077
-rw-------   1 tim    tim          0 Feb  9 22:24 0vws1uvh.zip
-rw-------   1 tim    tim          0 Feb  9 22:22 56gtsq4w.zip
-rw-rw-r--   1 tim    tim     178108 Mar 15 21:35 SATA_HotPlug.pdf
-rw-rw-r--   1 tim    tim     234529 Mar 15 21:33 SATA_PCI_CardBusHost.pdf
-rw-rw-r--   1 tim    tim     175906 Mar 15 21:36 SATA_illus_guide.pdf
srwx------   1 tim    tim          0 Mar 26 08:52 afterstep-500.DISPLAY=:0.0
-rw-r--r--   1 root   root     16686 Jan 30 17:18 bonnie.log
-rw-r--r--   1 root   root     35644 Jan  8 18:08 build.log
drwxr-xr-x   2 tim    tim         40 Mar  7 21:05 hsperfdata_tim
drwxr-xr-x   2 nobody nobody      80 Dec 25 23:56 junkbuster
drwx------   2 tim    tim         60 Mar 16 22:46 mcop-tim
-rw-r--r--   1 root   root    485728 Feb 21 12:18 rsync.log
-rw-rw-r--   1 tim    tim    6693164 Mar 15 21:40 serialata10a.pdf
-rw-rw-r--   1 tim    tim      27475 Jan 31 17:07 smp.log
-rw-r--r--   1 root   root         0 Feb 12 15:19 tmp.dd

t.

Ray Van Dolson wrote:
I've set up a 1GB tmpfs filesystem on a system with a single IDE disk and
2GB's of memory.  I'm storing a large amount of RRD files (~300MB) on the
tmpfs filesystem to make their generation a bit speedier... this part works
great.

However, I want to rsync these files over from time to time to a directory on
the local filesystem (same physical server).  I'm using rsync 2.6.4pre3 and
am hoping to understand a bit better what is happening.

When I run rsync -av /path/to/tmpfs /path/to/diskdir things move along pretty
fast for while, then there's a big pause... sometimes for up to 30+ seconds
where nothing seems to be happening, but all IO on the system ceases (can't do
anything in another xterm).  Then rsync starts moving along again for a while,
and then pauses again... after about three such pauses it finishes the entire
rsync process.

I'm wondering what I can do to speed things up... perhaps whatever processes
that write to the tmpfs filesystem are fighting with rsync... but doesn't
rsync just need read access?

I've also tried with -W (copy whole file) and used a smaller -B value.
Anyways, I'll explain a bit about the curren scenario:

1. Daemon on system receives data from remote devices.
2. Daemon calls rrdtool to write a .rrd file to the tmpfs filesystem.
3. rsync runs periodically (every 5 minutes) to sync up the tmpfs filesystem
   with a directory on the local filesystem.

The tmpfs filesystem is a directory with about 100 directories inside of it,
each containing rrd files.  I'm considering using a script to just rsync one
of these subdirectories at a time over a period of time to "distribute" the
load.

The main issue is that while rsync is running and enters these random 30
second "pauses", no IO can happen and things get really backed up on the
system and it ends up being faster for me to just dump the tmpfs completely
and go back to writing directly to disk as slow as that was...

Any suggestions?


-- | for direct mail add "private_" in front of user name -- To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to