this post was submitted on 14 Mar 2025
30 points (96.9% liked)

Selfhosted

44239 readers
929 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

I recently posted about upgrading my media server and migrating off Windows to Proxmox. I've been following an excellent guide from TechHut on YouTube but have run into issues migrating my media into the new Proxmox setup.

Both my old Windows machine and new Proxmox host have 2.5Gb NIC cards and are connected together with a 2.5Gb switch and running on the same subnet. Following the guide, I've created a ZFS pool with 7x14TB drives and created an Ubuntu LXC which is running Cockpit to create Samba shares.

When transferring files from Windows, I'm only seeing 100MB/s speeds on the initial transfer and every other transfer after that caps out at >10MB/s until I reboot the Cockpit container and the cycle completes.

I'm not very knowledgeable on Proxmox or Linux but have run an iperf3 test between Windows > Proxmox and Windows > Cockpit container and both show roughly 2.5Gb transfer speeds yet I am still limited when transferring files.

Googling the issue brings up some troubleshooting steps but I don't understand a lot of it. One fix was to disable IPv6 in Proxmox (I dont have this setup on my network), which was successful, but didn't fix anything. I no longer see the interface when doing an 'ip a' command in Proxmox, though I do still see it when doing it in the SMB container.

Does anybody have any experience with this that can offer a solution or path toward finding a solution? I have roughly 40TB of media to transfer and 8MB/s isn't going to cut it.

top 29 comments
sorted by: hot top controversial new old
[–] ikidd@lemmy.world 1 points 23 hours ago* (last edited 23 hours ago)

What's your throughput to another Windows box from your source machine? Samba isn't known as a fast transfer protocol. You could also try NFS services on the windows box and export your shares to try that.

You might also enable jumbo frames if it's a lot of larger files.

[–] some_dude@lemm.ee 2 points 1 day ago (1 children)

I, like you, will be migrating from Windows to ProxMox soon. Can you give a link to the guide you mentioned?

[–] non_burglar@lemmy.world 1 points 23 hours ago (1 children)

Lots of variables here, we would need to pare them down:

  • architecture of zfs pool? This can be done well or very poorly, zfs gives you a lot of rope, if you know what I mean.
  • memory?
  • have you tuned samba ?
  • are you trying to do anything fancy like jumbo frames ?
  • what networking equipment lies between the two?
  • do you have the correct and correctly configured 2.5gb driver for linux ? Intel 2.5 NICs had some issues for a while.
  • what does the windows net hardware look like?

In troubleshooting transfer speeds , there are solo many variables, as you can see.

Start with the network and reduce variables until you have a likely source of the problem.

[–] CmdrShepard42@lemm.ee 1 points 12 hours ago
  • Not sure what all to include here but the pool set up in Proxmox as RAIDZ2 with lz4 compression.

  • 64GB DDR5 that is showing low utilization the entire time. It has never gone over 10GB usage.

  • I have not done any tuning or enabled jumbo frames on samba

  • Both machines are sitting next to one another and connected to a 2.5Gb switch that is also connected to my router's 1Gb ports. From what I gather, they shouldn't need to communicate through the router since they're on the same subnet and everything.

  • I haven't installed any drivers, but another user suggested using the ethtool command on the NIC and it's showing a 2.5Gb connection speed.

  • The windows machine has a Realtec RTL8125B 2.5Gb PCIe network card that I just purchased for this purpose. Previously I was using the motherboards built in 1Gb NIC. I have installed the driver for this on the windows machine.

[–] Xanza@lemm.ee 6 points 1 day ago (3 children)

Does the Proxmox host have the driver installed for your 2.5Gb NIC? Can't use it if it's not installed. Connect to the host and run ethtool <device>. Should show the link speed as Speed: .

I have roughly 40TB of media to transfer and 8MB/s isn’t going to cut it.

If you need ultra-speed data, why not do a 100GbE switch with JBOD? 40TB isn't a small amount of data. Generally no matter what setup you have it's going to take a significant amount of time to swap data here.

[–] CmdrShepard42@lemm.ee 1 points 13 hours ago

I've had a chance to run this and ethtool is showing 2500Mb/s for the speed on the host. I also tried it on the bridge and inside the container and those both show "10000Mb/s"

[–] CmdrShepard42@lemm.ee 1 points 1 day ago

