Jump to content

User Share really slow - shfs high cpu load


bulbur

Recommended Posts

Hi,

 

I've started yesterday to test out unraid and see if it fits my needs, so I'm pretty new here ;)

I have created an array of 3 disks and have no parity disk yet. The disk that should become the parity disk at the moment has all the data and I am trying to move it to to the array.

The first problem is that copying from the unassigned disk (toshiba) to the array is really slow. Especially since I have a lot of small files. It took the whole day copying four folders that sum op to this:

Total occupied space: 399 GB in 263,127 folders and 1,024,819 files

 

I have copied the folders to a user share called Backup. The location of the share is disk3.

 

I did expect it to be slow, so maybe that is normal. But what bothers me more is what occurred when I investigated:

Calculating the size by clicking the "Calculate" button in the web file browser (it seems to use rsync -stats in the background) takes ages on the user share.

  • Calculate on the source drive (toshiba) takes circa 15 seconds.
  • Calculate on Main->disk3 also takes circa 15 seconds
  • Calculate on the share in Shares-> User Shares doesn't finish in a reasonable time (I've canceled it after maybe 10 minutes). According to top rsync uses 15% cpu and shfs 75%

 

My hardware is

  • Mainboard: ASRock J3455-ITX
  • CPU: Intel® Celeron® CPU J3455 @ 1.50GHz
  • Memory: 12 GiB DDR3
  • Drives (hdd connected using SATA):
    • 2x Seagate Barracuda 7200.14 (array disk2+3) 3TB

    • 1x Western Digital Red 4TB (array disk1)

    • Toshiba MG06ACA 8TB

    • SSD as cache (usb)

 

Has anyone an explanation for this? I am glad for every help 😃

 

 

Edit: directly after writing the post I noticed that there are some SMART errors on the device. I have attached the error log and a screenshot of the smart attributes. I did a SMART short self-test which completed without error.

 

 

disk3 smart attributes.png

error_log.txt

Edited by bulbur
Link to comment
  • 2 months later...

I have a similar issue while migrating a disk with a lot of tiny files to my array. When writing to /mnt/user/share, i get abysmal performance with rsync.

I have read that using "exclusive shares" bypasses the actual bottleneck, FUSE. Can i just enable exclusive shares, and add a new one to the share i want to transfer my files to? Do i have to worry about actual disks, eg. do they split the folders like they would with a "normal" share?

Link to comment
5 minutes ago, newhinton said:

I have read that using "exclusive shares" bypasses the actual bottleneck, FUSE. Can i just enable exclusive shares, and add a new one to the share i want to transfer my files to? Do i have to worry about actual disks, eg. do they split the folders like they would with a "normal" share?

 

I think you have misunderstood Exclusive shares?   They can only apply to User Shares where all files/folders exist on a single drive or pool.

Link to comment
4 minutes ago, itimpi said:

 

I think you have misunderstood Exclusive shares?   They can only apply to User Shares where all files/folders exist on a single drive or pool.

Maybe! But i only have one pool of two disks in an array.

 

Generally, my goal is to rsync all my data to the unraid system, preferably fast. If there is a different way, im open to suggestions!

Link to comment
15 minutes ago, JorgeB said:

You can try rsync to a disk share, that will confirm if FUSE is the issue, it can be with many small files.

I did try to write directly to /mnt/disk1. It seems to be far faster, the initial incremental file list takes only minutes instead of the better part of an hour.

I assume when i directly use /mnt/diskX, i can only use empty directories, otherwise i would get into trouble with the array-aggretation wont i?
Restarting from scratch is generally not a problem, so i will delete and resync to a single disk if i have to. But is there a way to high-speed write directly to all drives with rsync? If that isn't (relatively easily) possible i'll just start over.

Thanks for your help either way!

Link to comment
1 hour ago, newhinton said:

I assume when i directly use /mnt/diskX, i can only use empty directories, otherwise i would get into trouble with the array-aggretation wont i?

No, but if all doesn't fit on the same disk you'd need to cancel and then rsync to the user share, also note that rsync creates all folders first, so if cancelled, disk1 will be left with many empty folders, that can be important if split level is used for that share.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...