This is a common Linux problem that I didn't expect to see in Garuda since it's half-geared towards performance. While copying a large amount of data/files drive-to-drive, dolphin copies a batch of files, KDE freezes, and then another batch is processed. This happens periodically until all data is copied. To make this matter worse, baloo will be indexing after each batch, compounding the problem.
I love Garuda so far but this is not the way. I'm not very familiar with the intricacies of ramdisk but this file copying problem has common (Not accounting for ramdisk) solutions.
Upon further inspection, Garuda's defaults are...
/proc/sys/vm/dirty_background_bytes == 0
/proc/sys/vm/dirty_bytes == 0
/proc/sys/vm/dirty_background_ratio == 20
/proc/sys/vm/dirty_ratio == 50
/proc/sys/vm/dirty_expire_centisecs = 3000
Are these good for 64GB of RAM and combition of SSD + HDD? Probably not. My drives are:
/dev/nvme1n1
- (System drive NVMe SSD - luks/btrfs by Garuda default)
/dev/nvme0n1
- (Backup drive NVMe SSD - veracrypt AES/ext4)
/dev/sda1
- (Backup drive HDD 7200RPM - veracrypt AES/ext4)
Unfortunately, I don't know how to replicate the success of my previous install. Even if I set sysctl.conf to what it was in my last install, Garuda still suffers the same problem. Trying to restore my backups has been hell. I have tried a few different dirty cache settings:
###################################################################
# Magic system request Key
# 0=disable, 1=enable all
# Debian kernels have this set to 0 (disable the key)
# See https://www.kernel.org/doc/Documentation/sysrq.txt
# for what other values do
kernel.sysrq=1
#vm.dirty_background_bytes = 107374182
#vm.dirty_bytes = 214748365
#vm.dirty_background_ratio = 0
#vm.dirty_ratio = 0
# Settings from: https://gpdb.docs.pivotal.io/6-0/install_guide/prep_os.html#topic3__sysctl_file
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
# Settings from: https://gpdb.docs.pivotal.io/6-0/install_guide/prep_os.html#topic3__system_memory
# For systems with 64GB of memory or less:
#vm.dirty_background_ratio = 3
#vm.dirty_ratio = 10
# For systems with more than 64GB of memory:
vm.dirty_background_ratio = 0
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736 # 1.5GB
vm.dirty_bytes = 4294967296 # 4GB
# From previous install
#vm.dirty_bytes = 50331648
#vm.dirty_background_bytes = 16777216
# Arangodb
vm.max_map_count = 768000
The uncommented lines are from my last attempt. It seems like setting the sync limits low or high doesn't solve the problem. The system will lock during transfers. The system also lags periodically during normal operation, presumably when the write cache fills and is being emptied.
2 outputs from watch -n 1 cat /proc/meminfo
during a transfer:
MemTotal: 65763072 kB
MemFree: 562692 kB
MemAvailable: 51434532 kB
Buffers: 20248 kB
Cached: 48494444 kB
SwapCached: 5272 kB
Active: 12441324 kB
Inactive: 46240220 kB
Active(anon): 8281572 kB
Inactive(anon): 2439412 kB
Active(file): 4159752 kB
Inactive(file): 43800808 kB
Unevictable: 276332 kB
Mlocked: 276332 kB
SwapTotal: 65763024 kB
SwapFree: 64266448 kB
Dirty: 23024 kB
Writeback: 259688 kB
AnonPages: 10082212 kB
Mapped: 2617760 kB
#################################
#################################
MemTotal: 65763072 kB
MemFree: 985444 kB
MemAvailable: 51357120 kB
Buffers: 20248 kB
Cached: 47983364 kB
SwapCached: 5732 kB
Active: 12514040 kB
Inactive: 45547992 kB
Active(anon): 8253760 kB
Inactive(anon): 2360672 kB
Active(file): 4260280 kB
Inactive(file): 43187320 kB
Unevictable: 276400 kB
Mlocked: 276400 kB
SwapTotal: 65763024 kB
SwapFree: 64158160 kB
Dirty: 18784 kB
Writeback: 352320 kB
AnonPages: 9974920 kB
Mapped: 2601732 kB
What can I do make this system stable?
Some links I referenced before posting: