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


Recommended Posts

After 10 minutes of waiting, it completed. It shows a stacktrace:

 

Lucee 5.3.10.97 Error (application)
Message	Error invoking external process
Stacktrace	The Error Occurred in
/var/www/OnRequestEnd.cfm: line 3
1: <!--- Reset all file permissions --->
2: <cfexecute name="/bin/chmod" arguments="766 /var/www/SetPerms.sh" timeout="10" />
3: <cfexecute name="/var/www/SetPerms.sh" timeout="0" />
4: <!--- Dump all variables --->
5: <CFSET StructClear(variables)>

Java Stacktrace	lucee.runtime.exp.ApplicationException: Error invoking external process
  at lucee.runtime.tag.Execute.doEndTag(Execute.java:266)
  at onrequestend_cfm$cf.call(/OnRequestEnd.cfm:3)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1056)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:948)
  at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:84)
  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	2/15/23 6:23:28 PM EST

 

  • Thanks 1
Link to comment

just for anyone wondering about this, I tried running this on a ZFS pool i was testing. I think it can't get access, and no charts were showing up. Destroying the pool and then formatting with gpt etc allows me to test with this.

 

I'm not sure if it's actually possible to test it with ZFS or alternatives to do so, but I was running on ubuntu to just test.

 

Link to comment
6 hours ago, AshranPewter said:

just for anyone wondering about this, I tried running this on a ZFS pool i was testing. I think it can't get access, and no charts were showing up. Destroying the pool and then formatting with gpt etc allows me to test with this.

 

I'm not sure if it's actually possible to test it with ZFS or alternatives to do so, but I was running on ubuntu to just test.

 

 

I haven't done any testing with ZFS yet. I'm currently focused on version 3 of the app but will look into adding support for it in the 2.x versions once a RC is released with ZFS support.

Link to comment
21 hours ago, zeroframes said:
Lucee 5.3.10.97 Error (application)
Message	Error invoking external process
Stacktrace	The Error Occurred in
/var/www/OnRequestEnd.cfm: line 3
1: <!--- Reset all file permissions --->
2: <cfexecute name="/bin/chmod" arguments="766 /var/www/SetPerms.sh" timeout="10" />
3: <cfexecute name="/var/www/SetPerms.sh" timeout="0" />
4: <!--- Dump all variables --->
5: <CFSET StructClear(variables)>

 

The SetPerms.sh script opens up all permissions on files DiskSpeed creates so you won't get access denied errors. What's interesting is that you get a timeout on it, it's set with timeout=0 which is non-blocking - kick it off in the background and keep on chugging along.

 

Can you help me figure out which is the problem child?

 

Click on the DiskSpeed icon and select "Console"

image.png.31c93f4375073d7e6ea59186e425ddbf.png

 

Then enter in the following commands one at a time. They shouldn't take more than a few seconds each.

chmod 766 /var/www/SetPerms.sh

chmod -R u-x,go-rwx,go+u,ugo+X /tmp/DiskSpeed

