Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

DiskSpeed, hdd/ssd benchmarking (unRAID 6+), version 2.10.10

Featured Replies

  • Author
50 minutes ago, johnsanc said:

 Sorry, I probably wasn't clear. A picture is always better:
image.png.15d6c4f15e2a9571a86538b01a3819fa.png

I can see its ordered by Parity, then data, then pools. But the data disks are sorted as strings instead of by disk number.

I think it should be Data 1, Data 2, Data 3, etc. instead of Data 1, Data 10, Data 11, etc.

Ah, I see what you mean now. I don't have a system with more than 9 drives so I've never ran into this situation. I can probably resolve this by zero padding the drive number ("Disk 01" instead of "Disk 1") and then replacing " 0" with a space after the sort.

  • Replies 1.1k
  • Views 389.1k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • jbartlett
    jbartlett

    When I tested this utility against my production server, I noticed that I had a drive going wonky on me. I couldn't even test it at first because it kept tripping the SpeedGap detection in which the m

  • jbartlett
    jbartlett

    I'm taking this application out of BETA status. Version 2.0 has been released.   Release 2.0 Added progress bars to the drive benchmarking Rewrote the Controller Benchmark to be

  • Right Proper SSD benchmarking has been added. To perform a benchmark, a configurable number of test files of a given size (defaults to 10 2GB files) are written to the drive and then read back. The ov

Posted Images

13 hours ago, jbartlett said:

I added partial support for CD-ROM's in displaying them on the controller page but it required a lot of checks to be added throughout the app. This particular issue doesn't happen for me on my dev & prod system so not sure why it's happening for you but I added the CD-ROM check there. Please update and try again. It will reflect version 2.10.9.7

Updated. Error is gone. Thanks :)

I've used DiskSpeed successfully in the past with a mix of mechanical and NVME drives (Thanks!), but recently got an SSD and wanted to see how it compares.  Now when I launch DiskSpeed it gets stuck in a disk scanning loop.  It scans normally and says it saved the configuration, but when I hit "continue" it throws an error "The saved configuration file was invalid" and scans again... ad nauseum.

 

I tried deleting the docker, removing the orphan docker image, re-installing the docker... same issue.

 

Any suggestions?  Thanks!

  • Author
8 hours ago, Glide said:

I've used DiskSpeed successfully in the past with a mix of mechanical and NVME drives (Thanks!), but recently got an SSD and wanted to see how it compares.  Now when I launch DiskSpeed it gets stuck in a disk scanning loop.  It scans normally and says it saved the configuration, but when I hit "continue" it throws an error "The saved configuration file was invalid" and scans again... ad nauseum.

 

I tried deleting the docker, removing the orphan docker image, re-installing the docker... same issue.

 

Any suggestions?  Thanks!

 

I had that happen on the version I'm working on trying to add ZFS benchmarking but not on the version you are using. I backported that fix, please update your Docker and try again. The version should reflect version 2.10.9.8.

No ZFS here, but I am on 2.10.9.7, I'll try again when I see .8

Thanks!

  • Author
20 hours ago, Glide said:

No ZFS here, but I am on 2.10.9.7, I'll try again when I see .8

Thanks!

 

That was weird. I pushed .8 but even after force updating the docker, it still reflected .7. Rebuilding didn't fix, I had to edit one of the files and add a line feed for it to push .8 out. Please try now.

.8 fixed it, thanks!

  • jbartlett changed the title to DiskSpeed, hdd/ssd benchmarking (unRAID 6+), version 2.10.9
  • 1 month later...

Is it possible to test NVMEs in a zfs pool? I have 2 1tb drives in a striped zfs pool acting as my cache and I would like to benchmark performance. I see this

Screenshot2024-10-10at2_31_53PM.thumb.png.6c4d28a890f8af1e3bfefe050ae69ee8.png

for the first drive and thisScreenshot2024-10-10at2_32_55PM.thumb.png.9de11a9d947122c79171eab9c1778986.png

on the second drive.

First message leads me to believe that testing ssds in a zfs pool is not possible but thought I would check

  • Author
On 10/10/2024 at 2:34 PM, fadynakhla said:

Is it possible to test NVMEs in a zfs pool? I have 2 1tb drives in a striped zfs pool acting as my cache and I would like to benchmark performance. I see this

Screenshot2024-10-10at2_31_53PM.thumb.png.6c4d28a890f8af1e3bfefe050ae69ee8.png

for the first drive and thisScreenshot2024-10-10at2_32_55PM.thumb.png.9de11a9d947122c79171eab9c1778986.png

on the second drive.

First message leads me to believe that testing ssds in a zfs pool is not possible but thought I would check

I'm working on adding proper ZFS support. It's turning out to be a lot more than just adding the ZFS utilities to the Docker, ZFS itself is fighting my benchmarks because it's such a damn good one for trying to make things run or look like it's running faster.

9 hours ago, jbartlett said:

ZFS itself is fighting my benchmarks because it's such a damn good one for trying to make things run or look like it's running faster.

It's difficult to benchmark zfs because of the ARC, once openzfs 2.3 is out it will be possible to use direct io, bypassing the ARC, that should give better results. 

  • 4 weeks later...

I can see all my drives but when I click on my Cache NVME to bench it I get the following error:

Unable to benchmark for the following reason
* Identified mount point /mnt/UNRAID/cache does not have 5GB available space. To benchmark drives with less space available, use the "Benchmark Buttons" from the main page.
You will need to restart the DiskSpeed docker after making changes to mounted drives for changes to take effect.
For more information how the benchmarks work, view the FAQ

I have /mnt/UNRAID to /mnt and also /mnt/UNRAID/Downloads to /mnt/user/Downloads.  The second one is where the cache drive share is, figured it was worth a shot, doesn't work with or without it either.  The drive is empty and has 1tb free.

image.thumb.png.e639bc701c24fbba7875f949459bde68.png

 

Edited by Mibix

  • Author
On 11/12/2024 at 1:20 PM, Mibix said:

I can see all my drives but when I click on my Cache NVME to bench it I get the following error:

Unable to benchmark for the following reason
* Identified mount point /mnt/UNRAID/cache does not have 5GB available space. To benchmark drives with less space available, use the "Benchmark Buttons" from the main page.
You will need to restart the DiskSpeed docker after making changes to mounted drives for changes to take effect.
For more information how the benchmarks work, view the FAQ

I have /mnt/UNRAID to /mnt and also /mnt/UNRAID/Downloads to /mnt/user/Downloads.  The second one is where the cache drive share is, figured it was worth a shot, doesn't work with or without it either.  The drive is empty and has 1tb free.

 

 

It only needs /mnt on the host mapped to /mnt/UNRAID on the docker. Ensure you have it set to Read/Write as well.

 

You can also try clicking on the DiskSpeed docker icon and selecting "Console", then entering "df | grep cache$" and see what the free percentage is that Docker sees.

47 minutes ago, jbartlett said:

It only needs /mnt on the host mapped to /mnt/UNRAID on the docker. Ensure you have it set to Read/Write as well.

 

You can also try clicking on the DiskSpeed docker icon and selecting "Console", then entering "df | grep cache$" and see what the free percentage is that Docker sees.

Seems to have started working now.  I did add another nvme though.  I'm guessing that if diskspeed is running off of the nvme I'm testing on, it will get much lower speeds 😆

  • Author
23 hours ago, Mibix said:

Seems to have started working now.  I did add another nvme though.  I'm guessing that if diskspeed is running off of the nvme I'm testing on, it will get much lower speeds 😆

It shouldn't, it does log things as it runs but the impact wouldn't be high enough to be noticeable, no more than the margin of error from running any kind of benchmark on any device over & over.

 

I am working on a method of benchmarking using random data without hitting against /dev/random as I've seen the generation speed to be slow.

  • 1 month later...

Does this not benchmark disks attached to a USB dock? When I run it all controllers are detected (SATA + USB) and all the (currently unassigned) drives are shown (Though the USB ones as USB sticks) but when I try to bench mark I get a blank screen with "abort benchmarking" as the only UX on screen (aside from title on top of screen) - Any ideas?

Edited by SteamedLobster

  • Author
On 1/19/2025 at 5:34 AM, SteamedLobster said:

Does this not benchmark disks attached to a USB dock? When I run it all controllers are detected (SATA + USB) and all the (currently unassigned) drives are shown (Though the USB ones as USB sticks) but when I try to bench mark I get a blank screen with "abort benchmarking" as the only UX on screen (aside from title on top of screen) - Any ideas?

I had the intention to unlock USB bench marking - it was originally coded to not as it has the strong possibility of skewing the speeds to the low end - but it seems I had partially unlocked it in the drive selection but not in the benchmarking logic. I'll see about taking a look at it.

9 hours ago, jbartlett said:

I had the intention to unlock USB bench marking - it was originally coded to not as it has the strong possibility of skewing the speeds to the low end - but it seems I had partially unlocked it in the drive selection but not in the benchmarking logic. I'll see about taking a look at it.

Thanks would be handy as I want to bench mark the drives in the enclosure and then when it's connected off a usb 3.2 hub instead of directly to the PC. 

Was wanting to benchmark a NVME plugged into a USB3 enclosure to see if it was faster than my current cache drive, but still no option to do so.  If you're worried about USB lowering the results, just give them a checkbox they need to click so they're aware of the interface potentially being a limiting factor.

  • 5 weeks later...

Got this error, I think is no love for my Kioxia SSD. :)

 

But the problem is actually the fact that I can't use the tool in any way on the rest of the drives, basically because it thows this error on Kioxia, it locks there, is not ignoring the drive and moves along with other things.

 

 

DiskSpeed - Disk Diagnostics & Reporting tool
Version: 2.10.9.8

