La Fibre

Datacenter et équipements réseaux => Équipements réseaux => Serveurs NAS, serveurs et micro-serveurs => Discussion démarrée par: renaud07 le 03 décembre 2016 à 18:24:51

Titre: Perfs moisies avec samba
Posté par: renaud07 le 03 décembre 2016 à 18:24:51
Bonsoir,

Je me suis monté l'an passé un serveur basse conso avec une CM asrock Q1900-ITX sous debian, et bien que pas très puissant, je suis étonné de la différence de performances entre samba (partages Windows) et NFS.

Avec samba, je ne dépasse pas les 16 Mo/s que ce soit en lecture ou écriture, alors qu'en NFS c'est d'une rapidité, au moins 50 Mo/s en écriture (en augmentation avec le transfert) et en lecture c'est 80 Mo/s.

Le jour et la nuit, littéralement. Alors je sais que le protocole SMB a tendance à être plus pourri que NFS, mais quand même, faire à peine plus que 100 Mb/s je trouve ça léger. Et sous windows directement c'est encore pire, je me tape des transferts à 8 Mo/s !

J'ai contrôlé les ressources systèmes pendant les transferts et le CPU tout cœur confondu n'est même pas à 50% (aucun cœur n'est utilisé à fond).

Est-il possible d'améliorer ça ou c'est une cause perdue ?

Merci d'avance.

Titre: Perfs moisies avec samba
Posté par: BadMax le 03 décembre 2016 à 19:15:30
Déjà ça vient pas du CPU: mon Atom C2550 n'est guère plus performant d'après CPUboss.

Citer
CPU tout cœur confondu n'est même pas à 50% (aucun cœur n'est utilisé à fond)

T'as regardé avec quoi ?

TODO de tests à faire sur le serveur:
 - test d'écriture en local de 1Go: dd if=/dev/zero of=/tmp/test bs=1M count=1024
 - pendant une copie SMB: lances un "iostat 2" et fais-nous un petit top aussi
 - smarctl -a /dev/<disque> (probablement sda ou sdb)
 - hdparm -I /dev/<disque>
 - hdparm -t /dev/<disque>
Titre: Perfs moisies avec samba
Posté par: renaud07 le 03 décembre 2016 à 22:09:29
Pour le cpu j'ai regardé avec htop. Avec top le process smbd occupe 24% du cpu (voir image en PJ).

La commande hdparm -I ne correspond à aucune option, tu voulais savoir quoi exactement ? Pour le reste voici :

root@serveur:~# dd if=/dev/zero of=/data/test bs=1M count=1024
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 7,73777 s, 139 MB/s
root@serveur:~#

Le disque est plein à 80% donc c'est à mon avis normal que le test d'écriture sois un peu limite.


