Poor performance on FreeBSD

February 3, 2015 5.6k views

Hi!
I recently created a droplet running FreeBSD, but it seems like the network performance is really, really poor compared to another droplet running debian (tested by downloading a 1000M file , and both droplets being in the same location). It might be a I/O problem and not the network...

Does anyone know what the problem is? I also know that i am not the only one having this problem. Ask if you need more info, and i will provide it.

5 comments
5 Answers

To check if it really is a bandwidth issue between different locations use a tool like, iperf.
IPERF is a simple client/server tool that shoves data between locations while recording the speed.

To test the disk I/O run

diskinfo -t /the-disk-you-want-to-check

on the disk.

Let me know what you find.

  • Hi!
    The I/O speed on the disk: http://a.pomf.se/hmcffw.png
    This doesn't seem to be the problem though...
    I also tested the disk write speed by using "dd" and I actually got better speeds on FreeBSD than Debian.

    When it comes to the network speed; the Debian droplet downloads a 1000M file faster than the FreeBSD droplet (around 42.9 MB/s vs. 3.94 MB/s). If you want to replicate this you can try using "wget http://speedtest.bahnhof.se/1000M.zip". The people in the support managed to replicate this and they had the same problem as me.

-- DigitalOcean needs to replace vitro driver and enable Intel NIC --

To test this issue I created a couple of droplets in different locations.

I then installed iperf on all nodes.

Server:

iperf -s -f g

Client:

iperf -i 1 -t 30 -f g -c
ifconfig | grep media
    media: Ethernet 10Gbase-T <full-duplex>
    media: Ethernet 10Gbase-T <full-duplex>

Below are the results:

IPV4 Private
Interval Transfer Bandwidth
0.0-30.0 sec 3.18 GBytes 0.91 Gbits/sec

IPV4 Public
Interval Transfer Bandwidth
0.0-30.0 sec 0.44 GBytes 0.13 Gbits/sec

Notice the speed difference adding one hop to the outside, WAN address.

Observation tools used netstat, systat, systat -ifstat.

Standard configuration follows for reference:

root@FBSD2:~ # sysctl hw.model
hw.model: Intel(R) Xeon(R) CPU E5-2630L v2 @ 2.40GHz
virtio_pci0@pci0:0:3:0: class=0x020000 card=0x00011af4 chip=0x10001af4 rev=0x00 hdr=0x00
    vendor     = 'Red Hat, Inc'
    device     = 'Virtio network device'
    class      = network
    subclass   = ethernet
    cap 11[40] = MSI-X supports 3 messages, enabled
                 Table in map 0x14[0x0], PBA in map 0x14[0x800]
root@FBSD1:~ # limits
Resource limits (current):
  cputime              infinity secs
  filesize             infinity kB
  datasize             33554432 kB
  stacksize              524288 kB
  coredumpsize         infinity kB
  memoryuse            infinity kB
  memorylocked         infinity kB
  maxprocesses             3531
  openfiles               14049
  sbsize               infinity bytes
  vmemoryuse           infinity kB
  pseudo-terminals     infinity
  swapuse              infinity kB
  • Glad i am not the only one having this probelm, and that you found a solution. Thanks for your info and your help!

Hate to post a "me too" message but same problem here. It seems that solution must come from Digital Ocean folks as I do not believe we can do anything about the virtual hardware and its drivers.

Does DigitalOcean plan to do something with this issue?

  • Yes, they are working on it. I just recieved a mail from them the other day, where they told me that they hadn't forgotten it

  • I note that this problem is only in ams3 droplets. In ams2 everything looks good. Here is my speedtest-cli results:
    ams2

    root@ams2:~ # speedtest
    Retrieving speedtest.net configuration...
    Retrieving speedtest.net server list...
    Testing from Digital Ocean (***)...
    Selecting best server based on ping...
    Hosted by Vodafone UK (London) [0.96 km]: 37.114 ms
    Testing download speed........................................
    Download: 576.55 Mbit/s
    Testing upload speed..................................................
    Upload: 149.03 Mbit/s
    

    ams3

    root@ams3:~ # speedtest
    Retrieving speedtest.net configuration...
    Retrieving speedtest.net server list...
    Testing from DigitalOcean (***)...
    Selecting best server based on ping...
    Hosted by Networking4all B.V. (Amsterdam) [2.87 km]: 36.319 ms
    Testing download speed........................................
    Download: 56.25 Mbit/s
    Testing upload speed..................................................
    Upload: 20.14 Mbit/s
    
  • If you run the test i ran earlier, you will notice that the speed is reduced on both ams3 and ams2. But i have to say that this is really weird since i get different results on different tests and different locations. Looks like "rain" figured it out though :)

  • Did you mean testing via downloading large file?

    I've try to download this file http://speedtest.tokyo.linode.com/100MB-tokyo.bin from Ubuntu and FreeBSD both in ams2. Ubuntu shows 10-20MB/s, but FreeBSD only 100-200KB/s!

    The downloading speed is good on both systems if try to download this file http://speedtest.london.linode.com/100MB-london.bin i think it is because of distance between datacenters.

  • Yes, the test gave different speeds on debian and FreeBSD, and both were on the same datacenter (ams2). Which means that the distance to the server which i downloaded the big file from is the same on debian and FreeBSD. That shouldn't give different results :)

Have another answer? Share your knowledge.