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
3 hours ago, Nyghthawk said:

 

 

2 hours ago, MMW said:

 

 

Nyghthawk & MMW - please update the Docker app and pull up the app. Scroll down to the bottom of the page below the Rescan buttons are located and click on "Create Debug File". This will create a file located in the <appdata>/DiskSpeed directory to email me at [email protected]

  • 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

28 minutes ago, jbartlett said:

Keep drive edits after rescanning the controllers

Works great. Thanks for the quick fix.

  • Author

Beta 2d uploaded

  • Add Scroll to Top button
  • Save the last benchmark spot as the capacity of the drive instead of the computed offset where it reads from to reach the end of the drive
Scanning Hardware
10:56:13 Spinning up hard drives
10:56:13 Scanning storage controllers
10:56:15 Scanning hard drives
Lucee 5.2.6.59 Error (expression)
Message 	Element at position [1] does not exist in list
Stacktrace 	The Error Occurred in
/var/www/ScanControllers.cfm: line 421

    419: <CFLOOP index="Key" list="#StructKeyList(HW)#">
    420: <CFLOOP index="PortNo" from="1" to="#ArrayLen(HW[Key].Ports)#">
    421: <CFIF HW[Key].Ports[PortNo].DevicePath NEQ "">
    422: <cfexecute name="/bin/ls" arguments="-l #HW[Key].Ports[PortNo].DevicePath#" timeout="300" variable="tmp" />
    423: <CFSET dir=ListToArray(tmp,Chr(10))>

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

    414: </CFIF>
    415: </CFIF>
    416: </CFLOOP>
    417:
    418: <!--- Fetch drive attributes --->

Java Stacktrace 	lucee.runtime.exp.ExpressionException: Element at position [1] does not exist in list
 	at lucee.runtime.type.wrap.ListAsArray.getE(ListAsArray.java:110)
 	at lucee.runtime.type.wrap.ListAsArray.get(ListAsArray.java:275)
 	at lucee.runtime.type.wrap.ListAsArray.get(ListAsArray.java:280)
 	at lucee.runtime.type.util.ArraySupport.get(ArraySupport.java:327)
 	at lucee.runtime.util.VariableUtilImpl.get(VariableUtilImpl.java:263)
 	at lucee.runtime.util.VariableUtilImpl.getCollection(VariableUtilImpl.java:257)
 	at lucee.runtime.PageContextImpl.getCollection(PageContextImpl.java:1447)
 	at scancontrollers_cfm$cf.call_000037(/ScanControllers.cfm:421)
 	at scancontrollers_cfm$cf.call(/ScanControllers.cfm:416)
 	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:939)
 	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:833)
 	at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:63)
 	at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:44)
 	at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2405)
 	at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2395)
 	at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2363)
 	at lucee.runtime.engine.Request.exe(Request.java:44)
 	at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1091)
 	at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1039)
 	at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:102)
 	at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
 	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
 	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:676)
 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
 	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
 	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
 	at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2464)
 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 	at java.lang.Thread.run(Thread.java:748)
 
Timestamp 	4/3/18 10:56:16 AM EDT 

 

18 hours ago, jbartlett said:

 

 

Nyghthawk & MMW - please update the Docker app and pull up the app. Scroll down to the bottom of the page below the Rescan buttons are located and click on "Create Debug File". This will create a file located in the <appdata>/DiskSpeed directory to email me at [email protected]

 

Hi, I sent this earlier this morning, just wanted to check it arrived ok.

  • Author
1 minute ago, MMW said:

Hi, I sent this earlier this morning, just wanted to check it arrived ok.

 

Got it, thanks! Working on adding code to let me switch between debug files and load the exec results instead of actually executing the command.

  • Author
3 hours ago, Dephcon said:

Element at position [1] does not exist in list

 

Can you run this URL? Plug in the IP with your unRAID IP address or just copy & paste everything after the port

http://[ip]:18888/isolated/CreateDebugInfo.cfm

