* Re: btrfs reads only 4k blocks -- how to improve?
2010-12-16 12:31 btrfs reads only 4k blocks -- how to improve? Jörg Sommer
@ 2010-12-16 22:12 ` Erik Logtenberg
[not found] ` <4D0A0E2E.5010204@gmail.com>
1 sibling, 0 replies; 3+ messages in thread
From: Erik Logtenberg @ 2010-12-16 22:12 UTC (permalink / raw)
Cc: linux-btrfs
Hi,
I'm not really answering your question, but may I suggest you change
your backup strategy to leverage one of btrfs main features: instead of
using the hardlink-feature of rsync, use snapshots. Btrfs snapshots are
way better than a hardlink-tree, for multiple reasons:
- It uses less diskspace, because only real changes take up extra space=
;
- It performs way better, because making a snapshot is really cheap
while making the entire hardlink tree can be expensive, especially on
large backups (many files);
- With the hardlink feature of rsync, it is not possible to reliably
backup existing hardlinks. Now that you're no longer using hardlinks fo=
r
the backup itself, you can easily add the -H switch to rsync;
- Generally rsync can not reliably resume a backup with --link-dest whe=
n
it's interrupted, for instance by a network failure. In that case you
have to trash the partial backup and start over. Now that you're no
longer using --link-dest, you can resume just fine.
I used your setup (using rsnapshot, which is a rsync wrapper) and
switched over to snapshots (and for that reason to btrfs) exactly
because of these advantages.
Kind regards,
Erik.
On 12/16/2010 01:31 PM, J=C3=B6rg Sommer wrote:
> Hi,
>=20
> I have a btrfs that conains many hardlinks. I'm using rsync to create
> backups. It creates the backup of a day by (hard=E2=80=90)linking the=
files
> (inodes) they haven't changed with the files from a former day.
>=20
> % find 2010-12-1[10]-00 -maxdepth 1
> 2010-12-10-00
> 2010-12-10-00/etc
> 2010-12-10-00/home
> 2010-12-10-00/root
> 2010-12-10-00/srv
> 2010-12-10-00/usr
> 2010-12-10-00/var
> 2010-12-11-00
> 2010-12-11-00/etc
> 2010-12-11-00/home
> 2010-12-11-00/root
> 2010-12-11-00/srv
> 2010-12-11-00/usr
> 2010-12-11-00/var
> % stat 2010-12-1[01]-00/etc/services
> File: =E2=80=9E2010-12-10-00/etc/services=E2=80=9C
> Size: 18480 Blocks: 40 IO Block: 4096 regul=C3=A4=
re Datei
> Device: 15h/21d Inode: 7945534 Links: 7
> Access: (0644/-rw-r--r--) Uid: ( 1000/ateo-service) Gid: ( 34/ =
backup)
> Access: 2010-11-19 02:26:01.000000000 +0100
> Modify: 2008-08-28 04:00:12.000000000 +0200
> Change: 2010-12-14 07:56:19.999523630 +0100
> File: =E2=80=9E2010-12-11-00/etc/services=E2=80=9C
> Size: 18480 Blocks: 40 IO Block: 4096 regul=C3=A4=
re Datei
> Device: 15h/21d Inode: 7945534 Links: 7
> Access: (0644/-rw-r--r--) Uid: ( 1000/ateo-service) Gid: ( 34/ =
backup)
> Access: 2010-11-19 02:26:01.000000000 +0100
> Modify: 2008-08-28 04:00:12.000000000 +0200
> Change: 2010-12-14 07:56:19.999523630 +0100
>=20
> When running rm -r to remove an old backup or running rsync I see the
> average size of a read or a write request ist 4k. This leads to a ver=
y
> bad throughput of fewer than 2MByte/s. I'm using atop to watch these
> numbers.
>=20
> rsync is mostly doing this:
>=20
> 02:54:30.027895 link("../2010-12-14-00/home/peter/dump_070903", "home=
/peter/dump_070903") =3D 0
> 02:54:30.028398 lstat("home/peter/dump_070904", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.028475 lstat("../2010-12-14-00/home/peter/dump_070904", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813608, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3244, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/05-01:=
13:00, st_ctime=3D2010/12/14-08:08:31}) =3D 0
> 02:54:30.028598 lgetxattr("../2010-12-14-00/home/peter/dump_070904", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.028679 lgetxattr("../2010-12-14-00/home/peter/dump_070904", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.028734 llistxattr("../2010-12-14-00/home/peter/dump_070904",=
0x1612800, 1024) =3D 17
> 02:54:30.028783 link("../2010-12-14-00/home/peter/dump_070904", "home=
/peter/dump_070904") =3D 0
> 02:54:30.029078 lstat("home/peter/dump_070905", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.029127 lstat("../2010-12-14-00/home/peter/dump_070905", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813609, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3251, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/06-01:=
13:00, st_ctime=3D2010/12/14-08:08:31}) =3D 0
> 02:54:30.029226 lgetxattr("../2010-12-14-00/home/peter/dump_070905", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.029290 lgetxattr("../2010-12-14-00/home/peter/dump_070905", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.029343 llistxattr("../2010-12-14-00/home/peter/dump_070905",=
0x1612800, 1024) =3D 17
> 02:54:30.029389 link("../2010-12-14-00/home/peter/dump_070905", "home=
/peter/dump_070905") =3D 0
> 02:54:30.029564 lstat("home/peter/dump_070906", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.029612 lstat("../2010-12-14-00/home/peter/dump_070906", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813610, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3183, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/07-01:=
13:00, st_ctime=3D2010/12/14-08:08:31}) =3D 0
> 02:54:30.029704 lgetxattr("../2010-12-14-00/home/peter/dump_070906", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.029767 lgetxattr("../2010-12-14-00/home/peter/dump_070906", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.029819 llistxattr("../2010-12-14-00/home/peter/dump_070906",=
0x1612800, 1024) =3D 17
> 02:54:30.029865 link("../2010-12-14-00/home/peter/dump_070906", "home=
/peter/dump_070906") =3D 0
> 02:54:30.030097 lstat("home/peter/dump_070907", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.030145 lstat("../2010-12-14-00/home/peter/dump_070907", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813611, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3239, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/08-01:=
13:00, st_ctime=3D2010/12/14-08:08:31}) =3D 0
> 02:54:30.030240 lgetxattr("../2010-12-14-00/home/peter/dump_070907", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.030601 lgetxattr("../2010-12-14-00/home/peter/dump_070907", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.030658 llistxattr("../2010-12-14-00/home/peter/dump_070907",=
0x1612800, 1024) =3D 17
> 02:54:30.030707 link("../2010-12-14-00/home/peter/dump_070907", "home=
/peter/dump_070907") =3D 0
> 02:54:30.030913 lstat("home/peter/dump_070908", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.030964 lstat("../2010-12-14-00/home/peter/dump_070908", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813612, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D5, st=
_size=3D2802, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/09-01:=
13:00, st_ctime=3D2010/12/14-08:08:31}) =3D 0
> 02:54:30.031061 lgetxattr("../2010-12-14-00/home/peter/dump_070908", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.032196 lgetxattr("../2010-12-14-00/home/peter/dump_070908", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.032272 llistxattr("../2010-12-14-00/home/peter/dump_070908",=
0x1612800, 1024) =3D 17
> 02:54:30.032320 link("../2010-12-14-00/home/peter/dump_070908", "home=
/peter/dump_070908") =3D 0
> 02:54:30.032576 lstat("home/peter/dump_070909", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.032628 lstat("../2010-12-14-00/home/peter/dump_070909", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813613, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D5, st=
_size=3D2672, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/10-01:=
13:00, st_ctime=3D2010/12/14-08:08:31}) =3D 0
> 02:54:30.032728 lgetxattr("../2010-12-14-00/home/peter/dump_070909", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.032793 lgetxattr("../2010-12-14-00/home/peter/dump_070909", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.032846 llistxattr("../2010-12-14-00/home/peter/dump_070909",=
0x1612800, 1024) =3D 17
> 02:54:30.032893 link("../2010-12-14-00/home/peter/dump_070909", "home=
/peter/dump_070909") =3D 0
> 02:54:30.033094 lstat("home/peter/dump_070910", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.033142 lstat("../2010-12-14-00/home/peter/dump_070910", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813614, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3393, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/11-01:=
13:00, st_ctime=3D2010/12/14-08:08:31}) =3D 0
> 02:54:30.033237 lgetxattr("../2010-12-14-00/home/peter/dump_070910", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.033902 lgetxattr("../2010-12-14-00/home/peter/dump_070910", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.033960 llistxattr("../2010-12-14-00/home/peter/dump_070910",=
0x1612800, 1024) =3D 17
> 02:54:30.034018 link("../2010-12-14-00/home/peter/dump_070910", "home=
/peter/dump_070910") =3D 0
> 02:54:30.034123 lstat("home/peter/dump_070911", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.034171 lstat("../2010-12-14-00/home/peter/dump_070911", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813615, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3340, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/12-01:=
13:00, st_ctime=3D2010/12/14-08:08:32}) =3D 0
> 02:54:30.034264 lgetxattr("../2010-12-14-00/home/peter/dump_070911", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.034324 lgetxattr("../2010-12-14-00/home/peter/dump_070911", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.034376 llistxattr("../2010-12-14-00/home/peter/dump_070911",=
0x1612800, 1024) =3D 17
> 02:54:30.036405 link("../2010-12-14-00/home/peter/dump_070911", "home=
/peter/dump_070911") =3D 0
> 02:54:30.036986 lstat("home/peter/dump_070912", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.037045 lstat("../2010-12-14-00/home/peter/dump_070912", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813616, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3407, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/13-01:=
13:00, st_ctime=3D2010/12/14-08:08:32}) =3D 0
> 02:54:30.037155 lgetxattr("../2010-12-14-00/home/peter/dump_070912", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.057221 lgetxattr("../2010-12-14-00/home/peter/dump_070912", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.057279 llistxattr("../2010-12-14-00/home/peter/dump_070912",=
0x1612800, 1024) =3D 17
> 02:54:30.057347 link("../2010-12-14-00/home/peter/dump_070912", "home=
/peter/dump_070912") =3D 0
> 02:54:30.057574 lstat("home/peter/dump_070913", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.057625 lstat("../2010-12-14-00/home/peter/dump_070913", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813617, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3335, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/14-01:=
13:00, st_ctime=3D2010/12/14-08:08:32}) =3D 0
> 02:54:30.057724 lgetxattr("../2010-12-14-00/home/peter/dump_070913", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.057788 lgetxattr("../2010-12-14-00/home/peter/dump_070913", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.057841 llistxattr("../2010-12-14-00/home/peter/dump_070913",=
0x1612800, 1024) =3D 17
> 02:54:30.057889 link("../2010-12-14-00/home/peter/dump_070913", "home=
/peter/dump_070913") =3D 0
> 02:54:30.058126 lstat("home/peter/dump_070914", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.058175 lstat("../2010-12-14-00/home/peter/dump_070914", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813618, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3166, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/15-01:=
13:00, st_ctime=3D2010/12/14-08:08:32}) =3D 0
> 02:54:30.058269 lgetxattr("../2010-12-14-00/home/peter/dump_070914", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.058332 lgetxattr("../2010-12-14-00/home/peter/dump_070914", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.058385 llistxattr("../2010-12-14-00/home/peter/dump_070914",=
0x1612800, 1024) =3D 17
> 02:54:30.058432 link("../2010-12-14-00/home/peter/dump_070914", "home=
/peter/dump_070914") =3D 0
> 02:54:30.058674 lstat("home/peter/dump_070915", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.058722 lstat("../2010-12-14-00/home/peter/dump_070915", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813619, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D5, st=
_size=3D3056, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/16-01:=
13:00, st_ctime=3D2010/12/14-08:08:32}) =3D 0
> 02:54:30.059068 lgetxattr("../2010-12-14-00/home/peter/dump_070915", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.059139 lgetxattr("../2010-12-14-00/home/peter/dump_070915", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.059192 llistxattr("../2010-12-14-00/home/peter/dump_070915",=
0x1612800, 1024) =3D 17
> 02:54:30.059241 link("../2010-12-14-00/home/peter/dump_070915", "home=
/peter/dump_070915") =3D 0
> 02:54:30.059513 lstat("home/peter/dump_070916", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.059568 lstat("../2010-12-14-00/home/peter/dump_070916", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813620, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D5, st=
_size=3D2864, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/17-01:=
13:00, st_ctime=3D2010/12/14-08:08:33}) =3D 0
> 02:54:30.100912 lgetxattr("../2010-12-14-00/home/peter/dump_070916", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.100986 lgetxattr("../2010-12-14-00/home/peter/dump_070916", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.101042 llistxattr("../2010-12-14-00/home/peter/dump_070916",=
0x1612800, 1024) =3D 17
> 02:54:30.101091 link("../2010-12-14-00/home/peter/dump_070916", "home=
/peter/dump_070916") =3D 0
> 02:54:30.101488 lstat("home/peter/dump_070917", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.101543 lstat("../2010-12-14-00/home/peter/dump_070917", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813621, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3220, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/18-01:=
13:00, st_ctime=3D2010/12/14-08:08:33}) =3D 0
> 02:54:30.101646 lgetxattr("../2010-12-14-00/home/peter/dump_070917", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.101714 lgetxattr("../2010-12-14-00/home/peter/dump_070917", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.101769 llistxattr("../2010-12-14-00/home/peter/dump_070917",=
0x1612800, 1024) =3D 17
> 02:54:30.101819 link("../2010-12-14-00/home/peter/dump_070917", "home=
/peter/dump_070917") =3D 0
> 02:54:30.102024 lstat("home/peter/dump_070918", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.102075 lstat("../2010-12-14-00/home/peter/dump_070918", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813622, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3184, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/19-01:=
13:00, st_ctime=3D2010/12/14-08:08:33}) =3D 0
> 02:54:30.102172 lgetxattr("../2010-12-14-00/home/peter/dump_070918", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.102237 lgetxattr("../2010-12-14-00/home/peter/dump_070918", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.102291 llistxattr("../2010-12-14-00/home/peter/dump_070918",=
0x1612800, 1024) =3D 17
> 02:54:30.102339 link("../2010-12-14-00/home/peter/dump_070918", "home=
/peter/dump_070918") =3D 0
> 02:54:30.102559 lstat("home/peter/dump_070919", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.102609 lstat("../2010-12-14-00/home/peter/dump_070919", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813623, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D6, st=
_size=3D3275, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/20-01:=
13:00, st_ctime=3D2010/12/14-08:08:33}) =3D 0
> 02:54:30.942826 lgetxattr("../2010-12-14-00/home/peter/dump_070919", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.942916 lgetxattr("../2010-12-14-00/home/peter/dump_070919", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.942977 llistxattr("../2010-12-14-00/home/peter/dump_070919",=
0x1612800, 1024) =3D 17
> 02:54:30.943029 link("../2010-12-14-00/home/peter/dump_070919", "home=
/peter/dump_070919") =3D 0
> 02:54:30.945281 lstat("home/peter/dump_070920", 0x7fffd17410c0) =3D -=
1 ENOENT (No such file or directory)
> 02:54:30.945375 lstat("../2010-12-14-00/home/peter/dump_070920", {st_=
dev=3Dmakedev(0, 21), st_ino=3D9813624, st_mode=3DS_IFREG|0644, st_nlin=
k=3D7, st_uid=3D1000, st_gid=3D34, st_blksize=3D4096, st_blocks=3D5, st=
_size=3D3006, st_atime=3D2010/11/20-08:25:40, st_mtime=3D2007/09/21-01:=
13:00, st_ctime=3D2010/12/14-08:08:33}) =3D 0
> 02:54:30.945500 lgetxattr("../2010-12-14-00/home/peter/dump_070920", =
"user.rsync.%stat", "100644 0,0 1001:1000", 255) =3D 20
> 02:54:30.945582 lgetxattr("../2010-12-14-00/home/peter/dump_070920", =
"user.rsync.%aacl", 0x0, 0) =3D -1 ENODATA (No data available)
> 02:54:30.945639 llistxattr("../2010-12-14-00/home/peter/dump_070920",=
0x1612800, 1024) =3D 17
> 02:54:30.945691 link("../2010-12-14-00/home/peter/dump_070920", "home=
/peter/dump_070920") =3D 0
>=20
> and rm is mostly doing that:
>=20
> unlinkat(8, "TERASSE_01.jpg", 0) =3D 0
> unlinkat(8, "TERASSE_02-600x470.jpg", 0) =3D 0
> unlinkat(8, "TERASSE_02.jpg", 0) =3D 0
> unlinkat(8, "TERASSE_03-600x463.jpg", 0) =3D 0
> unlinkat(8, "TERASSE_03.jpg", 0) =3D 0
> unlinkat(8, "TERASSE_04-600x466.jpg", 0) =3D 0
> unlinkat(8, "TERASSE_04.jpg", 0) =3D 0
> close(8) =3D 0
> unlinkat(6, "pic", AT_REMOVEDIR) =3D 0
> close(6) =3D 0
> unlinkat(4, "fuerte", AT_REMOVEDIR) =3D 0
> newfstatat(4, "fuerteventura_elba_sara", {st_mode=3DS_IFDIR|0777, st_=
size=3D448, ...}, AT_SYMLINK_NOFOLLOW) =3D 0
> openat(4, "fuerteventura_elba_sara", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_D=
IRECTORY) =3D 3
> fcntl(3, F_GETFD) =3D 0
> fcntl(3, F_SETFD, FD_CLOEXEC) =3D 0
> fstat(3, {st_mode=3DS_IFDIR|0777, st_size=3D448, ...}) =3D 0
> fcntl(3, F_GETFL) =3D 0x18800 (flags O_RDONLY|O=
_NONBLOCK|O_LARGEFILE|O_DIRECTORY)
> fcntl(3, F_SETFD, FD_CLOEXEC) =3D 0
> fcntl(3, F_DUPFD, 3) =3D 6
> fcntl(6, F_GETFD) =3D 0
> fcntl(6, F_SETFD, FD_CLOEXEC) =3D 0
> getdents(3, /* 15 entries */, 32768) =3D 568
> getdents(3, /* 0 entries */, 32768) =3D 0
> close(3) =3D 0
> unlinkat(6, "beschreibung.php3", 0) =3D 0
> unlinkat(6, "buchungsanfrage.php3", 0) =3D 0
> unlinkat(6, "buchungsanfrage_danke.php3", 0) =3D 0
> unlinkat(6, "buchungsanfrage_formular.php3", 0) =3D 0
> unlinkat(6, "buchungsanfragenavi.php3", 0) =3D 0
> unlinkat(6, "email_gen.php3", 0) =3D 0
> unlinkat(6, "fotos.php3", 0) =3D 0
>=20
> Now, the question is, what can I do to increase the throughput? Can I
> make btrfs caches more aggressively?
>=20
> % free -m
> total used free shared buffers ca=
ched
> Mem: 3006 2696 310 0 5 =
2098
> -/+ buffers/cache: 591 2414
> Swap: 0 0 0
>=20
> # smartctl -i /dev/sdb
> smartctl 5.40 2010-07-12 r3124 [x86_64-unknown-linux-gnu] (local buil=
d)
> Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforg=
e.net
>=20
> =3D=3D=3D START OF INFORMATION SECTION =3D=3D=3D
> Model Family: Western Digital Caviar Green (Adv. Format) family
> Device Model: WDC WD15EARS-00MVWB0
> Serial Number: WD-WCAZA1548514
> Firmware Version: 51.0AB51
> User Capacity: 1.500.301.910.016 bytes
> Device is: In smartctl database [for details use: -P show]
> ATA Version is: 8
> ATA Standard is: Exact ATA specification draft version not indicated
> Local Time is: Thu Dec 16 13:28:50 2010 CET
> SMART support is: Available - device has SMART capability.
> SMART support is: Enabled
>=20
> Should I provide more informations?
>=20
> Bye, J=C3=B6rg.
>=20
> PS: Please, Cc me. I'm not subscribed the list.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" =
in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread