On Tue, Apr 12, 2011 at 07:42:38AM +1000, Dave Chinner wrote:
> Depends on your samba configuration to how it does writes. If it is
> conigured to do sync writes then it will have all sorts of
> fragmentation problems. So without more details about the workload,
> the kernel that is being used, the fragmentation occurring (xfs_bmap
> is your friend) and the samba config, there's little that can be
> suggested here.
Very few people configure Samba to do sync writes, but even without
that I see files written by Samba heavily fragmented when the systems
operates under intense memory pressure. The CIFS protocol has very
small write sizes, and it seems like they do not always arrive in order.
If the system is under enough memory pressure to write them out already
before the previous fragment arrive it can cause very fragmented
extent maps. Enabling the "strict allocate" option in newer Samba
version fixes that problem by doing fallocates in larger chunks, which
from my observation always happen in order. The downside is that
current fallocate in XFS is not designed to be used in a fastpath,
and thus causes performance degradations during the actual write.