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


Recommended Posts

35 minutes ago, vizi0n said:

Hi !

 

My cache SSD is stuck at 0% Trimming when I try to bench it using this tool. Anything special I can try ?

 

Click on the period (just to the right of it) at the end of "hide or show it" line when benchmarking to display the hidden iframes that are doing the actual work. If there was an error during the trim process, it will show up there. Copy-n-paste that error here (note you don't need the java stack trace if displayed)

Link to comment

@jbartlett thanks for the hint.

 

Here is the output of the debug log from the dot

 

Most likely that my controller does not support TRIM

 

SSD Run Slot: 1
19:30:31 Performing random seek tests
19:30:41 Performing sequential seek tests
19:30:53 Performing drive latency tests
Random Seek: 49697
SequentialSeek: 5018
DriveLatency: 1633261
Lucee 5.3.10.120 Error (application)
Message 	Error invoking external process
Detail 	fstrim: /mnt/UNRAID/cache: FITRIM ioctl failed: Remote I/O error
Stacktrace 	The Error Occurred in
/var/www/BenchmarkDriveController.cfm: line 234

    232:
    233: <CFFILE action="write" file="#OutDir#/trim.sh" mode="766" output="fstrim #MountPoint#" addnewline="NO">
    234: <CFEXECUTE name="#OutDir#/trim.sh" timeout="3060" />
    235: <CFSET WriteSpeedList="">
    236: <CFSET TotalTestFiles=0>

 

Edited by vizi0n
  • Thanks 1
Link to comment
On 5/4/2023 at 1:44 AM, jbartlett said:

 

Click on the period (just to the right of it) at the end of "hide or show it" line when benchmarking to display the hidden iframes that are doing the actual work. If there was an error during the trim process, it will show up there.

apologies for the delay... This is what I have got,... itàs been like this for more than half an hour...image.png.a2f11217145bed10c17d668d36c8ae86.png 

Link to comment
8 hours ago, Marcco said:

apologies for the delay... This is what I have got,... itàs been like this for more than half an hour...

 

It errored, probably your nvme drive doesn't support the trim function. If you click on that hidden link I mentioned, it would show the error message (same as in a recent previous post in this thread). I added a fix which will be on the next release. I'm working on adding more than 4 write threads but it seems to barf at 8 threads but works on others - trying to figure out why.

  • Like 1
Link to comment
12 hours ago, jbartlett said:

 

It errored, probably your nvme drive doesn't support the trim function. If you click on that hidden link I mentioned, it would show the error message (same as in a recent previous post in this thread). I added a fix which will be on the next release. I'm working on adding more than 4 write threads but it seems to barf at 8 threads but works on others - trying to figure out why.

I wish I could but I have clicked all around without finding the link you mentioned

Link to comment
On 5/14/2023 at 10:09 AM, Marcco said:

I wish I could but I have clicked all around without finding the link you mentioned

image.thumb.png.cc3b434db43fb8d64457ae1486eb1461.png

 

Hover just to the right of the period where marked here, the cursor will still have the text selection icon, if you see the arrow cursor, you're too far over.

Link to comment
  • 2 weeks later...

I'm also having this problem where nothing loads at benchmark page, I tried with version 2.10 and it also had this, but when I used the oldest image 2.9.4 everything worked just fine.

image.thumb.png.a1691c9e3ed17b8d2d8750607f00a71c.png

If I ispect the page this is the error:

image.png.19e7c88bd75f369d7dadd1e4e7f3f038.png

Also when I downgraded from 2.10.5 to 2.10 this error showed up on the right side of the interface (but I didn't delete the appdata folder, so this might be the cause to the error).

 

Lucee 5.3.10.97 Error (expression)

Messageinvalid call of the function listGetAt, second Argument (posNumber) is invalid, invalid string list index [4]

patternlistgetat(list:string, position:number, [delimiters:string, [includeEmptyFields:boolean]]):string

StacktraceThe Error Occurred in
/var/www/DispBenchmarkGraphs.cfm: line 6

4: <CFSET SSDsExist=ListGetAt(SeriesData,2,"|")>
5: <CFSET MaxSSDSpeed=ListGetAt(SeriesData,3,"|")>
6: <CFSET SSDScript=ListGetAt(SeriesData,4,"|")>
7: <CFSET SeriesData=ListDeleteAt(SeriesData,1,"|")>
8: <CFSET SeriesData=ListDeleteAt(SeriesData,1,"|")>
 

called from /var/www/DispOverview.cfm: line 76

74: </CFOUTPUT>
75:
76: <CFINCLUDE TEMPLATE="DispBenchmarkGraphs.cfm">
77:
78: <CFOUTPUT>
 

Java Stacktracelucee.runtime.exp.FunctionException: invalid call of the function listGetAt, second Argument (posNumber) is invalid, invalid string list index [4]
 

Spoiler

  at lucee.runtime.functions.list.ListGetAt.call(ListGetAt.java:46)
  at lucee.runtime.functions.list.ListGetAt.call(ListGetAt.java:40)
  at dispbenchmarkgraphs_cfm$cf.call(/DispBenchmarkGraphs.cfm:6)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1056)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:948)
  at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:929)
  at dispoverview_cfm$cf.call(/DispOverview.cfm:76)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1056)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:948)
  at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:65)
  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:45)
  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2493)
  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2478)
  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2449)
  at lucee.runtime.engine.Request.exe(Request.java:45)
  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1216)
  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1162)
  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
  at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:769)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789)
  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  at java.base/java.lang.Thread.run(Thread.java:829)

 

