• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

Small Linux network issues

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.
Well, the reason I suspect the server is an issue is because what I've done with the network ports. There is a bridge on one of the ports and it tends to act odd. Even though I map the drive through a specific IP address, it will bounce between the two. Since I'm switching to VirtualBox from Libvirtd, this should resolve this issue if that is the problem. I figured that it wasn't related because only my desktop running Linux caused the issue, but that has proven to be wrong.
 
As soon as I my computer is done doing it's Sunday backup I can run some tests. Permitting I can get write speeds that fast on a drive. :/
 
Use RAM drives if you can't keep up with those speeds.
 
I think it may keep up even without RAM drives so far. I am ready to start some tests though. ;)

This is what I will be testing on.
samba1010testsetup.JPG

I will have video in a few of it throwing some huge files around via FTP as a control element.
But I kinda need a favor to ask if it is easy for anyone here. I am having a problem getting a share to show up between them. Firewall is wide open for both and this is the config file I am trying to use. If I missed anything let me know so I can get this working to test.

Code:
[global]
realm =
netbios name = Samba24
server string = Samba file and print server
workgroup = Workgroup
security = ads
hosts allow = 127. 192.168.0.
interfaces = 127.0.0.1/8 192.168.0.0/24
bind interfaces only = yes
remote announce = 192.168.0.255
remote browse sync = 192.168.0.255
printcap name = cups
load printers = yes
cups options = raw
printing = cups
guest account = smbguest
log file = /var/log/samba/samba.log
max log size = 1000
null passwords = no
username level = 6
password level = 6
encrypt passwords = yes
unix password sync = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
local master = yes
domain master = yes
preferred master = yes
domain logons = yes
os level = 80
logon drive = m:
logon home = \\%L\homes\%u
logon path = \\%L\profiles\%u
logon script = %G.bat
time server = yes
name resolve order = wins lmhosts bcast
wins support = yes
wins proxy = yes
dns proxy = no
preserve case = yes
short preserve case = yes
client use spnego = no
client signing = no
client schannel = no
server signing = no
server schannel = no
nt pipe support = yes
nt status support = yes
allow trusted domains = no
obey pam restrictions = yes
enable spoolss = yes
client plaintext auth = no
disable netbios = no
follow symlinks = no
update encrypted = yes
pam password change = no
passwd chat timeout = 120
hostname lookups = no
username map = /etc/samba/smbusers
passdb backend = tdbsam
passwd program = /usr/bin/passwd '%u'
passwd chat = *New*password* %n\n *ReType*new*password* %n\n *passwd*changed*\n
add user script = /usr/sbin/useradd -d /dev/null -c 'Samba User Account' -s /dev/null '%u'
add user to group script = /usr/sbin/useradd -d /dev/null -c 'Samba User Account' -s /dev/null -g '%g' '%u'
add group script = /usr/sbin/groupadd '%g'
delete user script = /usr/sbin/userdel '%u'
delete user from group script = /usr/sbin/userdel '%u' '%g'
delete group script = /usr/sbin/groupdel '%g'
add machine script = /usr/sbin/useradd -d /dev/null -g sambamachines -c 'Samba Machine Account' -s /dev/null -M '%u'
machine password timeout = 120
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /dev/null
winbind use default domain = yes
winbind separator = @
winbind cache time = 360
winbind trusted domains only = yes
winbind nested groups = no
winbind nss info = no
winbind refresh tickets = no
winbind offline logon = no

[homes]
comment = Home Directories
path = /home
read only = no
available = yes
browseable = yes
writable = yes
guest ok = no
public = no
printable = no
locking = no
strict locking = no

[netlogon]
comment = Network Logon Service
path = /home/netlogon
read only = no
available = yes
browseable = yes
writable = no
guest ok = no
public = no
printable = no
locking = no
strict locking = no

[profiles]
comment = User Profiles
path = /var/samba/profiles
read only = no
available = yes
browseable = no
writable = yes
guest ok = no
public = no
printable = no
create mode = 0600
directory mask = 0700
locking = no
strict locking = no

[printers]
comment = All Printers
path = /var/spool/samba
browseable = yes
writable = no
guest ok = no
public = no
printable = yes
locking = no
strict locking = no

[pdf-documents]
path = /home/pdf-documents
comment = Converted PDF Documents
available = yes
browseable = yes
writeable = yes
guest ok = yes
locking = no
strict locking = no