Glad you got it, hopefully it can update, cause the drive(s) that I think is the problem drive(s) are the ones that arent being found lol!

Anybody having trouble pulling the docker down.  I downloaded the xml file and uploaded to flash as my-Diskspeed.xml

 

After pulling the fs layer I get....

 

Error: error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/99/99f826b4904595eb9a74607c19a094bc081a5bce3207e8534dca548ccc98ec96/data?Expires=1522846668&Signature=ZkYgL1dLS1ZDM49hidy5hLFEDzDQ9Jzl~6rm8xelIOF-fBSHg4EnOeoRrPyvgwgbYyG26vCPTsBSvqjMB3AVBMcRwAzGcJXkMdqnFEvmxQzxLG~5Ri9-o1QDMX8iIlyfu-rZSarW8posR-LDANxYPfRh~_&Key-Pair-Id=APKAJECH5M7VWI: net/http: TLS handshake timeout

 

  • Author
5 hours ago, tr0910 said:

Anybody having trouble pulling the docker down. 

 

That looks like an issue with one of the docker hub mirrors. If you try again after after a short bit, it may work. But there's nothing I can really do to fix it that I can think of other than making another push.

  • Author

Needed to purge all the uploaded benchmarks due to how the last 100% scan spot was given. When the benchmarking process reads the spot just prior to 100%, it sees how much data was read and then moves back from the end of the drive that amount plus a couple extra blocks. It was marking the start of the last block as the scan position instead of as the total capacity of the drive itself. On the HDDB, this resulted in scans from multiple people having different end points based on the negotiation between the drive & OS for the optimal block size and the graphs would have a flat line at the right end.

 

In a previous beta, I fixed that so the last spot at 100% is recorded as happening at the end of the drive instead of the offset but there was no way I could easily identify sets of data in the table since there was no field grouping sets together. Now there is. Benchmarks will continue to float in over time to rebuild the HSDB and I'll be able to manually fix any benchmarks where the last spot which doesn't match the drive capacity.

 

The drive information in the HSDB wasn't touched.

2 hours ago, jbartlett said:

 

That looks like an issue with one of the docker hub mirrors. If you try again after after a short bit, it may work. But there's nothing I can really do to fix it that I can think of other than making another push.

Might be my connection to docker hub.  This server is in China behind the GFW.  They might be blocking something new today....

Great little app.  It would be sweet though if the two halves of the screen were able to scroll separately from each other (so that when I have to scroll down on the left to find a drive and click on it to see it's benchmark, the display doesn't scroll up to the top)

came across an error during loading. by the way thanks for the awesome work!!

DiskSpeed - Disk Diagnostics & Reporting tool
Version: Beta 2d
 

Scanning Hardware
23:10:36 Spinning up hard drives
23:10:37 Scanning storage controllers
23:11:29 Found Controller 82801JI (ICH10 Family) SATA AHCI Controller (6 ports)
23:11:29 Found Controller SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (8 ports)
23:11:29 Scanning hard drives

Lucee 5.2.6.59 Error (expression)
Message Element at position [15] does not exist in list
Stacktrace The Error Occurred in
/var/www/ScanControllers.cfm: line 421 
419: <CFLOOP index="Key" list="#StructKeyList(HW)#">
420: <CFLOOP index="PortNo" from="1" to="#ArrayLen(HW[Key].Ports)#">
421: <CFIF HW[Key].Ports[PortNo].DevicePath NEQ "">
422: <cfexecute name="/bin/ls" arguments="-l #HW[Key].Ports[PortNo].DevicePath#" timeout="300" variable="tmp" />
423: <CFSET dir=ListToArray(tmp,Chr(10))>
 
called from /var/www/ScanControllers.cfm: line 416 
414: </CFIF>
415: </CFIF>
416: </CFLOOP>
417: 
418: <!--- Fetch drive attributes --->
 