I haven't installed any drivers on the Proxmox machine. That one has the 2.5Gb NIC built into the motherboard so I probably misspoke when I called it a "card" in the OP if that makes a difference. I'll try this when I get home but I have run 'lspci' and it shows the NIC on both the host and container (Intel Killer 3100 2.5Gb though it's listen as Killer 3000 2.5Gb) plus my iperf3 tests were showing ~2.3Gb speeds between both machines and the container.

As far as the 100GBe switch, I only need to transfer the media off the old machine once so I was just trying to go with something inexpensive since the standard 1Gb ethernet should be fine for most things after this initial transfer.

[–] possiblylinux127@lemmy.zip 0 points 1 day ago (1 children)

Linux doesn't have drivers like Windows does. The kernel either supports the hardware or it doesn't.

[–] Xanza@lemm.ee 7 points 1 day ago

This is categorically untrue. The kernel includes most open source drivers however it does not include proprietary drivers (or even all open source drivers) which require recompiling the kernel itself or installing secondary headers...

I've used many networking cards in the past that required you to recompile the kernel for them to work properly...

[–] tenchiken@lemmy.dbzer0.com 5 points 1 day ago (2 children)

What drives? If they are shingled, your performance will be terrible and the array runs a high risk of failing.

CMR is the way to go.

SMR behavior is about like what you describe... Fast until the drive cache is filled then plummets to nothing.

[–] CmdrShepard42@lemm.ee 2 points 1 day ago (1 children)

5 are WD HC530 datacenter drives and two are the 14TB EZAZ from Easystores. I don't think any of the larger WD drives are SMR but I don't have a definitive answer.

[–] tenchiken@lemmy.dbzer0.com 2 points 1 day ago (1 children)

Hmm, at a glance those all look to be CMR.

To rule this out ideally, a tool like iostat (part of sysstat tools) can help. While moving data, and with the problem happening, if you run something like "iostat 1 -mx" and watch for a bit, you might be able to find an outlier or see evidence of if the drives are overloaded or of data is queueing up etc.

Notably watch the %util on the right side.

https://www.golinuxcloud.com/iostat-command-in-linux/ can help here a bit.

The %util is how busy the communication to the drive is.. if maxed out, but the written per second is junk, then you may have a single bad disk. If many are doing it, you may have a design issue.

If %util doesn't stay pegged, and you just see small bursts, then you know the disks are NOT the issue and can then focus on more complex diagnosis with networking etc.

[–] CmdrShepard42@lemm.ee 2 points 13 hours ago (1 children)

Looks like at most one drive hits 50% for a second, then I'll have several refreshes showing 0% utilization on all drives, then a refresh showing 10% utilization followed by another several refreshes showing 0% utilization again. On Windows, the drives being transferred from are also showing low utilization.

[–] tenchiken@lemmy.dbzer0.com 1 points 12 hours ago (1 children)

Awesome, so that's good news. Disks probably just fine.

My next thoughts are on the service itself then... Your service providing the share might be getting throttled or not getting direct access to kernel hooks for performance.

Simplest test I would think is set up Samba or NFS in the host itself, not a container. Try a large transfer there. If speed isn't an issue that way, then something at the container level is hindering you.

[–] CmdrShepard42@lemm.ee 1 points 10 hours ago

I suspect it is something wrong or misconfigured in the container because I can reliably reproduce this issue by doing one transfer and getting 100MB/s and always on the second (or additional) transfer getting 10MB/s until I restart the container.

[–] NeoNachtwaechter@lemmy.world 2 points 1 day ago

Thinking the same here.

[–] rdschouw@lemmy.world 2 points 1 day ago (2 children)

Can you do a speed test of your zpool?

dd if=/dev/null of=<mount-point>/test.file bs=1G count=10 status=progress

[–] non_burglar@lemmy.world 2 points 21 hours ago

dd if=/dev/null of=/test.file bs=1G count=10 status=progress

/dev/null tests from dd are not an accurate indicator of performance unless you only have one disk in your pool. fio is a much more accurate tool for zfs pool testing.

[–] possiblylinux127@lemmy.zip 3 points 1 day ago* (last edited 1 day ago)

Better to use iostat

zpool iostat

[–] IsoKiero@sopuli.xyz 1 points 1 day ago (2 children)

How much RAM your system has? Zfs is pretty hungry for memory and if you don't have enough it'll have quite significant impact on performance. My proxmox had 7x4TB drives on zfs pool and with 32 gigs of RAM there was practically nothing left for the VMs under heavy i/o load.

I switched the whole setup to software raid, but it's not offically supported by proxmox and thus managing it is not quite trivial.

[–] CmdrShepard42@lemm.ee 1 points 13 hours ago

It has 64GB installed. I have read that ZFS can slurp up RAM, but I'm seeing barely any usage. Usage has remained under 10GB the entire time for the whole system.

[–] ikidd@lemmy.world 1 points 23 hours ago (1 children)

ARC will give way to other memory uses. Were you actually seeing memory shortage or did you just see the usage and think that you couldn't overprovision?

https://superuser.com/questions/1137416/how-can-i-determine-the-current-size-of-the-arc-in-zfs-and-how-does-the-arc-rel

[–] IsoKiero@sopuli.xyz 1 points 20 hours ago

Actual shortage. Performance drops significantly when zfs doesn't have enough memory. It might have been an option to tweak configuration for zfs pools, add SSD for caching and so on, but I needed to change drive configurations anyways for other reasons so for me it was easier to drop zfs and switch to software raid.

[–] dbtng@eviltoast.org 0 points 1 day ago

I don't know about the Ubuntu LCX. I don't container much.

I'd do this with a virtual machine and TrueNAS. Those are just the tools I like to use. The TrueNAS Scale ISO will install qemu-guest-agent, so you don't need to worry about drivers. Make sure to build it with Virtio SCSI Single disk controllers. Use one 50gb OS disk for the install. Add huge data disk(s) after the install.
Promox Disk options ... SSD emulation, Discard, IO Thread, No cache ... and I use Write Back (unsafe). Use the Virtio NIC.

And try it again. Hopefully faster this time.

[–] possiblylinux127@lemmy.zip 0 points 1 day ago* (last edited 1 day ago) (1 children)

What's the benchmark on the disks? Are these SAS drives?

[–] CmdrShepard42@lemm.ee 1 points 12 hours ago (1 children)

Can you elaborate on what you mean by benchmarks? These are all SATA drives

[–] possiblylinux127@lemmy.zip 1 points 8 hours ago (1 children)

That's your problem. You need enterprise drives to do faster speeds

[–] CmdrShepard42@lemm.ee 1 points 7 hours ago

I don't believe that's my issue as none of the drives are even reaching 50% utilization on either end and it also doesn't explain why initial transfers hold at a consistent 100MB/s but every transfer after that limits to >10MB/s until I restart the samba service on the container.