chmod -R u=rwx /tmp/DiskSpeed/*.sh

chown -R nobody:users /tmp/DiskSpeed

chmod -R u-x,go-rwx,go+u,ugo+X /tmp/DiskSpeedTmp

chmod -R u=rwx /tmp/DiskSpeedTmp/*.sh

chown -R nobody:users /tmp/DiskSpeedTmp

 

The 3rd line may return no files or directory.

 

Link to comment
On 2/16/2023 at 3:19 PM, zeroframes said:

Ive recently discovered a huge performance issue on my server, and it seems like its was affecting this container more than any other. Im resolving that issue right now, and I'll let you know if if fixes DiskSpeed. 

Partity rebuild should be done tomorrow. 

Appreciate all the reponses!

 

Any update?

Link to comment

I have a couple Intel Optane drives with XFS partitions on them as cache drives.  During the initial scan it finds them and says there is 1 partition found on each.  When you select them it says no mounted partition found and doesn't show the benchmark button..

Edited by Wynter
Link to comment
13 hours ago, Wynter said:

I have a couple Intel Optane drives with XFS partitions on them as cache drives.  During the initial scan it finds them and says there is 1 partition found on each.  When you select them it says no mounted partition found and doesn't show the benchmark button..

 

Having a partition and a mounted partition that DiskSpeed can see are two different things. Click on the FAQ link below the message for how to set it up. If you don't see the FAQ link, please update your DiskSpeed version.

Link to comment

@jbartlett Thank you for all your development and support. 

 

At some point DiskSpeed started giving me this error: "ApplicationException: Source file [/tmp/DiskSpeed/Instances/local/driveinfo/wd80emaz_83_h0a83_e4g2y34k_8tb/image.png] doesn't exist".

 

Is this a permissions issue or something I can fix?

 

Thanks!

 

Scanning Hardware
23:25:50 Spinning up hard drives
23:26:00 Scanning system storage
23:26:00 Scanning USB Bus
23:26:00 Scanning hard drives
23:26:02 Scanning storage controllers
23:26:02 Scanning USB hubs & devices
23:26:02 Scanning motherboard resources
23:26:02 Fetching known drive vendors from the Hard Drive Database
23:26:02 Found controller 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
23:26:02 Found drive Western Digital WD80EMAZ Rev: 83.H0A83 Serial: (sdb), 1 partition
23:26:03 Found drive Western Digital WD80EMAZ Rev: 83.H0A83 Serial: (sdc), 1 partition
23:26:03 Found drive Western Digital WD80EMAZ Rev: 83.H0A83 Serial: (sdd), 1 partition
23:26:03 Found controller 8 Series/C220 Series Chipset Family USB xHCI
23:26:11 Found drive Generic Flash Disk Rev: 0 Serial: (sda), 1 partition
23:26:11 Found controller SAS3008 PCI-Express Fusion-MPT SAS-3
23:26:11 Found drive NETAPP X357_S163A3T8ATE Rev: 0 Serial: (sde), 1 partition
23:26:11 Found drive HGST H7280A525SUN8.0T Rev: 0 Serial: (sdf), 1 partition
23:26:11 Found drive HGST H7280A520SUN8.0T Rev: 0 Serial: (sdg), 1 partition
23:26:11 Found drive NETAPP X357_S163A3T8ATE Rev: 0 Serial: (sdh), 1 partition
23:26:11 Fetching Drive Platter Information
23:26:11 Checking Hard Drive Database for drives
Lucee 5.3.10.97 Error (application)
Message 	Source file [/tmp/DiskSpeed/Instances/local/driveinfo/wd80emaz_83_h0a83_e4g2y34k_8tb/image.png] doesn't exist
Stacktrace 	The Error Occurred in
/var/www/ScanControllers.cfm: line 2506

    2504: <CFSET C=HW[Key].Ports[PortNo].Config>
    2505: <CFIF FileExists("#RootDir#/images/inuse/#CurrInstance#/#C.SaveDir#.png") EQ "NO">
    2506: <cffile action="copy" source="#PersistDir#/driveinfo/#C.SaveDir#/image.png" destination="#RootDir#/images/inuse/#CurrInstance#/#C.SaveDir#.png">
    2507: </CFIF>
    2508: <CFSET OutTextCSS=C.TextCSS>

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

    2422: <!--- Eat any errors --->
    2423: </CFCATCH>
    2424: </CFTRY>
    2425:
    2426: <!--- Post HW Scan --->

Java Stacktrace 	lucee.runtime.exp.ApplicationException: Source file [/tmp/DiskSpeed/Instances/local/driveinfo/wd80emaz_83_h0a83_e4g2y34k_8tb/image.png] doesn't exist
 	at lucee.runtime.tag.FileTag.actionCopy(FileTag.java:566)
 	at lucee.runtime.tag.FileTag.doStartTag(FileTag.java:424)
 	at scancontrollers_cfm$cf.call_000168(/ScanControllers.cfm:2506)
 	at scancontrollers_cfm$cf.call(/ScanControllers.cfm:2424)
 	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 	2/21/23 11:26:11 PM EST 

 

Link to comment
1 hour ago, Kainhander said:

@jbartlett Thank you for all your development and support. 

 

At some point DiskSpeed started giving me this error: "ApplicationException: Source file [/tmp/DiskSpeed/Instances/local/driveinfo/wd80emaz_83_h0a83_e4g2y34k_8tb/image.png] doesn't exist".

 

Is this a permissions issue or something I can fix?

 

Thanks!

 

Please check your directory ./appdata/DiskSpeed/Instances/local/driveinfo/wd80emaz_83_h0a83_e4g2y34k_8tb for the existence of the file "image.png" and that you can open & view it. It sounds like something's funky with the directory or file with permissions. If you view it on the system, it should have rw/rw/rw permissions. The parent directory should have rwx/rwx/rwx.

 

During the "Checking Hard Drive Database for drives", it downloads the drive's image if found on the HDDB (it does) and if it doesn't, it creates a generic placeholder image in that directory as "image.png". Then it copies that image to the www folder to be accessible to the web server.

 

You can also safely delete the wd80emaz_83_h0a83_e4g2y34k_8tb directory and rescan.

Link to comment
10 hours ago, jbartlett said:

 

Please check your directory ./appdata/DiskSpeed/Instances/local/driveinfo/wd80emaz_83_h0a83_e4g2y34k_8tb for the existence of the file "image.png" and that you can open & view it. It sounds like something's funky with the directory or file with permissions. If you view it on the system, it should have rw/rw/rw permissions. The parent directory should have rwx/rwx/rwx.

 

Yep, that was it.  For some reason that directory was missing the image file.  I just copied it from one of the other similar drive directories and it runs now.  Thanks!

 

# ls wd80emaz_83_h0a83_*/
wd80emaz_83_h0a83_1_8tb/:
benchmark/  config.json  image.png

