[Samba] performance problem on bridgehead DC
MORILLO Jordi
j.morillo at educationetformation.fr
Fri Mar 16 10:52:23 UTC 2018
Hi everybody !
I am encountering performance problem on my bridgehead DC.
I have 19 DC (Debian Stretch / Samba 4.6.7 from Tranquil.it repo) and they all synchronized on a main bridgehead DC.
This performance problem first appears when the bridgehead DC was on Debian Jessie and kernel was updated with meltdown/spectre patch from Debian (3.16.51-3+deb8u1)
I added "nopti" option to grub boot to resolve the performance problem.
Last night, I upgrade this Bridgehead DC from Jessie -> Stretch (samba package 4.6.7 from Tranquil.it is the same for Jessie and Stretch), I also keep "nopti" option but problem is back again.
There is 2 processes eating lots of CPU, samba-tool drs showrepl takes minutes, system is slow, load average is at 2 constantly
dc000:~# htop
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
28923 root 20 0 641M 42604 19064 S 39.6 2.1 1h26:53 /usr/sbin/samba
28930 root 20 0 641M 36340 13136 R 54.4 1.8 45:00.58 /usr/sbin/samba
dc000:~# samba-tool processes | egrep "(28923|28930)"
rpc_server 28923
rpc_server 28923
rpc_server 28923
rpc_server 28923
rpc_server 28923
rpc_server 28923
rpc_server 28923
rpc_server 28923
rpc_server 28923
dreplsrv 28930
dc000:~# strace -p 28923 -f
strace: Process 28923 attached
strace: [ Process PID=28923 runs in x32 mode. ]
strace: [ Process PID=28923 runs in 64 bit mode. ]
fcntl(15, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=332, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=368, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=5073496, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=368, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=368, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=5073496, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=368, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=376, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=5125448, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=376, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=376, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=5125448, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=376, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=380, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=1545572, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=380, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=380, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=1545572, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=2265976, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=380, l_len=1}) = 0
fcntl(15, F_SETLKW, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=380, l_len=1}) = 0
.......
dc000:~# egrep "(28923|28930)" /proc/locks
16: POSIX ADVISORY READ 28923 ca:01:132971 168 EOF
17: POSIX ADVISORY WRITE 28923 ca:01:132971 8 8
18: POSIX ADVISORY READ 28923 ca:01:132978 168 EOF
19: POSIX ADVISORY WRITE 28923 ca:01:132978 8 8
20: POSIX ADVISORY READ 28923 ca:01:132976 168 EOF
21: POSIX ADVISORY WRITE 28923 ca:01:132976 8 8
22: POSIX ADVISORY READ 28923 ca:01:132970 168 EOF
23: POSIX ADVISORY WRITE 28923 ca:01:132970 8 8
24: POSIX ADVISORY READ 28923 ca:01:132968 168 EOF
25: POSIX ADVISORY WRITE 28923 ca:01:132968 8 8
26: POSIX ADVISORY READ 28923 ca:01:132940 168 EOF
27: POSIX ADVISORY WRITE 28923 ca:01:132940 8 8
28: POSIX ADVISORY READ 28923 ca:01:132930 168 EOF
29: POSIX ADVISORY WRITE 28923 ca:01:132930 8 8
31: POSIX ADVISORY WRITE 28923 00:12:387271 0 EOF
54: POSIX ADVISORY WRITE 28930 00:12:389224 0 EOF
dc000:~# ls -la /proc/28923/fd/15
lrwx------ 1 root root 64 mars 16 09:44 /proc/28923/fd/15 -> /var/lib/samba/private/sam.ldb.d/DC=DOMAINDNSZONES,DC=PR,DC=EDUCATIONETFORMATION,DC=FR.ldb
I also have many access on :
dc000:~# ls -la /proc/28930/fd/14
lrwx------ 1 root root 64 mars 16 09:44 /proc/28930/fd/14 -> /var/lib/samba/private/sam.ldb.d/DC=PR,DC=EDUCATIONETFORMATION,DC=FR.ldb
dc000:~# ls -la /proc/28930/fd/15
lrwx------ 1 root root 64 mars 16 09:44 /proc/28930/fd/15 -> /var/lib/samba/private/sam.ldb.d/DC=DOMAINDNSZONES,DC=PR,DC=EDUCATIONETFORMATION,DC=FR.ldb
dc000:~# ls -la /proc/28930/fd/16
lrwx------ 1 root root 64 mars 16 09:44 /proc/28930/fd/16 -> /var/lib/samba/private/sam.ldb.d/DC=FORESTDNSZONES,DC=PR,DC=EDUCATIONETFORMATION,DC=FR.ldb
dbcheck is fine on all DC (10 000 objects)
All dc are synced from the bridgehead
DC Bridgehead is running with 8 virtual CPU and 2Go of Ram
If you have any idea, you are welcome :)
Thanks
More information about the samba
mailing list