Server admin

Speed check.

A transfer goes only as fast as the slowest part of its path. The speed check measures each part of your server, tells you in one sentence which part is the limit, and says what to do about it. It is included on every plan, Free mode too.

Before you run it

The check is a real test. It is safe on a live server, and it is not free:

  • It writes a test file of a few gigabytes to each location it tests: the staging area, each storage root and the data volume. The size is 2 GB by default, and an administrator can change it.
  • It works your disks and processor hard while it runs.
  • It takes about 2 minutes on a normal server. Slow disks and many storage locations take longer. Each card on the screen fills in as its test finishes, so you can watch it work.
  • Active transfers slow down while it runs. If transfers are running, Farwing asks first: A check slows active transfers for about 2 minutes. Run it anyway?
  • A scheduled check is skipped when the server is busy and tries again later, so it never slows your busiest hours.
  • Test files are always deleted. They live in a hidden .farwing/speedcheck folder inside each location. If the server stops during a check, it removes the leftovers the next time it starts.
  • A location without enough free space is skipped, and the result says why. Free some space or lower the test size to include it.

Run it

  • In the portal: Admin → Speed check, then Run the speed check.
  • From the dashboard: a small card shows the last result's headline and date, with a Run check button.
  • In the setup wizard: the last step offers Check this server's speed (2 minutes).
  • From the command line: farwing doctor runs the same local checks and prints the same result as text. farwing doctor user@host also checks the far end over SSH. It works on every plan.
  • From the API: POST /api/v1/speedcheck starts a check, GET /api/v1/speedcheck/{id} returns its result, and GET /api/v1/speedcheck lists past results. These need a license with the API.
farwing doctor
farwing doctor [email protected]

Running a check by hand is on every plan. Scheduled checks need a Team license or higher. See Scheduled checks.

What it measures

Receiving goes network, then processor, then the staging disk, then the destination disk or S3. Sending goes the source disk or S3, then the processor, then the network. The check measures each part on its own and compares them with your license.

Each speed is shown twice. Disk tools use MB/s and network people use Gbit/s. 1 Gbit/s is 125 MB/s, so a disk that writes 400 MB/s can keep up with 3.2 Gbit/s.

StageWhat it measuresWhat the number means in practice
Disk writeFarwing writes a large test file to each location, then deletes it.The fastest the disk can take files. It limits receiving: files are written to staging first, then to their folder.
Disk readFarwing reads the file back. Where the system allows it, the check reads straight from the disk and skips the memory cache, so the number is the disk.The fastest the disk can supply files. It limits sending.
Small filesHow many small files per second the location writes and reads.Matters for folders with many files. A disk can be fast on one large file and slow on thousands of small ones.
Checksum (BLAKE3)How fast the processor computes the checksum Farwing uses to prove every file arrived intact.Every file is checked, so the processor must keep up with your link.
Encryption (AES-GCM)How fast the processor encrypts and decrypts, with Farwing's own code.Every transfer is encrypted, so this limits both receiving and sending.
NetworkThe speed of the network link as the operating system reports it, the packet size (MTU), whether the server uses host networking, and the system's UDP buffer limits.The ceiling of the connection. It is not a transfer to another machine. To test the path to another server, run farwing bench user@host.
Your licenseThe speed your license allows.A cap set on purpose. A server that is faster than its license is not held back by anything else.

Farwing runs the checksum and the encryption together, the way a transfer does, so the processor appears as one combined number. The check measures it for one core and for the number of threads Farwing will use. The details panel also shows the processor model, the core count and the current load, and the memory: total, free and what Farwing is using now.

For S3 storage, the check uploads and downloads one test object and then deletes it. It shows the bucket's region and the server's region when it knows them.

How to read the verdict

The top of the screen is one sentence in large type. It names the part that limits your server and its speed:

This server can receive at about 3.2 Gbit/s. The limit is the staging disk (/data), which writes at 400 MB/s.
Put staging on a faster disk to reach your 10 Gbit/s license.

The line under it is the advice for that part. If nothing limits the server below your license, you see a different sentence instead: This server can use your full license. Nothing is holding it back. That is the good result. Do not look for a fault.

  • The pipeline below shows one card for each part, left to right, in the order a transfer passes through them. A switch changes between Receiving and Sending. Each card shows its speed in Gbit/s, with MB/s underneath.
  • The slowest card is amber and carries a Your limit tag. The others are grey with a check mark. The line joining the cards narrows at the slowest one, like a pipe.
  • Your license is the last card. When every part is at least as fast as the license, the license is the limit.
  • The details are folding panels, one for each part. They hold every number behind the verdict.

The line under the verdict

If the limit isThe advice and what to do
The staging diskPut staging on a faster disk. If it is a network share, put staging on a local disk. If it is a spinning disk, move staging to an SSD or NVMe disk.
A storage diskPut this storage on a faster disk. For a network share, check the storage system behind it. For a spinning disk, move the storage to an SSD or NVMe disk.
The processorUse a server with more or faster processor cores. If the processor was already busy with other work, stop that work first.
The networkUse a faster network connection. See network below license.

What to change

Under the verdict, the advice list holds plain sentences, most serious first. Each has a Why link to the matching section below. Advice marked as a limit holds your speed back. Advice marked as a warning is worth fixing. A note is information.

Staging and a storage root are on different disks

Staging and Projects are on different disks, so every file is copied a second time after it arrives.