Link to comment

Assembled a new server and got 4 - 1TB NVMEs in a Asus Hyper M.2 card. All cards are mounted as individual cache pools. I added the path for SSDs but get this for the app-cache nvme. I can benchmark the other 3.

 

Identified mount point /mnt/UNRAID/app-cache does not have 5GB available space.

 

 

image.png.f4ad12c6ed959f30f47d628fdab0c5c8.png

 

Also..the graph values and speeds don't make sense.

 

image.png.45e268ae70197c84d7903ee1733728e7.png

Edited by Fuggin
Link to comment
On 5/14/2023 at 6:09 AM, jbartlett said:

 

It errored, probably your nvme drive doesn't support the trim function. If you click on that hidden link I mentioned, it would show the error message (same as in a recent previous post in this thread). I added a fix which will be on the next release. I'm working on adding more than 4 write threads but it seems to barf at 8 threads but works on others - trying to figure out why.

Same error here when trying to bench a SSD drive

 

Here you have log ouput:

 

SSD Run Slot: 1
11:49:45 Performing random seek tests
11:49:55 Performing sequential seek tests
11:50:07 Performing drive latency tests
Random Seek: 61641
SequentialSeek: 8264
DriveLatency: 1826272
Lucee 5.3.10.120 Error (application)
Message	Error invoking external process
Detail	fstrim: /mnt/UNRAID/disk2: the discard operation is not supported
Stacktrace	The Error Occurred in
/var/www/BenchmarkDriveController.cfm: line 234
232:
233: <CFFILE action="write" file="#OutDir#/trim.sh" mode="766" output="fstrim #MountPoint#" addnewline="NO">
234: <CFEXECUTE name="#OutDir#/trim.sh" timeout="3060" />
235: <CFSET WriteSpeedList="">
236: <CFSET TotalTestFiles=0>

Java Stacktrace	lucee.runtime.exp.ApplicationException: Error invoking external process
  at lucee.runtime.tag.Execute.doEndTag(Execute.java:266)
  at benchmarkdrivecontroller_cfm$cf.call(/BenchmarkDriveController.cfm:234)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1056)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:948)
  at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:65)
  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:45)
  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2493)
  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2478)
  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2449)
  at lucee.runtime.engine.Request.exe(Request.java:45)
  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1216)
  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1162)
  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
  at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:769)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789)
  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  at java.base/java.lang.Thread.run(Thread.java:829)
 
Timestamp	5/29/23 11:50:17 AM PDT

Thanks for your great work!

Link to comment

Does anyone know how to get this working for a ZFS filesystem? I believe the reason this test does not work for me is because I am using a ZFS file system for my cache pool and single drive ZFS for the array.

 

I really want to benchmark the speeds of my drives, with and without compression turned on to compare speed, CPU load, and power consumption. I'm not sure if compression turned on will even make a difference for the way these tests run but for now this feels like the simplest way to benchmark the effects of compression being enabled.

 

Would be very grateful to get some feedback on how this might be possible. Thank you :)

  • Upvote 1
Link to comment
  • jbartlett changed the title to DiskSpeed, hdd/ssd benchmarking (unRAID 6+), version 2.10.6

I'm also having the issue where the page appears blank during benchmark.

 

I've tried locating the iFrames just to the right of the period but there is nothing there. When you right click to inspect and go to the console tab I get this:

Uncaught TypeError: document.getElementById(...) is null

 

This is version 2.10.6.

 

Thank you!

Link to comment
  • 2 weeks later...
On 6/27/2023 at 3:34 PM, HodgePodge said:

I'm also having the issue where the page appears blank during benchmark.

 

I've tried locating the iFrames just to the right of the period but there is nothing there. When you right click to inspect and go to the console tab I get this:

