[Samba] Possible Issue with Samba Blocking I/O and CPU

Jeremy Allison jra at samba.org
Fri Jun 11 12:17:58 MDT 2010


On Fri, Jun 11, 2010 at 08:01:58AM -0400, Andy Liebman wrote:
>
>> According to Jeremy, using "write cache size = 262144", you end up with a 256
>> _megabyte_ cache for _each_ smbd process.  Apparently the setting value is in
>> kilobytes, not bytes.  With 10 active users that equals ~2.5GB of system
>> (virtual) memory allocated to smbd read/write cache.  This would definitely
>> explain why you're masking any underlying kernel I/O problem.  As Jeremy said,
>> with this configuration, you're now rarely touching the disks.
>>
>>    
> Hi Stan,
>
> This contradicts what it says in "man smb.conf".   Can we clarify what  
> is correct?
>
>
>      write cache size (S)
>
>
>    If this integer parameter is set to non-zero value, Samba will
>    create an in-memory cache for each oplocked file (it does /not/ do
>    this for non-oplocked files). All writes that the client does not
>    request to be flushed directly to disk will be stored in this cache
>    if possible. The cache is flushed onto disk when a write comes in
>    whose offset would not fit into the cache or when the file is closed
>    by the client. Reads for the file are also served from this cache if
>    the data is stored within it.
>
>    This cache allows Samba to batch client writes into a more efficient
>    write size for RAID disks (i.e. writes may be tuned to be the RAID
>    stripe size) and can improve performance on systems where the disk
>    subsystem is a bottleneck but there is free memory for userspace
>    programs.
>
>    The integer parameter specifies the size of this cache (per oplocked
>    file) in bytes.

The man page is correct, the size is in bytes.

Jeremy.


More information about the samba mailing list