Scanning Hardware - A change was detected on the drive configuration.
10:28:30 Spinning up hard drives
10:28:30 Scanning system storage
10:28:31 Scanning USB Bus
10:28:31 Scanning hard drives
10:28:33 Scanning storage controllers
10:28:33 Scanning USB hubs & devices
10:28:34 Scanning motherboard resources
10:28:34 Fetching known drive vendors from the Hard Drive Database

Lucee 6.1.1.75-SNAPSHOT Error (expression)

MessageCan't cast Complex Object Type Struct to String

DetailUse Built-In-Function "serialize(Struct):String" to create a String from Struct

StacktraceThe Error Occurred in
/var/www/ScanControllers.cfm: line 1856

1854: if (Left(DriveData[i].Vendor,8) EQ "Sabrent ") {DriveData[i].Vendor="Sabrent";DriveData[i].Model=Mid(DriveData[i].Model,9,999);}
1855:
1856: if (Left(DriveData[i].Vendor,7) EQ "KIOXIA-") {DriveData[i].Vendor="KIOXIA";DriveData[i].Model=Mid(DriveData[i],8,999) & " " & DriveData[i].Model;}
1857: if (REFindNoCase("SSDPR-[A-Z0-9]+?-\d+?-",DriveData[i].Vendor)) DriveData[i].Vendor="GOODRAM";
1858: if (REFindNoCase("TP\w\d+?GB",DriveData[i].Vendor)) {DriveData[i].Model=DriveData[i].Vendor;DriveData[i].Vendor="HGST";}

called from /var/www/ScanControllers.cfm: line 1697

1695:
1696: <!--- Drive model cleanup --->
1697: <CFLOOP index="Key" list="#StructKeyList(HW)#">
1698:    <CFLOOP index="PortNo" from="1" to="#ArrayLen(HW[Key].Ports)#">
1699:       <CFIF StructKeyList(HW[Key].Ports[PortNo].Attrib) NEQ "">

called from /var/www/ScanControllers.cfm: line 948

946:       </CFLOOP>
947:    </CFIF>
948: </CFLOOP>
949:
950: <!--- Get drive information for NVME drives using nvmi-cli --->

Java Stacktracelucee.runtime.exp.ExpressionException: Can't cast Complex Object Type Struct to String
  at lucee.runtime.type.util.StructSupport.castToString(StructSupport.java:205)
  at lucee.runtime.op.Caster.toString(Caster.java:2121)
  at scancontrollers_cfm$cf.call_000102_000131(/ScanControllers.cfm:1856)
  at scancontrollers_cfm$cf.call_000102(/ScanControllers.cfm:1697)
  at scancontrollers_cfm$cf.call(/ScanControllers.cfm:948)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1046)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:940)
  at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:63)
  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:42)
  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2725)
  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2712)
  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2683)
  at lucee.runtime.engine.Request.exe(Request.java:45)
  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1160)
  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1117)
  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:42)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:761)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)
  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936)
  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
  at java.base/java.lang.Thread.run(Unknown Source)

Timestamp2/27/25 10:28:36 AM EET

 

  • 2 weeks later...
  • Author
On 2/27/2025 at 12:37 AM, AriseZC said:

Got this error, I think is no love for my Kioxia SSD. :)

 

But the problem is actually the fact that I can't use the tool in any way on the rest of the drives, basically because it thows this error on Kioxia, it locks there, is not ignoring the drive and moves along with other things.

 

Please update, it should reflect version 2.10.9.9, and you should get your Kioxia love back

Hello guys, Is there anyway to check UNASSIGNED DEVICES ?

image.thumb.png.f6258308633b382e8ffdeaa2f7137789.png

Normal attached disks (Sata for example), are working fine, but for some reason usb attached disks wont let me test the speed, its there any workaround so It will let me test the usb attached disks speeds ?

image.thumb.png.a4f3a9ce60c8f0c89166ccd2e035718f.png

Thanks in advance.

 

  • 2 weeks later...
On 10/16/2024 at 11:45 PM, jbartlett said:

I'm working on adding proper ZFS support. It's turning out to be a lot more than just adding the ZFS utilities to the Docker, ZFS itself is fighting my benchmarks because it's such a damn good one for trying to make things run or look like it's running faster.


Hi @jbartlett, is ZFS support now implemented or not yet?

  • Author
On 3/21/2025 at 3:57 PM, Andrea3000 said:


Hi @jbartlett, is ZFS support now implemented or not yet?

Benchmarking ZFS solid state drives is not yet supported, but if you're using spinners, it doesn't matter what the file system is, or if there is one at all.

Edited by jbartlett

  • Author
On 3/13/2025 at 11:27 AM, Ninnetyer said:

Normal attached disks (Sata for example), are working fine, but for some reason usb attached disks wont let me test the speed, its there any workaround so It will let me test the usb attached disks speeds ?

The current version doesn't allow benchmarking USB attached drives. I do plan on adding support in the futureTM

Is it possible to have all disks get tested at once, instead of one after the other?
I would like to use this to test a RAID card in a pci slot, to see if it's bottle necking the drives when multiple are used at once.

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.