wd80emaz_83_h0a83_2_8tb/:
config.json  image.png

wd80emaz_83_h0a83_3_8tb/:
config.json

# cp wd80emaz_83_h0a83_2_8tb/image.png wd80emaz_83_h0a83_3_8tb/

# ls wd80emaz_83_h0a83_*/
wd80emaz_83_h0a83_1_8tb/:
benchmark/  config.json  image.png

wd80emaz_83_h0a83_2_8tb/:
config.json  image.png

wd80emaz_83_h0a83_3_8tb/:
config.json  image.png

 

  • Thanks 1
Link to comment
8 hours ago, Kainhander said:

Yep, that was it.  For some reason that directory was missing the image file.  I just copied it from one of the other similar drive directories and it runs now.  Thanks!

 

Thank you. I added logic to the next version to catch if the drive's image is missing and refetch it.

Link to comment
5 hours ago, machineglow said:

Hey Guys,

 

Maybe I'm being obtuse but is there a way to benchmark USB mounted drives?  3 drives of my array are on external USB enclosures and would love to see what the throughput is compared to the SATA attached storage.  

 

Thanks,

 

Support for USB drives are part of version 3 of the application, currently in development.

  • Thanks 1
Link to comment
On 2/16/2023 at 2:24 PM, jbartlett said:

Can you help me figure out which is the problem child?

 

Click on the DiskSpeed icon and select "Console"

image.png.31c93f4375073d7e6ea59186e425ddbf.png

 

Then enter in the following commands one at a time. They shouldn't take more than a few seconds each.

chmod 766 /var/www/SetPerms.sh

chmod -R u-x,go-rwx,go+u,ugo+X /tmp/DiskSpeed

