Painfully slow IBD

After running Knots for 10 hours overnight, the IBD progress is still at 0.88%. The service logs show that it is definitely syncing. In my VM setting, network adaptor is attached to Bridged Adapter. According to the internet speed test my internet connection has not slowed down at all since the IBD began. Obviously, it is using Tor. In the Knots setting, “Disable Clearnet” is unchecked. ChatGPT gave me two things to try: 1. Manually add “Clearnet” peers such as 192.162.215.1 (Luke Dashjr’s node) or 104.198.11.134 (Generic high-speed node). 2. In the VM network setting’s Promiscuous Mode, select “Allow VMs” or “Allow All.” It’s currently “Deny.” Which should I try?

ChatGPT gave me some fixes to try but I want to get some feedback first. Here are what the Chat suggested. Please let me know what you think.

  1. Enable Host I/O Cache. (currently unchecked)
  2. Switch disk controller from SATA → NVMe inside VM settings.
  3. Switch the Virtual Disk from dynamic to fixed size.
  4. Switch the VM network setting’s Promiscuous Mode from “Deny” to “Allow VMs” or “Allow All.”
  5. It suggested adding peers manually but I think I already have 11 peers based on the “Connections 11 (1 in / 11 out)” under Bitcoin Knots/Properties.

Other information:
CPU cores assigned:2. RAM assigned:8192MB.
I added a NVME to a barebone NUC14MNK-B2. Has 4 CPU cores.

Below is my current Knots settings:
Knots/Config
ZeroMQ enabled
Transaction index enabled
Coinstats index disabled
Pruning mode disabled

Bitcoin Knots/Config/RPC settings
RPC server timeout 30
Threads 16
Work Queue 128

Bitcoin Knots/Config/Advanced/peers
“Make public” enabled
“Disable peer discovery” disabled
“Disable Clearnet” disabled
“Use V2 P2P transport protocol” enabled

Bitcoin Knots/Properties
Disk usage 5.99 G1B
Connections 11 (1 in / 11 out)

This usually takes a lot of time for new build…72+ hours is normal. Give it some time

The problem is the low amount of RAM. It will likely take a few days to complete. How much RAM is available on your host?

CORSAIR - VENGEANCE 16GB (1x16GB) DDR5 4800MHz C40 SODIMM Laptop Memory

You might see if it will let you bump the RAM up to 12GB (just don’t do anything else on the host while it is running – will likely have low memory issues). Any extra RAM you can sqeeze out will be helpful.

Fixed disk size would speed up the file IO (which is needed in low-RAM setups for memory swapping). Enable Host I/O Cache may help a little (but will probably be negligable, since the IBD is a fairly continuous load, not bursty – this would be more helpful after you complete the IBD)
Switching to NVMe in the settings may make some difference, since it would match the underlying tech (so theoretically, less translation would be required)

The network settings or adding peers are not going to help. The bottleneck is rarely the network. It is file I/O (due to memory swapping in low RAM setups).

I bumped it to 12GB. Hopefully that will fix it. It’s my understanding that the IBD uses the clearnet (not Tor). Should I expect to see my internet speed drop if the IBD is running normally through the clearnet?

No noticeable difference. Still it’s about 0.01% an hour.

The IBD can use both Tor and clearnet. Clearnet speeds are faster than Tor, but as long as you have a few peers, network speed is rarely the bottleneck.

There are also a number of optimizations that you can add if things don’t improve. Here are a few that you can check (Chat GPT can probably come up with even more ideas):

  • Make sure Intel VT-x / Intel Virtualization Technology is enabled in your BIOS
  • Disable Hyper-V and various related features (only if you don’t use WSL though)
    – Hyper-V
    – Virtual Machine Platform
    – Windows Hypervisor Platform
    – Windows Sandbox
    – Windows Subsystem for Linux
  • Select the High (or Ultimate if available) performance setting
  • If you have a performance profile option (probably not – I think this is just for OEM setups), make sure it is not set to anything like “Battery saver” or “Quiet”

You could also try temporarily turning off Memory Integrity (and maybe Core Isolation too), which impacts speeds a bit. Re-enable after the IBD is finished. I found a guide here that goes into enabling/disabling these.

Checked all the items with no success (they were all already at the correct setting). There is the green turtle icon at the bottom right corner of the VM. That seems to be the problem. But when I check the Windows features, Windows Hypervisor platform & Vitrual machine platform both are already unchecked. When I hover my mouse over the green turtle, a panel shows Execution Engine: native API, Nested paging: Inactive, Unrestricted Execution: Inactive, Execution Cap: 100, Paravirtualization interface: KVM, Processors: 2.