Uncaught TypeError: document.getElementById(...) is null

 

This is version 2.10.6.

 

Thank you!

 

I benched all my drives the other day and went to do one today and getting blank screen. This is the logfile from starting the container to trying to scan to stopping it.

https://atomicrhino.net/obin/?7b5f256908be0e6f#A9iCkjyjeonX9cT4Q9joBNEmY8o8LaeS3mvxzQBT1JFW

 

  

On 6/7/2023 at 4:01 PM, joshrp5 said:

I have used the suggested /mnt but my two cache pools /mnt/cache & /mnt/ssd both still show the docker mount error.  Well one of the 2 from each pool says part of a pool and the other says docker isn't mounted.  

 

Also had the same issue (when it was working.)

 

>WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender (file:/usr/local/tomcat/lucee/lucee.jar) to method java.net.URLClassLoader.addURL(java.net.URL)

 

Seems to be this. https://stackoverflow.com/questions/50251798/what-is-an-illegal-reflective-access

Did it perhaps break between the unhraid v12 updates? 

Edited by sunwind
Link to comment

2.10.6

 

Some drives don't appear to bench.

 

Stats plugin doesn't show activity, but drive is online, smart green etc. and hdparm works.

 

/dev/sdf:
 Timing cached reads:   14826 MB in  1.99 seconds = 7443.88 MB/sec
 Timing buffered disk reads: 500 MB in  3.01 seconds = 166.26 MB/sec
root@BlackTower:/mnt/disk5# sudo hdparm -Tt /dev/sdm

/dev/sdm:
 Timing cached reads:   18884 MB in  1.99 seconds = 9490.98 MB/sec
 Timing buffered disk reads: 552 MB in  3.00 seconds = 183.74 MB/sec
 

But on those drives the Diskspeed webgui sits there. 

 

WD40EFZX drives

 

Clicking Abort just also sits there.

 

/sdh works as expected. All drives are data drives in the array.

 

Nothing in logs. Over 30 mins old and last log entries:

 

WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
10-Jul-2023 18:00:42.061 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8888"]
10-Jul-2023 18:00:42.075 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [14279] milliseconds

 

 

Also rescanned controller, devs hadn't changed.

Edited by RealActorRob
Add'l data.
Link to comment

I just realized that diskspeed does not test write-speed on HDD's. This led me to believe that the WD50NPZZ (WD disk sold from intenso) is a good disk for use in unraid because its read-speed are at about 75-150MB/s. I now realized, it's write speed slows down to <5MB/s after a very brief amount of constant writes to it. Hence it's more or less completely useless. For comparison: the ST5000LM000 (seagate) has constant write speeds of about 40MB/s for the same files. >8x times as fast. Everything was tested inside the array.

Edited by madejackson
Link to comment

new build and just got word of DiskSpeed,,,  - great tool, so thanks a lot ;)


Good readings on HBA and mobo-attached SSD's, but the nvme on the gigabyte z690 gamingX is not giving me any diskspeed ;(
The drive is cashe-drive, xfs, used for docker/appdata

please advice next step - have seen other in this post getting good data from their nvme - so guess there is an obvious config I'm missing?
- or something I should check/post for further investigation?



image.thumb.png.218839cd46a85520e8fa73e913155c21.png

Edited by ArveVM
missing info on usage/disk format
Link to comment
  • 2 weeks later...

Looks like the .12 upgrade is blocking access to NVMe drives.  I can benchmark any drive in the array, but none of the 3 NVMe drives I have in my cache & download pools.

 

Here is the error from the log file:

  • WARNING: An illegal reflective access operation has occurred
  • WARNING: Illegal reflective access by org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender (file:/usr/local/tomcat/lucee/lucee.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
  • WARNING: Please consider reporting this to the maintainers of org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender
  • WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
  • WARNING: All illegal access operations will be denied in a future release

 

Link to comment
3 minutes ago, Cold Ass Honkey said:

Looks like the .12 upgrade is blocking access to NVMe drives.  I can benchmark any drive in the array, but none of the 3 NVMe drives I have in my cache & download pools.

 

Here is the error from the log file:

  • WARNING: An illegal reflective access operation has occurred
  • WARNING: Illegal reflective access by org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender (file:/usr/local/tomcat/lucee/lucee.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
  • WARNING: Please consider reporting this to the maintainers of org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender
  • WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
  • WARNING: All illegal access operations will be denied in a future release

 

Did you follow the instructions in the FAQ?

Link to comment
  • jbartlett changed the title to DiskSpeed, hdd/ssd benchmarking (unRAID 6+), version 2.10.8

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.