Java Stacktrace lucee.runtime.exp.ExpressionException: Element at position [15] does not exist in list
  at lucee.runtime.type.wrap.ListAsArray.getE(ListAsArray.java:110)
  at lucee.runtime.type.wrap.ListAsArray.get(ListAsArray.java:275)
  at lucee.runtime.type.wrap.ListAsArray.get(ListAsArray.java:280)
  at lucee.runtime.type.util.ArraySupport.get(ArraySupport.java:327)
  at lucee.runtime.util.VariableUtilImpl.get(VariableUtilImpl.java:263)
  at lucee.runtime.util.VariableUtilImpl.getCollection(VariableUtilImpl.java:257)
  at lucee.runtime.PageContextImpl.getCollection(PageContextImpl.java:1447)
  at scancontrollers_cfm$cf.call_000037(/ScanControllers.cfm:421)
  at scancontrollers_cfm$cf.call(/ScanControllers.cfm:416)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:939)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:833)
  at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:63)
  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:44)
  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2405)
  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2395)
  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2363)
  at lucee.runtime.engine.Request.exe(Request.java:44)
  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1091)
  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1039)
  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:102)
  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
  at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:676)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
  at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
  at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
  at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2464)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  at java.lang.Thread.run(Thread.java:748)
 
Timestamp 4/5/18 11:11:35 PM CDT

When do you think you can add this to community plugin? :)

22 minutes ago, nuhll said:

When do you think you can add this to community plugin? :)

It’s already there.

Perfedct, thanks, you should probably edit the 1. post.

 

Ill try, thank you very much.

  • Author
On 4/5/2018 at 3:03 PM, Squid said:

Great little app.  It would be sweet though if the two halves of the screen were able to scroll separately from each other (so that when I have to scroll down on the left to find a drive and click on it to see it's benchmark, the display doesn't scroll up to the top)

 

I agree! haha

  • Author

Beta 3a posted

  • Single thread the process which analyzes & cleans up the benchmarks to prevent against a race condition where two threads try to process it at the same time
  • Reworked how NVMe drives are detected
  • Scan all PCI root ports for controllers
  • Modified IOMMU detection

If you had missing drives or couldn't get past the scanning hardware screen, please update and try again.

 

If you can't get past the Scanning Hardware screen, change the URL from http://[ip]:[port]/ScanControllers.cfm to http://[ip]:[port]/isolated/CreateDebugInfo.cfm and hit enter.

Are speed variations like this normal in an SSD?

image.png.f0ca0c9504fb61dbc471952082d4db4d.png

 

Suddenly becomes a drive hypochondriac!

  • Author

Dude. What you've been getting shouldn't be possible.

 

SSD's should always be a nice smooth line. In fact, earlier today I took the graphs off the HDDB and replaced it with an average read speed over the entire drive because graphs are practically useless for SSD's.

What about if they get hot?

Mine slow down / throttle a lot if they get too hot (after transferring 10s GBs of data)

Honestly, it could be related to the mce's I've been having. I've got to get the CPU replaced. I should probably stop worrying about anything until that's taken care of first.

 

I always do my best to come up with the weird situations, though!

Edited by FreeMan

sadly it doenst work for me.

 

It recognize everything (impressive!)

 

But

 

- wont spin up drives after clicking start benchmark (if i spin up manually, it starts)

- is not able to do benchmark to the end (it says "abort?") and after some times all disks go to sleep again...

 

edit: 

i try new version

 

edit2:

Nop, still wont spin up, but if i spin up, it works, lets see if it can finish atleast... 

 

edit3:

what does 

 

SAS2116 PCI-Express Fusion-MPT SAS-2 [Meteor]: Scanning Disk 7 (sdm) at 0 GB (0%) - Speed Gap of 58.98 MB (max allowed is 50 MB), retrying (2)

 

mean?

 

edit4:

okay it wont finish this time also, it says it benchmarks disk 8, but 8 is already spun down... so it will never finish.. :(

Edited by nuhll

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.