Existem algumas opções para o SAMBA melhorar o desempenho de leitura / gravação. Para o seu caso, pode ser uma opção importante o tamanho do cache de gravação . Aqui está uma citação do link .
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.Default: write cache size = 0
Example: write cache size = 262144 # for a 256k cache size per file
Você pode encontrar um exemplo de trabalho aqui: link e link
Você precisa ajustar essas opções na seção [global] do arquivo /etc/samba/smb.conf e precisa reiniciar o samba. Você pode verificar a página de manual do samba mencionada acima para esclarecer as opções.