FreeBSD 8.2 Release, ZFS + Samba, running out of memory

Henner Heck Henner.Heck at web.de
Tue Feb 22 22:13:44 UTC 2011


Hello,

i experience freezing of my FreeBSD machine when performing certain
operations
on a Samba share.

Technical info:
- FreeBSD 8.2 Release 64 Bit (it also happened with 8.2 RC3)
- Samba 3.5.6.1
- Athlon II Quadcore, 4 GB Ram
- 1 SSD with a ZFS pool (No.0) containing the FreeBSD system
- 12x2TB RaidZ2 pool (No.1) for data, created on 12 GEOM eli encrypted
partitions on 12 disks,
    shared to a Windows 7 PC with Samba,
    8 of the disks are attached to 2 Marvell SATA controllers, 4 to the
onboard controller
- ZPool v15, ZFS v4

Scenarios (checked using top):

A:
When copying files from one directory in pool 1 to another, the free
memory drops from
about 3700M to abaout 200M in the process, but seems to stabilize then.

B:
When copying the files onto a Windows machine using the Samba share,
the free memory seems to stabilize at about 100M.

C:
When computing a hashvalue of files from the share on Windows or doing a
binary compare to copies of the files stored on the Windows PC (using
Total Commander),
the free memory on the FreeBSD machine drops even lower and shortly
after the BSD system freezes.
Here is the last top output i got via ssh:

/last pid:  1328;  load averages:  4.53,  2.23,  0.99    up 0+00:04:39 
22:07:50
263 processes: 43 running, 201 sleeping, 19 waiting
CPU:  0.9% user,  0.0% nice, 23.1% system,  4.2% interrupt, 71.9% idle
Mem: 720K Active, 516M Wired, 144K Cache, 320K Buf, *39M Free*
Swap: 4096M Total, 12M Used, 4084M Free, 3008K In, 5124K Out

  PID USERNAME  THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
   11 root        4 171 ki31     0K    64K RUN     0  15:54 303.61% idle
 1321 root        1  52    0 27812K   704K swread  1   0:24 14.26% smbd
   12 root       19 -60    -     0K   304K WAIT    0   0:21 12.45% intr
   16 root        1  48    -     0K    16K psleep  2   0:01  3.76%
pagedaemon
    3 root        1  -8    -     0K    16K RUN     0   0:06  3.27% g_up
    4 root        1  -8    -     0K    16K -       3   0:05  2.69% g_down
    0 root      108  -8    0     0K  1712K -       0   1:02  1.86% kernel
    8 root        6  -8    -     0K    88K tx->tx  1   0:00  1.27% zfskern
 1268 root        1  44    -     0K    16K geli:w  1   0:03  0.98%
g_eli[1] gpt
 1225 root        1  45    -     0K    16K RUN     3   0:02  0.98%
g_eli[3] gpt
 1267 root        1  44    -     0K    16K geli:w  0   0:02  0.98%
g_eli[0] gpt
 1237 root        1  44    -     0K    16K RUN     0   0:02  0.88%
g_eli[0] gpt
 1214 root        1  44    -     0K    16K RUN     2   0:02  0.88%
g_eli[2] gpt
 1244 root        1  44    -     0K    16K RUN     2   0:02  0.78%
g_eli[2] gpt
 1243 root        1  44    -     0K    16K RUN     1   0:02  0.78%
g_eli[1] gpt
 1212 root        1  44    -     0K    16K RUN     0   0:02  0.78%
g_eli[0] gpt
 1215 root        1  44    -     0K    16K RUN     3   0:02  0.78%
g_eli[3] gpt
 1213 root        1  44    -     0K    16K RUN     1   0:02  0.78%
g_eli[1] gpt
 1240 root        1  44    -     0K    16K RUN     3   0:02  0.78%
g_eli[3] gpt
 1217 root        1  44    -     0K    16K RUN     0   0:02  0.78%
g_eli[0] gpt
 1242 root        1  44    -     0K    16K RUN     0   0:02  0.68%
g_eli[0] gpt
 1238 root        1  44    -     0K    16K RUN     1   0:02  0.68%
g_eli[1] gpt
 1248 root        1  44    -     0K    16K RUN     1   0:02  0.68%
g_eli[1] gpt
 1252 root        1  44    -     0K    16K RUN     0   0:02  0.68%
g_eli[0] gpt
 1249 root        1  44    -     0K    16K RUN     2   0:02  0.68%
g_eli[2] gpt
 1269 root        1  44    -     0K    16K geli:w  2   0:02  0.68%
g_eli[2] gpt/

It looks like a caching problem to me, but i don't know how to fix it.
I am also a bit confused, since i don't see an obvious difference
between scenario B and C.
I had a similar setup with 5 disks RaidZ1 and Samba running on 8.1 Release,
and never experienced such a freeze.

Does anyone have advice on how to get rid of this problem?

Best regards,
Henner Heck



*Config files*
----------------------------------------------------------------------------------
*loader.conf*

ahci_load="YES"
hw.hptrr.attach_generic=0
mvs_load="YES"
aio_load="YES"
kern.geom.label.gptid.enable=0
geom_label_load="YES"
geom_eli_load="YES"
zfs_load="YES"
hint.acpi_throttle.0.disabled=1
hw.pci.do_power_nodriver=3
vfs.root.mountfrom="zfs:pool0/ROOT/freebsd"

*rc.conf* (a bit anonymized)

defaultrouter="xxx.xxx.xxx.xxx"
hostname="hostname"
ifconfig_em0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"
keymap="german.iso"
zfs_enable="YES"
sshd_enable="YES"
geli_autodetach="NO"
samba_enable="YES"
powerd_enable="YES"

*sysctl.conf*

No active entries

*smb.conf* (a bit anonymized)

[global]
workgroup = AG
server string = Praetoria
log file = /var/log/log.%m
log level = 0
max log size = 50
security = user
encrypt passwords = yes

use sendfile = true
min receivefile size = 131072
aio read size = 16384
aio write size = 16384
#needed for aio to work
write cache size = 0

[user1]
comment = Share for user user1
path = /volumes/pool1/users/user1
valid users = user1
public = no
writable = yes
printable = no
browseable = yes












More information about the freebsd-stable mailing list