Performance problems with millions of inodes
Hi,
sorry if this has been asked before, I am new to this mailing list. I didn't find any hints in the FAQ or by googling ...
I have a backup server driving two kinds of backup software: bacula and backuppc. bacula saves it's backups on raid1, backuppc on raid2 (different hardware, but both fast hardware raids).
I have massive performance problems with backuppc which I tracked down to performance problems of the filesystem on raid2 (I think so). The main difference between the two backup systems is that backuppc uses millions of inodes for it's backup (in fact it duplicates the directory structure of the backup client).
raid1 consists of 91675 inodes, raid2 of 143646439. The filesystems were created without any options. raid1 is about 7 TB, raid2 about 10TB. Both filesystems are mounted with options '(rw,noatime,nodiratime,ihashsize=65536)'.
I used bonnie++ to benchmark both filesystems. Here are the results of 'bonnie++ -u root -f -n 10:0:0:1000':
raid1:
-------------------
Sequential Output: 82505 K/sec
Sequential Input : 102192 K/sec
Sequential file creation: 7184/sec
Random file creation : 17277/sec
raid2:
-------------------
Sequential Output: 124802 K/sec
Sequential Input : 109158 K/sec
Sequential file creation: 123/sec
Random file creation : 138/sec
As you can see, raid2's throughput is higher than raid1's. But the file creation times are rather slow ...
Maybe the 143 million inodes cause this effect? Any idea how to avoid it?
Signature · 7 lines
Regards Christoph ________________________________________________________________________ Christoph Litauer [email protected] Uni Koblenz, Computing Center, http://www.uni-koblenz.de/~litauer Postfach 201602, 56016 Koblenz Fon: +49 261 287-1311, Fax: -100 1311 PGP-Fingerprint: F39C E314 2650 650D 8092 9514 3A56 FBD8 79E3 27B2
Quoted 35 lines · Christoph Litauer
Hi,
sorry if this has been asked before, I am new to this mailing list. I didn't find any hints in the FAQ or by googling ...
I have a backup server driving two kinds of backup software: bacula and backuppc. bacula saves it's backups on raid1, backuppc on raid2 (different hardware, but both fast hardware raids).
I have massive performance problems with backuppc which I tracked down to performance problems of the filesystem on raid2 (I think so). The main difference between the two backup systems is that backuppc uses millions of inodes for it's backup (in fact it duplicates the directory structure of the backup client).raid1 consists of 91675 inodes, raid2 of 143646439. The filesystems were created without any options. raid1 is about 7 TB, raid2 about 10TB. Both filesystems are mounted with options '(rw,noatime,nodiratime,ihashsize=65536)'.
I used bonnie++ to benchmark both filesystems. Here are the results of 'bonnie++ -u root -f -n 10:0:0:1000':
raid1:
-------------------
Sequential Output: 82505 K/sec
Sequential Input : 102192 K/sec
Sequential file creation: 7184/sec
Random file creation : 17277/secraid2:
-------------------
Sequential Output: 124802 K/sec
Sequential Input : 109158 K/sec
Sequential file creation: 123/sec
Random file creation : 138/sec
Quoted 5 lines
As you can see, raid2's throughput is higher than raid1's. But the file creation times are rather slow ...
Maybe the 143 million inodes cause this effect? Any idea how to avoid it?
Just another (xfs_)info about raid2:
meta-data=/dev/backuppc/backuppc isize=256 agcount=32, agsize=79691776 blks
= sectsz=512 attr=0
data = bsize=4096 blocks=2550136832, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal bsize=4096 blocks=32768, version=1
= sectsz=512 sunit=0 blks, lazy-count=0
realtime =none extsz=4096 blocks=0, rtextents=0Signature · 7 lines
Regards Christoph ________________________________________________________________________ Christoph Litauer [email protected] Uni Koblenz, Computing Center, http://www.uni-koblenz.de/~litauer Postfach 201602, 56016 Koblenz Fon: +49 261 287-1311, Fax: -100 1311 PGP-Fingerprint: F39C E314 2650 650D 8092 9514 3A56 FBD8 79E3 27B2
Le Wed, 25 Jun 2008 16:46:30 +0200
Christoph Litauer <[email protected]> écrivait:
Quoted 3 lines
Quoted 3 lines
Maybe the 143 million inodes cause this effect? Any idea how to avoid it?
Maybe you should try to add a "nobarrier" option at mount on the slowest machine. Barriers can slow down operation tremendously...
Signature · 3 lines
---------------------------------------- Emmanuel Florac | Intellique ----------------------------------------
What type of RAID? If striping is involved, perhaps you should investigate the "su" and "sw" suboptions.
I also found some performance improvement with "-l lazy-count=1", although you may not wish to slow down repair times for a backup volume.
Signature · 5 lines
Mark
"What better place to find oneself than
on the streets of one's home village?"
--Capt. Jean-Luc Picard, "Family"Quoted 9 lines · Emmanuel Florac
Le Wed, 25 Jun 2008 16:46:30 +0200
Christoph Litauer <[email protected]> écrivait:Quoted 2 lines
Quoted 2 lines
Maybe the 143 million inodes cause this effect? Any idea how to avoid it?
Maybe you should try to add a "nobarrier" option at mount on the slowest machine. Barriers can slow down operation tremendously...
Thanks for this hint. nobarrier improved file creation performance significantly (about 50 times).
Signature · 7 lines
Regards Christoph ________________________________________________________________________ Christoph Litauer [email protected] Uni Koblenz, Computing Center, http://www.uni-koblenz.de/~litauer Postfach 201602, 56016 Koblenz Fon: +49 261 287-1311, Fax: -100 1311 PGP-Fingerprint: F39C E314 2650 650D 8092 9514 3A56 FBD8 79E3 27B2
Quoted 36 lines · Christoph Litauer
Hi,
sorry if this has been asked before, I am new to this mailing list. I didn't find any hints in the FAQ or by googling ...
I have a backup server driving two kinds of backup software: bacula and backuppc. bacula saves it's backups on raid1, backuppc on raid2 (different hardware, but both fast hardware raids).
I have massive performance problems with backuppc which I tracked down to performance problems of the filesystem on raid2 (I think so). The main difference between the two backup systems is that backuppc uses millions of inodes for it's backup (in fact it duplicates the directory structure of the backup client).raid1 consists of 91675 inodes, raid2 of 143646439. The filesystems were created without any options. raid1 is about 7 TB, raid2 about 10TB. Both filesystems are mounted with options '(rw,noatime,nodiratime,ihashsize=65536)'.
I used bonnie++ to benchmark both filesystems. Here are the results of 'bonnie++ -u root -f -n 10:0:0:1000':
raid1:
-------------------
Sequential Output: 82505 K/sec
Sequential Input : 102192 K/sec
Sequential file creation: 7184/sec
Random file creation : 17277/secraid2:
-------------------
Sequential Output: 124802 K/sec
Sequential Input : 109158 K/sec
Sequential file creation: 123/sec
Random file creation : 138/sec
Quoted 4 lines
As you can see, raid2's throughput is higher than raid1's. But the file creation times are rather slow ...
Maybe the 143 million inodes cause this effect?
Certain will be. You've got about 3 AGs that are holding inodes, so that's probably 35M+ inodes per AG. With the way allocation works, it's probably doing a dual-traversal of the AGI btree to find a free inode "near" to the parent and that is consuming lots and lots of CPU time.
Quoted 1 line
Any idea how to avoid it?
I had a protoype patch back when I was at SGI than stopped this search when the search reached a radius that was no longer "near". This greatly reduced CPU time for allocation on large inode count AGs and hence create rates increased significantly.
[Mark - IIRC that patch was in the miscellaneous patch tarball I left behind...]
The only other way of dealing with this is to use inode64 so that inodes get spread across the entire filesystem instead of just a few AGs at the start of the filesystem. It's too late to change the existing inodes, but new inodes would get spread around....
Cheers,
Dave.
Signature · 2 lines
Dave Chinner [email protected]
Quoted 39 lines · Dave Chinner
Quoted 38 lines · Christoph Litauer
Hi,
sorry if this has been asked before, I am new to this mailing list. I didn't find any hints in the FAQ or by googling ...
I have a backup server driving two kinds of backup software: bacula and backuppc. bacula saves it's backups on raid1, backuppc on raid2 (different hardware, but both fast hardware raids).
I have massive performance problems with backuppc which I tracked down to performance problems of the filesystem on raid2 (I think so). The main difference between the two backup systems is that backuppc uses millions of inodes for it's backup (in fact it duplicates the directory structure of the backup client).raid1 consists of 91675 inodes, raid2 of 143646439. The filesystems were created without any options. raid1 is about 7 TB, raid2 about 10TB. Both filesystems are mounted with options '(rw,noatime,nodiratime,ihashsize=65536)'.
I used bonnie++ to benchmark both filesystems. Here are the results of 'bonnie++ -u root -f -n 10:0:0:1000':
raid1:
-------------------
Sequential Output: 82505 K/sec
Sequential Input : 102192 K/sec
Sequential file creation: 7184/sec
Random file creation : 17277/secraid2:
-------------------
Sequential Output: 124802 K/sec
Sequential Input : 109158 K/sec
Sequential file creation: 123/sec
Random file creation : 138/secAs you can see, raid2's throughput is higher than raid1's. But the file creation times are rather slow ...
Quoted 7 lines
Quoted 1 line
Maybe the 143 million inodes cause this effect?
Certain will be. You've got about 3 AGs that are holding inodes, so that's probably 35M+ inodes per AG. With the way allocation works, it's probably doing a dual-traversal of the AGI btree to find a free inode "near" to the parent and that is consuming lots and lots of CPU time.
So, would more AGs improve performance? As backuppc is still in testing state (for me) it would be no problem to create a new xfs filesystem with a "better" configuration. I am afraid that the number of inodes will increase very much if I backup more clients and filesystems. So, what configuration would you recommend?
Quoted 8 lines
Quoted 2 lines
Any idea how to avoid it?
I had a protoype patch back when I was at SGI than stopped this search when the search reached a radius that was no longer "near". This greatly reduced CPU time for allocation on large inode count AGs and hence create rates increased significantly.
Quoted 7 lines
[Mark - IIRC that patch was in the miscellaneous patch tarball I left behind...]
The only other way of dealing with this is to use inode64 so that inodes get spread across the entire filesystem instead of just a few AGs at the start of the filesystem. It's too late to change the existing inodes, but new inodes would get spread around....
Unfortunatly my backup server is a 32 bit system ...
Signature · 7 lines
Regards Christoph ________________________________________________________________________ Christoph Litauer [email protected] Uni Koblenz, Computing Center, http://www.uni-koblenz.de/~litauer Postfach 201602, 56016 Koblenz Fon: +49 261 287-1311, Fax: -100 1311 PGP-Fingerprint: F39C E314 2650 650D 8092 9514 3A56 FBD8 79E3 27B2