[Samba] Samba allocates too much memory
Pluess, Tobias
tpluess at ieee.org
Fri Sep 18 07:46:50 UTC 2026
Hello SAMBA mailing list,
I experience on one SAMBA File Server the following problem.
I have several LXC Containers where I run SAMBA Fileservers inside. For
several years now this setup has already worked super reliably and
satisfying, the performance is good and the reliability exceptional. The
underlying storage is ZFS. On the largest of these SAMBA Servers I have
more than 50TiB of data and more than 50 million files. It works super nice
and with good performance.
Due to this good experiences, I recently set up a brand new LXC with SAMBA
File server inside for another use case, and here, I see occasional
crashes. I first thought it is some misconfiguration I made on my side, and
investigated, but it turns out that the OOM Killer from Linux was actually
killing my SAMBA processes. And why was this the case?
Well, I see that one particular user accessing the SAMBA Server lets the
SAMBA allocated heap grow and grow and grow beyond all limits. For example,
on my aforementioned 50 Million Files SAMBA Server, I see this:
root at tank:~# free -h
total used free shared buff/cache
available
Mem: 16Gi 181Mi 14Gi 64Mi 998Mi
15Gi
Swap: 8.0Gi 180Mi 7.8Gi
there are people actively working on these data sets, and still, the
consumed RAM is completely negligible. So in several years now that this
SAMBA Server is running, ther was never one single crash!
and now, on this new SAMBA Server, I see this:
root at files:~# free -h
total used free shared buff/cache
available
Mem: 32Gi 7.1Gi 24Gi 31Mi 263Mi
24Gi
Swap: 8.0Gi 2.3Gi 5.7Gi
so already 10GB consumed, and this is by just one single SAMBA process. To
confirm this, I used the below command:
watch -n 2 'ps -eo pid,user,rss,vsz,etime,cmd --sort=-rss | grep smbd'
Every 2.0s: ps -eo pid,user,rss,vsz,etime,cmd --sort=-rss | grep smbd
files: Fri Sep 18 07:36:00 2026
1306309 <user> 7342972 9368128 2-17:30:10 smbd: client [ip.153]
1072879 <user> 45632 166164 4-01:15:54 smbd: client [ip..160]
1074414 root 45596 143756 4-01:05:48 smbd: client [ip.36]
1292641 root 25880 146108 2-19:21:31 smbd: client [ip..144]
1072881 <user> 25356 126988 4-01:15:54 smbd: client [ip..126]
1644218 root 4916 121460 23:59:21 smbd: scavenger
1072775 root 2672 92652 4-01:15:55 /usr/sbin/smbd --foreground
--no-process-group
1828082 root 2436 3544 00:02 watch -n 2 ps -eo
pid,user,rss,vsz,etime,cmd --sort=-rss | grep smbd
1072778 root 1448 89428 4-01:15:55 smbd: notifyd .
1072779 root 1436 89444 4-01:15:55 smbd: cleanupd
1828088 root 1416 2680 00:00 sh -c -- ps -eo
pid,user,rss,vsz,etime,cmd --sort=-rss | grep smbd
1828087 root 1324 3544 00:00 watch -n 2 ps -eo
pid,user,rss,vsz,etime,cmd --sort=-rss | grep smbd
1828090 root 1284 3508 00:00 grep smbd
So one particular user whose IP is ending with 153 is consuming a lot of
RAM. Interesting fact: the SAMBA Server is running since the last reboot
for 2 weeks now, and during these 2 weeks, until yesterday, the RAM
consumption was always in the 10-ish MB range, so very healthy. But
overnight it exploded to 10-ish GB. I try to look at this particular
process a bit closer, with this:
watch -n 2 'grep -E "VmRSS|VmHWM|RssAnon|RssFile|RssShmem|VmSwap"
/proc/1306309/status'
and I get the below output. So we see that this process consumed even a
high watermark of more than 10GB, and he is even swapping also.
Every 2.0s: grep -E "VmRSS|VmHWM|RssAnon|RssFile|RssShmem|VmSwap"
/proc/1306309/status files: Fri Sep 18
07:38:52 2026
VmHWM: 10595420 kB
VmRSS: 7342972 kB
RssAnon: 7310488 kB
RssFile: 5412 kB
RssShmem: 27072 kB
VmSwap: 1901368 kB
What I would like to try to understand now is, what causes SAMBA to do
these massiva allocations, is it a misconfiguration (possible) or is it a
weird kind of access pattern, or does the problem occur when people are
opening large files? is there one configuration to tell samba that he does
not have to cache so much?
I also try to inspect the log file for that particular IP, but it is empty.
(/var/log/samba/log.<ip-addr>
My SAMBA config file is super basic, I have not tuned any tunables, I just
have these:
vfs objects = acl_xattr shadow_copy2
allocation roundup size = 4194304
strict allocate = Yes
kernel oplocks = no
kernel share modes = no
The latter 4 I have added due to some research I tried to do to fix this
problem. It looks to me that, until now, the problem is a bit mitigated,
but 10 GB of allocated memory for SAMBA is huge compared to my experience,
and I would like to understand what causes it to do so, how I could prevent
it or if it is a mistake from my side.
Any hints?
thanks!
Greetings Tobias.
More information about the samba
mailing list