[pdf-printer]
path = /tmp
comment = PDF Printer Service
printable = yes
guest ok = yes
use client driver = yes
printing = bsd
print command = /usr/bin/gadmin-samba-pdf %s %u
lpq command =
lprm command =

[Guest Share]
        comment = Guest access share
        path = /home/hans/Guest
        browseable = yes
        read only = yes
        guest ok = yes
 
:attn::attn: Prepare for :drool: before watching this video! You will need napkins after seeing the speeds.

So in theory I should be able to run samba transfers close to these crazy speeds after tuning. (just need a little help getting samba working)
But this video should give you a good idea of the test control.



I noticed it did choke up a little on the bigger file but insane on the smaller ones. Could use some tuning there.
 
Last edited:
Wow, why do you have so many options in your configuration file? This is all I use:

Code:
#======================= Global Settings =====================================
[global]
    workgroup = WORKGROUP
    server string = Thideras File Server %v
    netbios name = thideras-server
    interfaces = eth0 lo
    bind interfaces only = yes

#This is to stop the error messages in /var/log/messages
    domain master = yes
    local master = yes

    log file = /var/log/samba/log.%m
    # max 50KB per log file, then rotate
    max log size = 50
    
    security = user
    passdb backend = tdbsam
    encrypt passwords = yes

    max open files = 65536
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072

    wins support = yes
    hostname lookups = yes

#--------------------------- Printing Options -----------------------------
    load printers = yes

    printcap name = cups
    printing = cups

#============================ Share Definitions ==============================
    
[homes]
    comment = Home Directories
    browseable = no
    writable = yes
    
[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    writable = no
    printable = yes

[Hitachi]
    comment = Hitachi root
    path = /mnt/hitachi
    browseable = yes
    public = no
    writable = yes
    valid users = thideras
    create mode = 770
    directory mode = 770
        force owner = thideras
        force group = samba

[Media]
    comment = Media
    path = /mnt/hitachi/media
    browseable = yes
    public = no
    writable = yes
    valid users = @samba
    create mode = 770
    directory mode = 770
        force owner = thideras
        force group = samba

[Backups]
    comment = Backups
    path = /mnt/hitachi/backups
    browseable = yes
    public = no
    writable = yes
    valid users = thideras
    create mode = 770
    directory mode = 770
    force owner = thideras
    force group = samba

[Pathways]
    comment = Pathways
    path = /mnt/hitachi/CCCApps
    browseable = yes
    public = no
    writable = yes
    valid users = thideras
    create mode = 770
    directory mode = 770
        force owner = thideras
        force group = samba

[Ram]
    comment = Ram disk
    path =/mnt/ram
    browseable = yes
    public = no
    writable = yes
    valid users = thideras
    create mode = 770
    directory mode = 770
        force owner = thideras
        force group = samba

[HTPC]
    comment = HTPC Share
    writable = no
    path = /mnt/hitachi/media
    valid users = Media
    browsable = yes
 
I just started with the standard after installing.

Code:
[Guest Share]
        comment = Guest access share
        path = /home/hans/Guest
        browseable = yes
        read only = yes
        guest ok = yes

That is the only thing I need to work to test this though. :/

EDIT: (guess I was trigger-happy on the video post though I am at 37% upload, about 30min) :shrug:
 
Since it is in your home folder, did you setup the permissions right? You also have it set as read only. If you are trying to access the share, keep an eye on the logs. It will almost always tell you exactly why it is denying the request.

/var/log/secure
 
Ok, got that to share now. hehe

Yea, its super slow too! (like 20mb/s flat) :b Lets see what I can do with this now. ;)
 
so am I correct to assume that most of the tuning is taking place in the socket options?

Everything else seems to look standard (although I only gave turbo's the "once-over" I read thiddy's thoroughly)
 
If I remove the socket options, I see no difference in Linux and a small difference in Windows. Before trying anything, I really want to get the server reformatted. I have enough reason to believe that the bridge is causing the slowdowns.
 
I have been following this thread, I hope to get involved but I have a bunch on the go at work right now so I will have to remain a reader for now
 
I have been following this thread, I hope to get involved but I have a bunch on the go at work right now so I will have to remain a reader for now

Nice! Yea I am almost convinced now that there has got to be something funky with his array or the network configuration.

With just the standard socket settings for Ub 10.10 smb and ftp were both moving around 100mb/s average. In the above video it shows speeds that were almost identical to what samba was after I set it up and tested it. The speeds oscillate though but I think that is just my drives not keeping up.

