Hi all, after some time (days of system uptime), network transfer through Samba became too slow (up to 1 Mbit/s). After restart, everything is back Ok. Any ideas whats wrong? Or which info should I provide to analyse it (step-by-step please, as I am Linux noob).
Hi Maxmilian, thanks much, czech is no problem, I posted this issue on english forum only to have wider possible “audience”. I will post my samba config soon (as soon as I find out how to get it ).
But to your last sentence - I would gladly put some log, configs, etc., but firstly I need to know which of them and how to get it So, for example - what kind of logs will be helpful?
P.
EDIT: Here it is
[global]
netbios name = turris-nas
display charset = UTF-8
interfaces = lo br-lan
server string = Turris Omnia NAS
unix charset = UTF-8
workgroup = WORKGROUP
browseable = yes
deadtime = 30
domain master = yes
encrypt passwords = true
enable core files = no
guest account = nobody
guest ok = yes
invalid users = root
local master = yes
load printers = no
map to guest = Bad User
max protocol = SMB3
min receivefile size = 16384
null passwords = yes
obey pam restrictions = yes
os level = 20
passdb backend = smbpasswd
preferred master = yes
printable = no
security = user
smb encrypt = disabled
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY IPTOS_LOWDELAY
syslog = 2
use sendfile = yes
writeable = yes
[homes]
comment = Home Directories
browsable = no
read only = no
create mode = 0750
[NAS]
path = /mnt/hdd1/nas
read only = no
guest ok = yes
[petki]
path = /mnt/hdd1/petki
valid users = petki
read only = no
guest ok = no
create mask = 700
directory mask = 700
[nikuska]
path = /mnt/hdd1/nikuska
valid users = nikuska
read only = no
guest ok = no
create mask = 700
directory mask = 700
First i would avoid using WORKGROUP as the name for workgroup. Second using “guest” in combination with “user” security option cause different handling from win10 clients for guest and real users. For “nas” share you can set the access via samba/unix rights , there is no need to use guest=yes option. Also sharing “homes” has additional handling between samba server and win clients (synced users/passwords). You can set it for individual user manually (like you have that per-user share definitions …)
ad_logs: you can increase verbosity of logging to syslog (or you can also define dedicated samba log )
ad_slowness: in some cases (when guest is on), win10 treat user (even correctly authed, but accessing guest share) as guests/nobody and such session sometimes is zombified even if session was correctly closed by client. That can get accumulated and until there is some timeout (for each), you have pretty much slow samba.
Additionally some win clients are having latest samba, while TOS is still pretty old version (so maybe as other suggested, update might help, but you can also force TOS to use SMB1 or SMB2 and not SMB3)
@justsomeguy - thanks, updated, but I have strange issue - after every restart of samba, my custom config /var/etc/smb.conf is replaced by default one. Do you have any idea why?
@Maxmilian_Picmaus - also thanks, so I changed WORKGROUP to TURRIS. To disabling guest - how can I than limit access through samba/unix rights? I set simply to all existing folders/files 777 and add “create mode = 777” under [NAS], or I understood it completely wrong? Sharing homes disabled, it was so or so not wanted. And to the logs - if upgrade to samba4 will not work, I will post them.
@Maxmilian_Picmaus - ok, so set 0775 and 0664 in config, but how to set such rights corresponding to already existing files and folders? Is there any trick, or should I just google it and find some script / chain of commands which will do it?
Btw, to that config overwrite - I found, that the issue is LuCi. I have set values in smb.conf directly, but I did not touch configuration in LuCi, so it was left with default values, which after every restart overwrote config… when I set corresponding values also here in LuCi, everything works.
You can use “recurse” option … chmod -R or/and chown -R
ad_smb.conf: it depends if that config is /tmp/etc/smb.conf (changes are not persistent) or /etc/samba/smb.conf (persistent) or /etc/config/samba(uci template, which is used with persistent config to generate volatile one) … if service is running, any changes without “uci commit” or “luci + save-and-apply” are usually lost. Direct changes in volatile version are lost every reboot or/and restart of samba service.
BTW:
… as it is a bit hidden in shared posts and linked external sources for expample …: https://accedian.com/enterprises/blog/troubleshooting-smb-performance. There are options to set min and max protocol “dialects” for server (and for clients).
Here is copy and paste from smb.conf manual.
protocol (max protocol)
SMB2 : Re-implementation of the SMB protocol. Used by Windows Vista and later versions of Windows. SMB2 has sub protocols available.
SMB2_02 : The earliest SMB2 version.
SMB2_10 : Windows 7 SMB2 version.
SMB2_22 : Early Windows 8 SMB2 version.
SMB2_24 : Windows 8 beta SMB2 version.
By default SMB2 selects the SMB2_10 variant.
SMB3 : New label of the SMB2 protocol rewrite with those these sub protocols:
SMB3_00 : Windows 8 SMB3 version. (mostly the same as SMB2_24)
SMB3_02 : Windows 8.1 SMB3 version.
SMB3_10 : early Windows 10 technical preview SMB3 version.
SMB3_11 : Windows 10 technical preview SMB3 version (maybe final).
By default SMB3 selects the SMB3_11 variant.
Depending on value(or if default is used) for min or max protocol option, samba daemon will offer/use range of dialects or just one when establishing the connection. Each dialect has cons and pros. I am using SMB2 as max-protocol and default value for min-protocol (just fallback for “rasplex” using only smb1). So far i did not face any issues on network level.
Unless you have a requirement to support higher versions of smb, I wouldn’t touch those options.
I’m also wondering why the OP is running a classical NT4 style domain. Those aren’t supported anymore by modern versions of windows. I also wouldn’t touch options such as receivefile size. I’m not going to outsmart the linux kernel and samba developers.
Where does this elaborate smb.conf come from, why not just use the defaults?
But the main question is, this topic was started with the remark that samba is slow after some time, is that still true?
@justsomeguy - currently, after that upgrade to samba4, it is working more thank week Ok (even better than with old one, where I got max 80 MB/s, what was already sufficient for me, now I am getting 100MB/s over ethernet), I just hope it will stay that way. I also implemented those few tips from Maximilian, like disabling guest, dont know which one helped more (but I assume that upgrade)