|  | @@ -798,6 +798,67 @@ If you run into that, try this:
 | 
	
		
			
				|  |  |    the parent directory (or even everything)
 | 
	
		
			
				|  |  |  - mount the repo using FUSE and use some file manager
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +.. _expected_performance:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +What's the expected backup performance?
 | 
	
		
			
				|  |  | +---------------------------------------
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +A first backup will usually be somehow "slow" because there is a lot of data
 | 
	
		
			
				|  |  | +to process. Performance here depends on a lot of factors, so it is hard to
 | 
	
		
			
				|  |  | +give specific numbers.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Subsequent backups are usually very fast if most files are unchanged and only
 | 
	
		
			
				|  |  | +a few are new or modified. The high performance on unchanged files primarily depends
 | 
	
		
			
				|  |  | +only on a few factors (like fs recursion + metadata reading performance and the
 | 
	
		
			
				|  |  | +files cache working as expected) and much less on other factors.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +E.g., for this setup:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- server grade machine (4C/8T 2013 Xeon, 64GB RAM, 2x good 7200RPM disks)
 | 
	
		
			
				|  |  | +- local zfs filesystem (mirrored) containing the backup source data
 | 
	
		
			
				|  |  | +- repository is remote (does not matter much for unchanged files)
 | 
	
		
			
				|  |  | +- backup job runs while machine is otherwise idle
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +The observed performance is that |project_name| can process about
 | 
	
		
			
				|  |  | +**1 million unchanged files (and a few small changed ones) in 4 minutes!**
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +If you are seeing much less than that in similar circumstances, read the next
 | 
	
		
			
				|  |  | +few FAQ entries below.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.. _slow_backup:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Why is backup slow for me?
 | 
	
		
			
				|  |  | +--------------------------
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +So, if you feel your |project_name| backup is too slow somehow, you should find out why.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +The usual way to approach this is to add ``--list --filter=AME --stats`` to your
 | 
	
		
			
				|  |  | +``borg create`` call to produce more log output, including a file list (with file status
 | 
	
		
			
				|  |  | +characters) and also some statistics at the end of the backup.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Then you do the backup and look at the log output:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- stats: Do you really have little changes or are there more changes than you thought?
 | 
	
		
			
				|  |  | +  In the stats you can see the overall volume of changed data, which needed to be
 | 
	
		
			
				|  |  | +  added to the repo. If that is a lot, that can be the reason why it is slow.
 | 
	
		
			
				|  |  | +- ``A`` status ("added") in the file list:
 | 
	
		
			
				|  |  | +  If you see that often, you have a lot of new files (files that |project_name| did not find
 | 
	
		
			
				|  |  | +  in the files cache). If you think there is something wrong with that (the file was there
 | 
	
		
			
				|  |  | +  already in the previous backup), please read the FAQ entries below.
 | 
	
		
			
				|  |  | +- ``M`` status ("modified") in the file list:
 | 
	
		
			
				|  |  | +  If you see that often, |project_name| thinks that a lot of your files might be modified
 | 
	
		
			
				|  |  | +  (|project_name| found them in the files cache, but the metadata read from the filesystem did
 | 
	
		
			
				|  |  | +  not match the metadata stored in the files cache).
 | 
	
		
			
				|  |  | +  In such a case, |project_name| will need to process the files' contents completely, which is
 | 
	
		
			
				|  |  | +  much slower than processing unmodified files (|project_name| does not read their contents!).
 | 
	
		
			
				|  |  | +  The metadata values used in this comparison are determined by the ``--files-cache`` option
 | 
	
		
			
				|  |  | +  and could be e.g. size, ctime and inode number (see the ``borg create`` docs for more
 | 
	
		
			
				|  |  | +  details and potential issues).
 | 
	
		
			
				|  |  | +  You can use the ``stat`` command on files to manually look at fs metadata to debug if
 | 
	
		
			
				|  |  | +  there is any unexpected change triggering the ``M`` status.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +See also the next few FAQ entries for more details.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  .. _a_status_oddity:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  I am seeing 'A' (added) status for an unchanged file!?
 |