root@serveur:~# iostat 2
Linux 3.16.0-4-amd64 (serveur) 03/12/2016 _x86_64_ (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,32    0,00    0,09    0,07    0,00   99,51

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb               0,32        24,45        26,56    7039033    7645992
sda               0,51         1,82        25,89     525254    7453364
sdc               0,01         0,12         0,00      33944         12

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,38    0,00    1,63    0,00    0,00   97,99

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb              31,50      3780,00         0,00       7560          0
sda               0,00         0,00         0,00          0          0
sdc               0,00         0,00         0,00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,38    0,00    2,42    0,13    0,00   97,07

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb              62,00      7558,00         0,00      15116          0
sda               6,00         0,00     12304,00          0      24608
sdc               0,00         0,00         0,00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,88    0,00    8,04    0,25    0,00   90,83

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb             137,50     16400,00         8,00      32800         16
sda               0,00         0,00         0,00          0          0
sdc               0,00         0,00         0,00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           htop0,64    0,00    6,43    0,00    0,00   92,93

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb             135,50     16336,00         0,00      32672          0
sda               0,00         0,00         0,00          0          0
sdc               0,00         0,00         0,00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,38    0,00    8,44    0,00    0,00   91,18

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb             138,50     16596,00         0,00      33192          0
sda               0,00         0,00         0,00          0          0
sdc               0,00         0,00         0,00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,50    0,00    8,65    0,25    0,00   90,60

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb             134,50     16208,00         0,00      32416          0
sda             101,00         0,00       580,00          0       1160
sdc               0,00         0,00         0,00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,88    0,00    8,43    0,25    0,00   90,44

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb             136,50     16336,00         6,00      32672         12
sda               0,00         0,00         0,00          0          0
sdc               0,00         0,00         0,00          0          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,50    0,00    8,43    0,13    0,00   90,94

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb             138,50     16720,00         0,00      33440          0
sda               0,50         0,00         2,00          0          4
sdc               0,00         0,00         0,00          0          0

root@serveur:~# hdparm -t /dev/sdb

/dev/sdb:
 Timing buffered disk reads: 524 MB in  3.01 seconds = 174.27 MB/sec
root@serveur:~# smarctl -a /dev/sda
-bash: smarctl : commande introuvable
root@serveur:~# smartctl -a /dev/sdb
smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.16.0-4-amd64] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.14 (AF)
Device Model:     ST1000DM003-1CH162
Serial Number:    Z1DB47W0
LU WWN Device Id: 5 000c50 066ab9ad2
Firmware Version: CC47
User Capacity:    1 000 204 886 016 bytes [1,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ACS-3 T13/2161-D revision 3b
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Sat Dec  3 22:03:09 2016 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
was completed without error.Mes disques mon sains, pas de secteurs défectueux ou autre.
Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (  584) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: (   1) minutes.
Extended self-test routine
recommended polling time: ( 110) minutes.
Conveyance self-test routine
recommended polling time: (   2) minutes.
SCT capabilities:        (0x3085) SCT Status supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   117   099   006    Pre-fail  Always       -       141456248
  3 Spin_Up_Time            0x0003   097   097   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       204
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   066   060   030    Pre-fail  Always       -       4343982
  9 Power_On_Hours          0x0032   094   094   000    Old_age   Always       -       5502
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       212
183 Runtime_Bad_Block       0x0032   098   098   000    Old_age   Always       -       2
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0 0 0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   069   051   045    Old_age   Always       -       31 (Min/Max 13/35)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       77
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       217
194 Temperature_Celsius     0x0022   031   049   000    Old_age   Always       -       31 (0 10 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000   Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       5497h+17m+19.151s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       2177947818
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       786819387

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

root@serveur:~# hdparm -t /dev/sdb
/dev/sdb:
 Timing buffered disk reads: 524 MB in  3.01 seconds = 174.27 MB/sec


Titre: Perfs moisies avec samba
Posté par: BadMax le 03 décembre 2016 à 23:10:33
OK donc RAS côté disque&CPU.

En NFS tu devrais tenir le Gb.
On continue les checks:
 - lspci | grep Ether
 - ethtool -k Eth0
 - ifconfig eth0
 - netstat -s

Enfin on va vérifier ta config Samba:
 - testparm -v
Titre: Perfs moisies avec samba
Posté par: renaud07 le 04 décembre 2016 à 00:23:21
root@serveur:~# lspci | grep Ether
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)

root@serveur:~# ethtool -k eth0
Features for eth0:
rx-checksumming: on
tx-checksumming: off
tx-checksum-ipv4: off
tx-checksum-ip-generic: off [fixed]
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: off
tx-scatter-gather: off
tx-scatter-gather-fraglist: off [fixed]EDIT
tcp-segmentation-offload: off
tx-tcp-segmentation: off
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp6-segmentation: off [fixed]
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: off [requested on]
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: off [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-ipip-segmentation: off [fixed]
tx-sit-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-mpls-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
busy-poll: off [fixed]

root@serveur:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr d0:XX:XX:XX:fe:de 
          inet adr:192.168.1.2  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fe80::d250:99ff:fe7e:fede/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7495585 errors:0 dropped:484 overruns:0 frame:0
          TX packets:7554332 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:8303898376 (7.7 GiB)  TX bytes:10202092507 (9.5 GiB)

root@serveur:~# netstat -s
Ip:
    2856215 total packets received
    0 forwarded
    0 incoming packets discarded
    2855835 incoming packets delivered
    7552784 requests sent out
    1 fragments dropped after timeout
    216 reassemblies required
    71 packets reassembled ok
    1 packet reassembles failed
Icmp:
    2059 ICMP messages received
    6 input ICMP message failed.
    Histogramme d'entrée ICMP
        destination unreachable: 1983
        echo requests: 76
    1754 ICMP messages sent
    0 ICMP messages failed
    Histogramme de sortie ICMP
        destination unreachable: 1678
        echo replies: 76
IcmpMsg:
        InType3: 1983
        InType8: 76
        OutType0: 76
        OutType3: 1678
Tcp:
    2850 active connections openings
    964 passive connection openings
    933 failed connection attempts
    62 connection resets received
    8 connections established
    2765558 segments received
    7471877 segments send out
    1583 segments retransmited
    0 bad segments received.
    826 resets sent
Udp:
    78895 packets received
    203 packets to unknown port received.
    301 packet receive errors
    78749 packets sent
    RcvbufErrors: 301
UdpLite:
TcpExt:
    2 invalid SYN cookies received
    163 resets received for embryonic SYN_RECV sockets
    721 TCP sockets finished time wait in fast timer
    2402 delayed acks sent
    279 delayed acks further delayed because of locked socket
    Quick ack mode was activated 240 times
    8 SYNs to LISTEN sockets dropped
    175786 packets directly queued to recvmsg prequeue.
    110668844 bytes directly in process context from backlog
    674095880 bytes directly received in process context from prequeue
    665773 packet headers predicted
    292769 packets header predicted and directly queued to user
    43721 acknowledgments not containing data payload received
    1758195 predicted acknowledgments
    36 times recovered from packet loss by selective acknowledgements
    Detected reordering 183 times using SACK
    Detected reordering 3 times using time stamp
    3 congestion windows fully recovered without slow start
    6 congestion windows partially recovered using Hoe heuristic
    5 congestion windows recovered without slow start by DSACK
    34 congestion windows recovered without slow start after partial ack
    11 timeouts after SACK recovery
    120 fast retransmits
    252 forward retransmits
    1 retransmits in slow start
    699 other TCP timeouts
    TCPLossProbes: 776
    TCPLossProbeRecovery: 197
    1 SACK retransmits failed
    240 DSACKs sent for old packets
    793 DSACKs received
    19 connections reset due to unexpected data
    31 connections reset due to early user close
    6 connections aborted due to timeout
    TCPDSACKIgnoredOld: 10
    TCPDSACKIgnoredNoUndo: 519
    TCPSpuriousRTOs: 2
    TCPSackShiftFallback: 5657
    TCPDeferAcceptDrop: 363
    TCPRetransFail: 13
    TCPRcvCoalesce: 153023
    TCPOFOQueue: 661
    TCPSpuriousRtxHostQueues: 13
    TCPAutoCorking: 216908
    TCPFromZeroWindowAdv: 15
    TCPToZeroWindowAdv: 15
    TCPWantZeroWindowAdv: 64
    TCPSynRetrans: 434
    TCPOrigDataSent: 6868697
IpExt:
    InMcastPkts: 9875
    InBcastPkts: 1586
    OutBcastPkts: 936
    InOctets: 7961336731
    OutOctets: 10100580922
    InMcastOctets: 316000
    InBcastOctets: 325154
    OutBcastOctets: 215036
    InNoECTPkts: 7483098
    InECT0Pkts: 6
    InCEPkts: 1

Au vu des warning, je pense que ma config samba est à optimiser, j'avais testé il y a un moment différents paramètres et je n'y ai pas retouché depuis.

EDIT : Après avoir commenté la ligne des options TCP, ça turbien à 40-50 Mo/s, youpi !  :D  Et il y a peu je suis aussi passé a un switch gigabit, c'est donc pour ça que je ne voyais aucune différence quand j'étais en 100 Mbps.

C'est pas aussi rapide que NFS mais y'a un très net progrès  8)

root@serveur:~# testparm -v
Load smb config files from /etc/samba/smb.conf
Processing section "[partage]"
Processing section "[ftp]"
Processing section "[divers]"
Processing section "[series]"
Processing section "[films]"
Processing section "[musique]"
Processing section "[openradio]"
Loaded services file OK.
WARNING: socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192
This warning is printed because you set one of the
following options: SO_SNDBUF, SO_RCVBUF, SO_SNDLOWAT,
SO_RCVLOWAT
Modern server operating systems are tuned for
high network performance in the majority of situations;
when you set 'socket options' you are overriding those
settings.
Linux in particular has an auto-tuning mechanism for
buffer sizes (SO_SNDBUF, SO_RCVBUF) that will be
disabled if you specify a socket buffer size. This can
potentially cripple your TCP/IP stack.

Getting the 'socket options' correct can make a big
difference to your performance, but getting them wrong
can degrade it by just as much. As with any other low
level setting, if you must make changes to it, make
 small changes and test the effect before making any
large changes.

Server role: ROLE_STANDALONE
Titre: Perfs moisies avec samba
Posté par: BadMax le 04 décembre 2016 à 09:06:37
A 50Mo/s, c'est possible qu'un Core sature sinon ça veut dire qu'on peut encore gratter.

SMB est bien plus gourmand en CPU que NFS, le protocole est plus sophistiqué.
Titre: Perfs moisies avec samba
Posté par: Optix le 04 décembre 2016 à 09:43:59
SO_RCVBUF=8192 SO_SNDBUF=8192

Double ces valeurs, et reboot smbd.
Titre: Perfs moisies avec samba
Posté par: renaud07 le 04 décembre 2016 à 19:15:44
SO_RCVBUF=8192 SO_SNDBUF=8192

Double ces valeurs, et reboot smbd.

Je viens tester : ça redescend à 30 Mo/s.
Titre: Perfs moisies avec samba
Posté par: renaud07 le 04 décembre 2016 à 19:17:31
A 50Mo/s, c'est possible qu'un Core sature sinon ça veut dire qu'on peut encore gratter.

SMB est bien plus gourmand en CPU que NFS, le protocole est plus sophistiqué.

On doit pouvoir encore gratter en effet, les cores ne saturent pas. Après, ce qu'il faut mettre dans la config, à toi de me le dire  ;)
Titre: Perfs moisies avec samba
Posté par: BadMax le 04 décembre 2016 à 20:20:56
Essaye ça:
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
Titre: Perfs moisies avec samba
Posté par: renaud07 le 04 décembre 2016 à 21:25:10
Ça reste toujours autour de 50 Mo/s (et les cores ne saturent toujours pas). Par contre en NFS j'explose le compteur aujourd'hui : 90 Mo/s (avec un ralentissement sur la fin, mais c'est déjà très bien).

Titre: Perfs moisies avec samba
Posté par: Optix le 04 décembre 2016 à 21:42:32
Je viens tester : ça redescend à 30 Mo/s.

Mmhhh, je suis septique avec tes options de no/low delay, ça n'incite pas smbd à remplir ses buffers au max.
Titre: Perfs moisies avec samba
Posté par: renaud07 le 04 décembre 2016 à 22:00:50
Mmhhh, je suis septique avec tes options de no/low delay, ça n'incite pas smbd à remplir ses buffers au max.

Sans les options  no/low delay, c'est encore pire avec la valeur doublée (16384) retour à l'anémique 16-20 Mo/s. Je crois que je ne pourrais pas avoir mieux que 50, ce qui est déjà pas mal.
Titre: Perfs moisies avec samba
Posté par: BadMax le 05 décembre 2016 à 09:30:49
Tu peux nous filer le résultat de testparm -v ? Attention, il faut appuyer sur entrée pour avoir le résultat.

Il y a d'autres paramètres de buffer à potentiellement ajuster.
Titre: Perfs moisies avec samba
Posté par: renaud07 le 05 décembre 2016 à 16:54:32
# Global parameters
[global]
dos charset = CP850
unix charset = UTF-8
workgroup = WORKGROUP
realm =
netbios name = SERVEUR
netbios aliases =
netbios scope =
server string = serveur samba
interfaces =
bind interfaces only = No
config backend = file
server role = auto
security = AUTO
auth methods =
encrypt passwords = Yes
client schannel = Auto
server schannel = Auto
allow trusted domains = Yes
map to guest = Never
null passwords = No
old password allowed period = 60
obey pam restrictions = No
password server = *
smb passwd file = /etc/samba/smbpasswd
private dir = /var/lib/samba/private
passdb backend = tdbsam
algorithmic rid base = 1000
root directory =
guest account = nobody
enable privileges = Yes
pam password change = No
passwd program =
passwd chat = *new*password* %n\n *new*password* %n\n *changed*
passwd chat debug = No
passwd chat timeout = 2
check password script =
username map =
username level = 0
unix password sync = No
restrict anonymous = 0
lanman auth = No
ntlm auth = Yes
raw NTLMv2 auth = No
client NTLMv2 auth = Yes
client lanman auth = No
client plaintext auth = No
client use spnego principal = No
preload modules =
dedicated keytab file =
kerberos method = default
map untrusted to domain = No
log level = 2
syslog = 0
syslog only = No
log file = /var/log/samba/log.%m
max log size = 1000
debug timestamp = Yes
debug prefix timestamp = No
debug hires timestamp = Yes
debug pid = No
debug uid = No
debug class = No
enable core files = Yes
smb ports = 445 139
large readwrite = Yes
server max protocol = SMB3
server min protocol = LANMAN1
client max protocol = default
client min protocol = CORE
unicode = Yes
min receivefile size = 0
read raw = Yes
write raw = Yes
disable netbios = No
reset on zero vc = No
log writeable files on exit = No
defer sharing violations = Yes
nt pipe support = Yes
nt status support = Yes
max mux = 50
max xmit = 16644
name resolve order = lmhosts wins host bcast
max ttl = 259200
max wins ttl = 518400
min wins ttl = 21600
time server = No
unix extensions = Yes
use spnego = Yes
client signing = default
server signing = default
client use spnego = Yes
client ldap sasl wrapping = sign
ldap server require strong auth = Yes
enable asu support = No
svcctl list =
cldap port = 389
dgram port = 138
nbt port = 137
krb5 port = 88
kpasswd port = 464
web port = 901
rpc big endian = No
deadtime = 0
getwd cache = Yes
keepalive = 300
lpq cache time = 30
max smbd processes = 0
max disk size = 0
max open files = 16424
socket options = SO_RCVBUF=16384 SO_SNDBUF=16384
use mmap = Yes
use ntdb = No
hostname lookups = No
name cache timeout = 660
ctdbd socket =
cluster addresses =
clustering = No
ctdb timeout = 0
ctdb locktime warn threshold = 0
smb2 max read = 8388608
smb2 max write = 8388608
smb2 max trans = 8388608
smb2 max credits = 8192
load printers = Yes
printcap cache time = 750
printcap name =
cups server =
cups encrypt = No
cups connection timeout = 30
iprint server =
disable spoolss = No
addport command =
enumports command =
addprinter command =
deleteprinter command =
show add printer wizard = Yes
os2 driver map =
mangling method = hash2
mangle prefix = 1
max stat cache size = 256
stat cache = Yes
machine password timeout = 604800
add user script =
rename user script =
delete user script =
add group script =
delete group script =
add user to group script =
delete user from group script =
set primary group script =
add machine script =
shutdown script =
abort shutdown script =
username map script =
username map cache time = 0
logon script =
logon path = \\%N\%U\profile
logon drive =
logon home = \\%N\%U
domain logons = No
init logon delayed hosts =
init logon delay = 100
os level = 20
lm announce = Auto
lm interval = 60
preferred master = Auto
local master = Yes
domain master = Auto
browse list = Yes
enhanced browsing = Yes
dns proxy = No
wins proxy = No
wins server =
wins support = No
wins hook =
smb2 leases = No
lock spin time = 200
oplock break wait time = 0
ldap admin dn =
ldap delete dn = No
ldap group suffix =
ldap idmap suffix =
ldap machine suffix =
ldap passwd sync = no
ldap replication sleep = 1000
ldap suffix =
ldap ssl = start tls
ldap ssl ads = No
ldap deref = auto
ldap follow referral = Auto
ldap timeout = 15
ldap connection timeout = 2
ldap page size = 1024
ldap user suffix =
ldap debug level = 0
ldap debug threshold = 10
eventlog list =
add share command =
change share command =
delete share command =
config file =
preload =
lock directory = /var/run/samba
state directory = /var/lib/samba
cache directory = /var/cache/samba
pid directory = /var/run/samba
ntp signd socket directory = /var/lib/samba/ntp_signd
utmp directory =
wtmp directory =
utmp = No
default service =
message command =
get quota command =
set quota command =
remote announce =
remote browse sync =
nbt client socket address = 0.0.0.0
nmbd bind explicit broadcast = Yes
homedir map = auto.home
afs username map =
afs token lifetime = 604800
log nt token command =
NIS homedir = No
registry shares = No
usershare allow guests = No
usershare max shares = 100
usershare owner only = Yes
usershare path = /var/lib/samba/usershares
usershare prefix allow list =
usershare prefix deny list =
usershare template share =
allow insecure wide links = No
async smb echo handler = No
panic action =
perfcount module =
host msdfs = Yes
passdb expand explicit = No
idmap backend = tdb
idmap cache time = 604800
idmap negative cache time = 120
idmap uid =
idmap gid =
template homedir = /home/%D/%U
template shell = /bin/false
winbind separator = \
winbind cache time = 300
winbind reconnect delay = 30
winbind request timeout = 60
winbind max clients = 200
winbind enum users = No
winbind enum groups = No
winbind use default domain = No
winbind trusted domains only = No
winbind nested groups = Yes
winbind expand groups = 0
winbind nss info = template
winbind refresh tickets = No
winbind offline logon = No
winbind normalize names = No
winbind rpc only = No
create krb5 conf = Yes
ncalrpc dir = /var/run/samba/ncalrpc
winbind max domain connections = 1
winbindd socket directory = /var/run/samba/winbindd
winbindd privileged socket directory = /var/lib/samba/winbindd_privileged
winbind sealed pipes = Yes
neutralize nt4 emulation = No
reject md5 servers = No
require strong key = Yes
allow dns updates = secure only
dns forwarder =
dns update command = /usr/sbin/samba_dnsupdate
nsupdate command = /usr/bin/nsupdate -g
rndc command = /usr/sbin/rndc
multicast dns register = Yes
samba kcc command = /usr/sbin/samba_kcc
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns
dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver
spn update command = /usr/sbin/samba_spnupdate
share backend = classic
allow nt4 crypto = No
reject md5 clients = No
tls enabled = Yes
tls keyfile = tls/key.pem
tls certfile = tls/cert.pem
tls cafile = tls/ca.pem
tls crlfile =
tls dh params file =
tls priority = NORMAL:-VERS-SSL3.0
tls verify peer = as_strict_as_possible
client ipc max protocol = default
client ipc min protocol = default
client ipc signing = default
allow dcerpc auth level connect = No
idmap config * : backend = tdb
comment =
path =
username =
invalid users = root
valid users =
admin users =
read list =
write list =
force user =
force group =
read only = Yes
acl check permissions = Yes
acl group control = No
acl map full control = Yes
acl allow execute always = No
create mask = 0744
force create mode = 0000
directory mask = 0755
force directory mode = 0000
force unknown acl user = No
inherit permissions = No
inherit acls = No
inherit owner = No
guest only = No
administrative share = No
guest ok = No
only user = No
hosts allow =
hosts deny =
allocation roundup size = 1048576
aio read size = 0
aio write size = 0
aio write behind =
ea support = No
nt acl support = Yes
profile acls = No
map acl inherit = No
afs share = No
smb encrypt = default
durable handles = Yes
block size = 1024
change notify = Yes
directory name cache size = 100
kernel change notify = Yes
max connections = 0
min print space = 0
strict allocate = No
strict rename = No
strict sync = No
sync always = No
use sendfile = No
write cache size = 0
max reported print jobs = 0
max print jobs = 1000
printable = No
print notify backchannel = No
print ok = No
printing = cups
cups options =
print command =
lpq command = %p
lprm command =
lppause command =
lpresume command =
queuepause command =
queueresume command =
printer name =
use client driver = No
default devmode = Yes
force printername = No
printjob username = %U
default case = lower
case sensitive = Auto
preserve case = Yes
short preserve case = Yes
mangling char = ~
hide dot files = Yes
hide special files = No
hide unreadable = No
hide unwriteable files = No
delete veto files = No
veto files =
hide files =
veto oplock files =
map archive = Yes
map hidden = No
map system = No
map readonly = yes
mangled names = Yes
store dos attributes = No
dmapi support = No
browseable = Yes
access based share enum = No
blocking locks = Yes
csc policy = manual
fake oplocks = No
kernel oplocks = No
kernel share modes = Yes
locking = Yes
oplocks = Yes
level2 oplocks = Yes
oplock contention limit = 2
posix locking = Yes
strict locking = Auto
dfree cache time = 0
dfree command =
copy =
include =
preexec =
preexec close = No
postexec =
root preexec =
root preexec close = No
root postexec =
available = Yes
volume =
fstype = NTFS
wide links = No
follow symlinks = Yes
dont descend =
magic script =
magic output =
delete readonly = No
dos filemode = No
dos filetimes = Yes
dos filetime resolution = No
fake directory create times = No
vfs objects =
msdfs root = No
msdfs proxy =
ntvfs handler = unixuid, default


[partage]
comment = ftp
path = /data/partage
valid users = renaud
admin users = renaud
read list = 0777
write list = 0777
read only = No
create mask = 0777
guest ok = Yes

Je n'ai pas mis les autres partages, c'est exactement la même chose.
Titre: Perfs moisies avec samba
Posté par: alain_p le 05 décembre 2016 à 21:43:57
Je dois dire que je n'ai jamais vu une telle flopée d'options (générales) configurées. En général, chez moi, c'est beaucoup plus court, une vingtaine d'options au max. Avec tant d'options, c'est difficile de s'y retrouver. Mais bon, il affiche peut-être les options fixées par défaut ?
Titre: Perfs moisies avec samba
Posté par: renaud07 le 05 décembre 2016 à 22:31:55
Je dois dire que je n'ai jamais vu une telle flopée d'options (générales) configurées. En général, chez moi, c'est beaucoup plus court, une vingtaine d'options au max. Avec tant d'options, c'est difficile de s'y retrouver. Mais bon, il affiche peut-être les options fixées par défaut ?

Sûrement oui, car je n'ai quasiment rien de configuré dans smb.conf  :
[global]
dns proxy = No
log file = /var/log/samba/log.%m
server string = serveur samba
invalid users = root
socket options = SO_RCVBUF=16384 SO_SNDBUF=16384
os level = 20
syslog = 0
max log size = 1000
Titre: Perfs moisies avec samba
Posté par: BadMax le 06 décembre 2016 à 09:48:19
@alain_p: l'option '-v' affiche les options par défaut/cachées.

@Renaud: tu peux tenter de modifier:

max xmit = 16644 -> 32768
socket options -> à augmenter aussi du coup à 131072
server max protocol = SMB3 -> j'essaierai SMB2
Titre: Perfs moisies avec samba
Posté par: renaud07 le 06 décembre 2016 à 17:23:54
C'est toujours pas ça  :( Environ 37 Mo/s.

Une fois les options retirées ça retourne à 50 Mo/s stable. Je crois qu'on ne pourra pas faire mieux.

Il faudrait que j'essaie openmediavault, vu qu'elle est spécialement pensée pour faire un NAS, peut-être qu'il y a des optimisations.

J'avais d’ailleurs pensé faire comme ça au début, mais vu que je voulais faire un serveur "multi services", il y avait des confits, notamment concertant les serveurs web, du coup je suis parti d'une debian netinstall. Je pourrais à la limite virtualiser les 2 mais les perfs risque d'être encore plus mauvaises.

Le top serait d'avoir 2 machines, mais je suis un peu limité niveau place.
Titre: Perfs moisies avec samba
Posté par: BadMax le 07 décembre 2016 à 15:22:21
Les paramètres que je t'ai donné sont ceux de mon freenas, qui est lui-même autant optimisé que OMV. Je sature du Gb sans pb.
Titre: Perfs moisies avec samba
Posté par: renaud07 le 07 décembre 2016 à 18:40:04
C'est ma config qui a un problème alors... Tant pis.