Every upload lands in staging first. When staging and the destination are on the same disk, the file moves into place without a copy. On different disks, Farwing must copy every byte again, which costs time and disk speed.

How to fix it: put the storage root and the staging area on the same disk. If they must be on different disks, make staging the faster one.

The UDP buffer limits are small

The system limits a UDP buffer to 208 KB, which is too small to pass 1 Gbit/s.

Farwing moves data over UDP. Linux limits how much memory one UDP connection may use, and the usual default is small. On a fast link, a small buffer overflows and packets are lost. The check shows this advice when your license or link is faster than 1 Gbit/s.

How to fix it: run this on the server itself, as an administrator. Do not run it inside the container. Farwing uses the host's network, so the host's setting applies.

sysctl -w net.core.rmem_max=16777216 && sysctl -w net.core.wmem_max=16777216

It raises both limits to 16 MB. The change lasts until the next restart. To check the current values:

sysctl net.core.rmem_max net.core.wmem_max

To keep the change after a reboot, put the same two settings in the system's sysctl configuration. This creates a file and applies it:

printf 'net.core.rmem_max=16777216\nnet.core.wmem_max=16777216\n' | sudo tee /etc/sysctl.d/99-farwing.conf
sudo sysctl --system

The file /etc/sysctl.d/99-farwing.conf then holds:

net.core.rmem_max=16777216
net.core.wmem_max=16777216

Run the speed check again to see the new limits.

The server runs on Docker's bridge network

This server is running on Docker's bridge network, which adds work for every packet. The host network avoids it.

How to fix it: run the container with host networking. The compose file from the Server admin guide already does:

services:
  farwing:
    network_mode: host

With docker run, add --network host.

An S3 bucket is in another region

This S3 bucket is in eu-west-1 but the server is in us-west-2. Reading from it is slower and costs extra.

The distance adds delay to every request, and cloud providers charge for data that crosses regions. Farwing reports this only when it knows where the server runs.

How to fix it: use a bucket in the server's region, or move the server to the bucket's region.

A folder is a network share

The /files folder is a network share. Its speed depends on your storage system, not on Farwing.

The check can measure the share, but it cannot change it. Its speed comes from the storage system behind it and the network between that system and your server.

How to fix it: look at the storage system and its connection. Check the link speed, the load on the storage and the mount options. For staging, use a local disk, because every upload is written there first.

A disk is slower than your license

This disk is slower than your license: it writes at 400 MB/s, and the license allows 10 Gbit/s.

Your license allows more speed than the disk can supply. Convert to compare: 10 Gbit/s needs 1,250 MB/s.

How to fix it: move the location to a faster disk. NVMe disks are fastest, SSDs are next, and spinning disks are slowest. Several disks working together as one volume can also be faster.

The processor is slower than your license

The processor can encrypt and check about 4 Gbit/s, which is below your license's 10 Gbit/s.

Every transfer is encrypted and checked, and that work runs on the processor.

How to fix it: use a server with more cores or faster cores. If the server also runs other work, move that work elsewhere. On a virtual machine, give it more virtual cores.

The network link is slower than your license

The network connection runs at 1 Gbit/s, which is below your license's 10 Gbit/s.

A 1 Gbit/s link cannot deliver more than 1 Gbit/s, whatever the license allows.

How to fix it: connect the server to a faster port or use a faster network card. To see the speed the link negotiated, run this, replacing eth0 with the name of your network interface:

ethtool eth0 | grep Speed

A read speed may include the cache

This system would not let the check skip its memory cache, so the read speed may be higher than the disk really is.

What to do: nothing is broken. Read the number as the best the disk can do, and give the write speed more weight. The report marks these results as possibly including the cache.

A location was not fully measured

This location was not fully measured, followed by the reason.

The most common reason is too little free space for the test file. How to fix it: free space on that disk, or lower the test size, and run the check again.

Scheduled checks

Scheduled checks need a Team license or higher. Free mode runs checks by hand only.

  • Choose Every week, a day and a time on the Speed check screen. Times use the server's time zone. Pick a quiet hour.
  • A scheduled check waits when the server is busy with transfers, and runs later.
  • Farwing emails an alert when a location becomes more than 30% slower than its own average, or when the limit drops below your license.
  • The alert is also an event, speedcheck.degraded, which event rules can use to post a message or open a ticket.

If the server drops to Free mode, scheduled checks pause and manual checks keep working.

History

The screen lists past checks by date, so you can see whether a disk got slower over time. Pick two to compare them side by side.

Seeing the limit live

In the live usage view, each active transfer shows what limits it right now: the disk, the processor, the network, your license cap or a traffic rule. You can see limited by: disk (Projects) while it happens, not only in a test.

The report for support

Copy report and Download report give a plain-text summary of every number on the screen. Paste it into an email to support, and the first reply can be the fix instead of a list of questions. The report opens with the Farwing version, your plan and the time the check started, then the result. Here is its beginning, shortened:

Farwing speed check
License plan: Business

Result
This server can receive at about 3.2 Gbit/s. The limit is the staging disk (/data), which writes at 400 MB/s.
Put staging on a faster disk to reach your 10 Gbit/s license.
Limiting part: Staging disk

It continues with the speed of each part for receiving and sending, each disk (write, read, small files, free space, type and whether it shares staging's disk), the processor, the memory, the network settings and the advice. A part that was not measured says not measured and why. Paths appear only for the locations that were tested.