This is the smb.conf I got to work. After adding myself with the "smbpasswd -a" command it worked right away. (with windows and linux)
Code:
oscillate[global]
workgroup = Workgroup
server string = Samba file and print server
netbios name = Ubuntu
hosts allow = all
hosts deny = 0.0.0.0/0
guest ok = yes
interfaces = eth0
security = user
guest account = nobody
socket options = TCP_NODELAY IPTOS_LOWDELAY  
read raw = yes                     # Default  
write raw = yes                    # Default  
oplocks = yes                      # Default  
max xmit = 65535                   # Default  
dead time = 15                     # Default is 0  
getwd cache = yes  
lpq cache = 30

log file = /var/log/samba/samba.log
max log size = 50
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=16777216 SO_SNDBUF=16777216
wins support = yes
hostname lookups = yes
passdb backend = tdbsam
max open files = 65536


[homes]
comment = Home Directories
path = /home
read only = no
available = yes
browseable = yes
writable = yes
guest ok = yes
public = yes
printable = no
locking = no
strict locking = no

[Guest Share]
comment = Guest access share
path = /home/hans/Guest
browseable = yes
read only = no
guest ok = yes

I still am curious to see if there is any further tuning though that could enhance performance. I will keep playing with it though off and on.
Right now I am trying to set up freeNAS to work with a FQDN ;)
 
Ok, more information. I've been setting up my iscsi target on my server for my other servers. For testing purposes, I've mounted these on my desktop. Going based on my old train of thought, this should exhibit the same speed issues that I was seeing with Samba.

Code:
[root@thideras-server ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.iscsi.local.thideras
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
        I_T nexus: 2
            Initiator: iqn.1994-05.com.redhat:d16eb423fd89
            Connection: 0
                IP Address: 192.168.0.50
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: None
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 250000 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: /dev/sda1
        LUN: 2
            Type: disk
            SCSI ID: IET     00010002
            SCSI SN: beaf12
            Size: 250000 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: /dev/sda2
    Account information:
    ACL information:
        ALL
Code:
[root@thideras-main iscsitest]# iscsiadm --mode discovery --type sendtargets --portal thideras-server
192.168.0.10:3260,1 iqn.iscsi.local.thideras
Mounted, formatted and ready for dd. So, let's do this! To make sure we get real transfer rate, I'll do a large file. Starting...
Code:
[root@thideras-main iscsitest]# dd if=/dev/zero of=./test.iso bs=1G count=15
Ok, file is copying, let's see what the server says.

Screenshot-2.png
Hmm, that is looking pretty good at 111 MB/sec transfer.

Screenshot-3.png
That adds up to 103 MB/sec writing speed. Not bad.

Screenshot-1.png
Desktop agrees with everything else at 106 MB/sec.

And the copy finished.
Code:
[root@thideras-main iscsitest]# dd if=/dev/zero of=./test.iso bs=1G count=15
15+0 records in
15+0 records out
16106127360 bytes (16 GB) copied, 153.324 s, 105 MB/s
That is certainly better than Samba! Now to figure out why. It clearly is not a network or network interface problem, so that narrows it down directly to Samba or its configuration.
 
I wish I had more experience to add to the solution, but I recall samba in the past few years having issues with getting speeds up. It seems every now and then they jump a hurdle and gain a bit more speed - it's come a long way over time. I just did the same tests you were doing from my file server to my local computer...15mb/s...guess I've got some digging to do.
 
But what doesn't make sense is that the server will happily do 106+ MB/sec both directions with Windows as the client. Linux as the client is 30 MB up and 66 MB down.
 
Hmmm....which network card does your client have? I experienced a similar issue, and found that the kernel module for my LAN card was wrong (Realtek 8111), which should have the r8168 module and not the r8169. Windows worked great over SMB, but Linux slowed greatly, using either NFS or SMB copying files back and forth between my server. My server is Debian Squeeze with libvirtd and the client runs Windows 7 Home Premium and Ubuntu 10.04.
 
I'm not at my desktop this exact second, but I'm fairly sure it is using the Realtek port. I'll have to look into this.

EDIT: Maybe not.
Marvell 88E8056/88E8001
 
Verified that I'm using the sky2 module for my network device. My laptop has the same speed issues and it has an Intel NIC. Server is using the rtl8187 module.

I'm still certain this is an issue with Samba/CIFS as I can use nc and get 109 MB/sec solid from my desktop.

109mb-s.png
 
Last edited:
Using smbclient to mount the remote share and copy the files produces normal speeds. This seems to be an issue with CIFS, specifically. It is the only thing that is running slow.
 
Back