chmod -R u=rwx /tmp/DiskSpeed/*.sh

chown -R nobody:users /tmp/DiskSpeed

chmod -R u-x,go-rwx,go+u,ugo+X /tmp/DiskSpeedTmp

chmod -R u=rwx /tmp/DiskSpeedTmp/*.sh

chown -R nobody:users /tmp/DiskSpeedTmp

 

The 3rd line may return no files or directory.

image.png.2abbbced728c29bea480ec1ab83dc982.png

 

I opened my Docker container and cat the SetPerms.sh file and there is a trailing command of 'sync' which is what my system was getting hung up on. I removed the line from the file and was able to run the benchmark without issue. Otherwise, I would get the same timeout as the other person was.

  • Thanks 1
Link to comment
1 hour ago, SpartanXXX said:

I opened my Docker container and cat the SetPerms.sh file and there is a trailing command of 'sync' which is what my system was getting hung up on. I removed the line from the file and was able to run the benchmark without issue. Otherwise, I would get the same timeout as the other person was.

 

Thanks for that, I'll try to get an update out soon to address this.

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

having trouble with this. i installed the docker and it hangs and eventually times out on the scan controllers page.  here is the part of the error message that looked relevant without the entire stacktrace.

 

Lucee 5.3.10.120 Error (application)

Messagetimeout [90000 ms] expired while executing [/sbin/parted -m /dev/sds unit B print free]

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

1962: <CFFILE action="write" file="#PersistDir#/#exe()#_parted_#DriveID#_exec.txt" output="/sbin/parted -m /dev/#DriveID# unit B print free" addnewline="NO" mode="666">
1963: <CFIF URL.Debug NEQ "FOOBAR"><cfmodule template="cf_flushfs.cfm"></CFIF>
1964: <cfexecute name="/sbin/parted" arguments="-m /dev/#DriveID# unit B print free" variable="PartInfo" timeout="90" />
1965: <CFFILE action="write" file="#PersistDir#/#exe()#_parted_#DriveID#.txt" output="#PartInfo#" addnewline="NO" mode="666">
1966: <CFSET TotalPartitions=0>
 

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

1851: </CFIF>
1852: </CFLOOP>
1853: </CFLOOP>
1854:
1855: <!--- Admin drive creation --->

Link to comment
On 2/6/2023 at 2:41 AM, jbartlett said:

 

It's not that there are no partitions, it's that no partitions are mounted in a way the app can see them. Did you set up a mapping in the DiskSpeed settings? More information is in the FAQ link shown.

image.png.c3dc0e096c8c6aaaa2123e7ecb85cb0e.png

 

This worked for me! 

Thanks! 

  • Thanks 1
Link to comment

So i've just discovered this docker. With latest version installed it wouldn't see my cache drive, would see all other drives in my array though. I forced 2.10 and it recognised and benchmarked my cache drive.

 

The write speeds seem slower than i would expect? Theyre accurate with what i see copying files to the cache drive over a 10gbit lan though

ssd-readwrite-speeds.jpeg

Link to comment
On 3/26/2023 at 3:34 AM, Phire21 said:

So i've just discovered this docker. With latest version installed it wouldn't see my cache drive, would see all other drives in my array though. I forced 2.10 and it recognised and benchmarked my cache drive.

 

The write speeds seem slower than i would expect? Theyre accurate with what i see copying files to the cache drive over a 10gbit lan though

 

That version has a flawed benchmarking for SSD's which is why the speeds are low. You have to add a Docker mapping to the current version for the Docker application to benchmark any solid state drives. There should be a FAQ link on viewing SSD's which explains how.

Link to comment

When trying to benchmark my drives I get this warning:

WARNING: You have less than 4 CPUs available (0 total). The Solid State benchmark requires 4 CPU threads in order to get an accurate benchmark. Solid State Benchmarking is not available.

 

I'm on an 8700k, 6 cores 12 threads. I have Enable VMs set to 'No' in unraid since I don't run any VMs, although I did configured the BIOS virtualization for VMs and test to make sure everything is configured to work if I want to run any in the future. No other containers are running, no CPU pinning anywhere. I did try to pin 4, 5, and 6 CPUs to DiskSpeed but still get the warning and unable to benchmark SSDs.

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.