Yes, the turtle icon means Virtualbox is not able to use hardware virtualization. The most likely causes for that are that VT-x / Intel Virtualization Technology is not enabled in the BIOS or that Windows Hyper-V (and related settings mentioned in my last post) are still enabled and need to be disabled.

Maybe double-check that those Hyper-V settings are all disabled, then reboot your computer in case the changes don’t take effect right away. And then double check that VT-x / Intel Virtualization Technology is enabled in the BIOS when it boots up again.

Also, in the VM settings, check a couple of items under Settings → Expert:

  • System → Acceleration:
    – Ensure “Enable Nested Paging” is checked
  • System → Motherboard:
    – Make sure I/O APIC is enabled

I spent almost $400 on this NUC ( NUC14MNK-B2 barebone, NVME and DDR5) and spent the last three months, trying to make it work in Fedora, Ubuntu, even StartOS. All failed with a mysterious network issue (couldn’t get the IP). Then Windows 11 OS had no problem what so ever…until I tried the VirtualBox. With the turtle icon, my IBD is getting about 0.04% per hour. I checked everything.
Knots settings
Database Cache Set to 8GB
Disable Clearnet unchecked
Peer connections: 8 outbound connections
VirtualBox Settings
RAM Allocation: Increased to 12GB (12288 MB).
CPU Allocation: Set to 2 Cores.
Storage I/O: “Host I/O Cache” Enabled.
Network Adapter: Changed to “Bridged Adapter”.
BIOS Settings (The Physical Hardware)
Intel VT-x: Verified Enabled.
Intel VT-d: Verified Enabled.
Turbo Boost: Verified Enabled.
Secure Boot: Disabled.
In Windows Features,
Virtual Machine Platform unchecked
Windows Hypervisor Platform unchecked
Memory Integrity set to OFF

Even after disabling those features in command prompt, when I reboot and open msinfo32, it shows “Virtualization-based security: Running,” which I understand is the cause of the turtle icon-the VM is prevented from utilizing the host hardware.

At this point, I have to give up running a node. I hope this thread can help someone think twice before buying a NUC for a Bitcoin node. Thank you for all your help, Paul.

Do live in the US? If so, I’ll trade you for a different miniPC that works (just pay for the shipping). I have a Minisforum NAB9 that I got to help another forum member with a problem. When @ricksanch sends me his RAM stick (I’m exchanging with him for one that works on his GMKTec G3) I can use that for the RAM, and I’ve got a couple different NVMe’s of different sizes that I’m not using. What size NVMe do you have in your device now?

If an exchange is possible, I’d definitely like to debug this one and see what is going wrong with it (and if there is any configuration that can work).

Yes, I live in Minnesota. Let’s trade. At this point, I got nothin to lose. Haha. WD Blue SN580 NVMe™ SSD - 2TB

Cool, I sent you a DM. Just reply to it to send me your shipping address.

The NUC arrived today, thanks! I have done a little testing on it. StartOS cannot be run on it natively, due to two conflicting issues:

  1. The display drivers are missing, so it crashes if you plug in a monitor. The nonfree installer also does not have the proper display driver, so using it doesn’t help.
  2. The network card (Realtek RTL8125BG-CG) is not supported on older Linux kernel versions, including the one which the current release of StartOS (0.3.5.1) ships with.

So since you cannot connect a monitor, it must be set up headless. But since the network card isn’t supported, you cannot set it up that way either.

I noticed that recent linux versions (such as Mint 22.2) support the network card, so one could go with VB or KVM. But I think I’ll use this to demonstrate running StartOS in Proxmox. This is the optimal way to run StartOS on an incompatible device as a dedicated server (where you will not be using the device for anything else, only as a server). I’ve been planning to do a video on that, so this will be the perfect device to use for it.

If I have some time later, I may also dig into why VirtualBox on Windows was not using virtualization when you were running StartOS that way. This will just be out of curiosity, though (Proxmox is a better option for this use case)

StartOS installed in Proxmox. Knots is now running the IBD. Fingers crossed that it doesn’t go painfully slow in this setup…

1 Like

Paul, how is the IBD speed with Proxmox?

Currently at 81% (18 hours in), which is pretty normal for the amount of RAM. I reserved 2 GB for Proxmox, so Knots has 14 GB to work with. It is DDR5 though, so I’m sure that doesn’t hurt :smiley:

1 Like