In a samba share we have a directory with lots of files - binaries and resources to run our ERP application (around 20K entries).
The application is taking too long to load. The found reason is that the application tries to load several files in a trial/error fashion, looking for extensions in a particular order (e.g: file.dll
, file.lbr
, file.gnt
, file.int
). Many of these files are not required and doesn't even exist.
Every "not found" hit take ~0.2 seconds. And there are lots of these events.
The thing is that apparently samba is not caching this result.
If I run this code (in a Windows Command Prompt) in the samba share, it takes considerable time, whereas in a native Windows share it is instantaneous.
for /L %i in (1,1,50) do @dir \\server\share\not_existing.txt >nul
Anything that can be done?
Current smb.conf
content:
# Global parameters
[global]
netbios name = ***omitted***
realm = ***omitted***
server role = active directory domain controller
workgroup = ***omitted***
idmap_ldb:use rfc2307 = yes
dns forwarder = ***omitted***
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
#
aio read size = 1
aio write size = 1
aio write behind = true
socket options = TCP_NODELAY SO_RCVBUF=65535 SO_SNDBUF=65535
read raw = yes
write raw = yes
max xmit = 65535
dead time = 0
getwd cache = no
max connections = 5000
time server = yes
Environment Details:
- CentOS Linux release 7.6.1810 (Core)
- Samba version 4.8.3
- Application Runtime: Microfocus NetExpress (Cobol) v3.1
0 Answers