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

10 hours ago, manofoz said:

I see this in the motherboard manual. Looks like it's intent is if you want to run PCIE M.2 controllers but this may be simular, think it's worth a shot? 

That bottom x16 slot is attached to the PCH, it will always run at x4, you'd need a different board to have both HBAs running at x8.

  • Replies 1.1k
  • Views 389.4k
  • 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

  • Author
On 10/7/2023 at 9:41 AM, manofoz said:

Current Link Speed: (ok) width (downgraded) ( max throughput)

 

This display is due to parsing, your system is outputting a display that I haven't encountered and thus didn't properly parse. If you could submit a controller debug file (click on the debug link in the DiskSpeed app at the bottom of the page), I can take a look at it.

Maybe, this is a silly question: but how to get the graph that shows all drives in comparison? I can see it after doing a benchmark of a drive and it also shows up after scanning the controllers, but if I just go to the homepage that spot is empty

 

 

image.thumb.png.b52a3715f1f4f6e39113b29efd7b3fda.png

On 10/8/2023 at 9:02 PM, jbartlett said:

 

This display is due to parsing, your system is outputting a display that I haven't encountered and thus didn't properly parse. If you could submit a controller debug file (click on the debug link in the DiskSpeed app at the bottom of the page), I can take a look at it.

 

Thanks! I didn't even realize it was parsing properly and was able to use it to track down that my HBA is only getting x4 lanes instead of x8 and hence is downgraded. Sounds like it still has enough bandwidth at x4 but I may swap it out for on board and PCIE SATA if I still get slow speeds after replacing my 5400rpm drives.

 

Here is the controller debug file. Let me know if there is anything else I can provide to help: 

manofoz_DiskSpeedControllerDebug_20231009_225142.tar.gz

On 10/8/2023 at 4:28 AM, JorgeB said:

That bottom x16 slot is attached to the PCH, it will always run at x4, you'd need a different board to have both HBAs running at x8.

 

Yeah this was a f-up on my part, I thought I read these were x4 or that x4 would be fine. I have 4 on board SATA and can get a different type of card if it's a problem. Maybe just moving 4 HDDs to the on board SATAs would lessen the load of the HBA with 4 lanes?

 

Or maybe it's not a problem at all, I'm going to replace my slowest disk and see what Storage System Stats look like as it rebuilds. Just waiting for a very long preclear to finish. 

  • Author
On 10/9/2023 at 3:01 AM, timetraveler said:

Maybe, this is a silly question: but how to get the graph that shows all drives in comparison? I can see it after doing a benchmark of a drive and it also shows up after scanning the controllers, but if I just go to the homepage that spot is empty

 

I've noticed recently that started happening in the 3.0 Alpha version but haven't investigated it until your mention of it in the 2.x version as I've never seen it now show up in version 2.x. The graph is displayed if the file (smb share path) \\nas\appdata\DiskSpeed\Instances\local\driveinfo\DriveBenchmarks.txt exists which contains the graph data.

 

Can you check to see if that file exists and can be viewed when the graph is or is not visible?

  • Author
15 hours ago, manofoz said:

Thanks! I didn't even realize it was parsing properly and was able to use it to track down that my HBA is only getting x4 lanes instead of x8 and hence is downgraded. Sounds like it still has enough bandwidth at x4 but I may swap it out for on board and PCIE SATA if I still get slow speeds after replacing my 5400rpm drives.

 

It looks like the tools I use to gather the information changed their layout because I see that on my controller too. Will make it easier for me to fix.

 

Have you tried a controller benchmark yet? It'll tell you if you are reaching capacity of what your controller can support.

 

image.thumb.png.08892734295ef3f1dbf28d8f3c924fbb.png

1 hour ago, jbartlett said:

 

I've noticed recently that started happening in the 3.0 Alpha version but haven't investigated it until your mention of it in the 2.x version as I've never seen it now show up in version 2.x. The graph is displayed if the file (smb share path) \\nas\appdata\DiskSpeed\Instances\local\driveinfo\DriveBenchmarks.txt exists which contains the graph data.

 

Can you check to see if that file exists and can be viewed when the graph is or is not visible?

 

 

after starting the container again I checked the file and it is indeed present. Upon start I also see the graph. After a refresh the graph is gone, but the file stays in place.

 

After that I performed a Full benchmark and the file did go away during the benchmark (drivebenchmarks.json stays)

it stays absent, until I click continue, when it reappears and also shows the graph on the main page.
Again after a refresh the graph is gone, but the file remains

 

image.png.b8522f75bda9d3ad73b3577467f5bded.png

4 hours ago, jbartlett said:

 

It looks like the tools I use to gather the information changed their layout because I see that on my controller too. Will make it easier for me to fix.

 

Have you tried a controller benchmark yet? It'll tell you if you are reaching capacity of what your controller can support.

 

image.thumb.png.08892734295ef3f1dbf28d8f3c924fbb.png

 

Thanks for the tip! Looks like my controller is not the bottleneck! Just gotta replace some real slow drives...

image.thumb.png.241d5185642b77b72211df860724b335.png

Hello all, is there a reason why I'm limited to 2 GB/s for this setup?

R730, controller is an LSI SAS9207-8e 8-Port External HBA 

All drives are heavily used / refurbished HUH728080ALE604 contained in a DS4246 with an IOM6 controller connected via a QSFP SFF-8436 to SFF-8088 cable.

 

DiskSpeed reads the following.

Current Link Speed: (ok) width (ok) ( max throughput)
Maximum Link Speed: 8GT/s width x8 (7.88 GB/s max throughput)

controller-benchmark.thumb.jpeg.281b9151f80cfdaf483e06aa2df7e089.jpeg

 

  • 3 weeks later...

Hey, just checking in to see if benchmarking USB attached drives is still on the roadmap?  thx!

I just installed and ran it for the first time on 2 different unraid servers (6.12.4).  After going for a while, they both stopped with the  same error below.   Am I doing something wrong?  

Unrelated, just something I noticed, there is a typo, "iw" in "following" needs to be flipped:   Bandwidth was capped on the folloiwng drives

 

Thanks in advance for any help that can be provided!

 

10:31:40 Spot: [30] ScanLoc: [1831412] SizeLoc: [2.4 TB] Avg: [187.74 MB] AvgMin: [187.43 MB] AvgMax: [188.74 MB]
Chart1.series[10].addPoint([2400468336640,187735433]);
parent.document.getElementById('Speed_controller_0000_0a_00_0').innerHTML=''; CMD: dd if=/dev/sdj of=/dev/null bs=1310720 skip=2136647 iflag=direct conv=noerror status=progress
10:31:57 Spot: [35] ScanLoc: [2136647] SizeLoc: [2.8 TB] Avg: [175.23 MB] AvgMin: [174.33 MB] AvgMax: [175.64 MB]
Chart1.series[10].addPoint([2800545955840,175233181]);
parent.document.getElementById('Speed_controller_0000_0a_00_0').innerHTML=''; CMD: dd if=/dev/sdj of=/dev/null bs=1310720 skip=2441883 iflag=direct conv=noerror status=progress
10:32:14 Spot: [40] ScanLoc: [2441883] SizeLoc: [3.2 TB] Error: Error invoking external process

The error occurred in /var/www/BenchmarkDriveController.cfm on line 845

843:                                 "chmod 666 #ResultsFN#" & Chr(10)>
844:                         <CFFILE action="write" file="#OutDir#/read_spot_#Spot2#.sh" mode="766" output="#cmd#" addnewline="NO">
845:                         <CFEXECUTE name="#OutDir#/read_spot_#Spot2#.sh" timeout="3060" />
846:                         <CFSET Result=GetReadAvg(ResultsFN,Drive.Attrib.Configuration.RPM,2,MaxGap)>
847:                     <CFELSE>
848:                         <CFOUTPUT>CMD: dd if=/dev/#DriveID# of=/dev/null bs=#BS# skip=#ScanLoc# iflag=direct conv=noerror status=progress<br>

Don't know if you can do anything about it, but my Sabrent Rocket SSD's aren't parsing correctly.  I've attached a screenshot to show you what I mean.   Let me know if you need any additional info.

Thanks!

image.png

  • Author
On 10/27/2023 at 8:25 AM, machineglow said:

Hey, just checking in to see if benchmarking USB attached drives is still on the roadmap?  thx!

 

Yup, in version 3, including benchmarking multi-device setups like RAIDs and the like. I've been working on v3 more frequently to get it ready for a beta release.

  • Author
On 10/29/2023 at 12:30 PM, broncosaddict said:

Unrelated, just something I noticed, there is a typo, "iw" in "following" needs to be flipped:   Bandwidth was capped on the folloiwng drives

 

Thank you, I fixed it for the next release.

 

On 10/29/2023 at 12:30 PM, broncosaddict said:

The error occurred in /var/www/BenchmarkDriveController.cfm on line 845

 

This is the command it was trying to execute. Can you please SSH into the server and enter this command?

dd if=/dev/sdj of=/dev/null bs=1310720 skip=2441883 iflag=direct conv=noerror status=progress

 

It will run until the end of the drive so press CTRL-C if it runs without issue for 30 seconds (the app stops this after 15 seconds).

 

If there is no error and after you stop it, try entering Docker and then retrying it

docker exec -it DiskSpeed bash

dd if=/dev/sdj of=/dev/null bs=1310720 skip=2441883 iflag=direct conv=noerror status=progress

  • Author
On 10/30/2023 at 9:07 AM, broncosaddict said:

Don't know if you can do anything about it, but my Sabrent Rocket SSD's aren't parsing correctly.  I've attached a screenshot to show you what I mean.   Let me know if you need any additional info.

Thanks!

image.png

 

If you mean the Vendor, a lot of SSD's do not populate the Vendor field and I have to add logic to catch those to pull the vendor from the model, if possible. This is why I provide the option to change the vendor. If you enter "Sabrent" into the vendor field, save, and then rescan, it'll pull up the image if someone has already submitted on. Otherwise, you can edit the drive, edit the image, and provide one yourself.

 

If you're referring to the data units read/written, that's based off the sector size multiplied by the unit.

 

If none of the above are what you are referring to, then you'll have to be more specific.

  • Author

Pushed version 2.10.7.2

 

Updates controller speed/width parsing where it was displaying something like:

Current Link Speed: (ok) width (ok) ( max throughput)

Edited by jbartlett

I still can't speed test all my nvme drives, but on tag 2.9.6 I can. I can run speed on the unraid mount, but any other pools

23 hours ago, jbartlett said:

 

If you mean the Vendor, a lot of SSD's do not populate the Vendor field and I have to add logic to catch those to pull the vendor from the model, if possible. This is why I provide the option to change the vendor. If you enter "Sabrent" into the vendor field, save, and then rescan, it'll pull up the image if someone has already submitted on. Otherwise, you can edit the drive, edit the image, and provide one yourself.

 

If you're referring to the data units read/written, that's based off the sector size multiplied by the unit.

 

If none of the above are what you are referring to, then you'll have to be more specific.

It works perfectly fine and it wasn't bothering me.  My fault, I thought I read in one of the post you wanted to notified.  

Thanks!

23 hours ago, jbartlett said:

 

Thank you, I fixed it for the next release.

 

 

This is the command it was trying to execute. Can you please SSH into the server and enter this command?

dd if=/dev/sdj of=/dev/null bs=1310720 skip=2441883 iflag=direct conv=noerror status=progress

 

It will run until the end of the drive so press CTRL-C if it runs without issue for 30 seconds (the app stops this after 15 seconds).

 

If there is no error and after you stop it, try entering Docker and then retrying it

docker exec -it DiskSpeed bash

dd if=/dev/sdj of=/dev/null bs=1310720 skip=2441883 iflag=direct conv=noerror status=progress

Both commands ran without issue.

 

Don't know if this helps, but I forgot to post it the other day.   I tried rerunning the benchmark the same day this failed.  It started from the beginning again, but it went twice as far....the first time it failed around the 10 minute mark, the second was around the 20 minute mark.   

At that point I benchmarked the disks that hadn't been one by one and had no problems.   Did the same with the other unraid setup.

 

 

Afternoon, I have the same issue as others who have reported a blank screen when running a benchmark on a drive.  I can benchmark NVME drives normally and the controller normally.  It is just the SATA drives connected to the onboard SATA controller that will not benchmark.  The motherboard is an Asus Pro WS W680M-ACE SE.  The controller shows as: 
Alder Lake-S PCH SATA Controller [AHCI Mode]

ASUSTeK Computer Inc. (Intel Corporation)
SATA controller
Type: Onboard Controller

 

The benchmark never times out and I don't get an error.  Clicking on Abort Benchmark buttton does nothing.  I tried running ShowDebug in both Chrome and Firefox but can't get the iframe error to show.  I am running version 2.10.7.2 on Unraid 6.12.4.  I have another server running 2.10.7.2 on Unraid 6.12.4 but the SATA drives are connected to an HBA card.  That server everything benchmarks fine NVME, Controller, and SATA drives.  Let me know if you need me to provide more information.

 

DiskSpeed No Benchmark.jpg

Edited by SShadow

  • Author
8 hours ago, broncosaddict said:

It works perfectly fine and it wasn't bothering me.  My fault, I thought I read in one of the post you wanted to notified.  

Thanks!

Sorry, I still don't have any idea what you were referring to.

 

8 hours ago, broncosaddict said:

Don't know if this helps, but I forgot to post it the other day.   I tried rerunning the benchmark the same day this failed.  It started from the beginning again, but it went twice as far....the first time it failed around the 10 minute mark, the second was around the 20 minute mark.   

At that point I benchmarked the disks that hadn't been one by one and had no problems.   Did the same with the other unraid setup.

Was it reporting anything like retrying (x)? If so, check the SpeedGap box on the drive selection screen. How many drives do you have attached to the controller that's not completing? It's set to timeout after 50 minutes, figured that should be enough time - unless someone has a crazy loaded down controller. Are you that someone?

  • Author
6 hours ago, SShadow said:

The benchmark never times out and I don't get an error.  Clicking on Abort Benchmark buttton does nothing.  I tried running ShowDebug in both Chrome and Firefox but can't get the iframe error to show.  I am running version 2.10.7.2 on Unraid 6.12.4.  I have another server running 2.10.7.2 on Unraid 6.12.4 but the SATA drives are connected to an HBA card.  That server everything benchmarks fine NVME, Controller, and SATA drives.  Let me know if you need me to provide more information.

Interesting that you said you couldn't find an iframe. If the iframes were rendered, clicking to the right of the period where the cursor is still in the text cursor and not an arrow cursor will make those iframes visible.

image.png.dcd65637288adbd54cf9db04b7973278.png

 

Can you view the source and look for the following? Search for "The Error Occurred in" and look for a file/line below it. The error message itself will be above. The code below is just a quick bit I put together to get the HTML that gets generated.

<tr>
		<td class="label">Message</td>
		<td>variable [B] doesn't exist</td>
	</tr>
	
<tr>
				<td class="label">Stacktrace</td>
				<td>The Error Occurred in<br>

							<a class="-lucee-icon-minus" id="__btn$1" onclick="__LUCEE.oc( this );" style="cursor: pointer;">
								<b>/var/www/test.cfm: line 3</b>
							</a>
							<br>

 

 

I must not be looking in the right place because I can not find code similar to what you listed.  When I run inspect the only difference between the working server and the server not working is this error:

 

Benchmark.cfm:166  Uncaught TypeError: Cannot read properties of null (reading 'style')
    at CheckForFinished (Benchmark.cfm:166:42)
    at Benchmark.cfm:173:1
CheckForFinished @ Benchmark.cfm:166
(anonymous) @ Benchmark.cfm:173

On the working server I can click on the area behind the period and get the iframe window to show:
634751551_DiskSpeedBenchmark.thumb.jpg.badb6d80a6dbe84430bd18dc1eb6b3b0.jpg

 

On the server not working clicking in the same area does nothing:
1942642171_DiskSpeedNoBenchmark.thumb.jpg.150d03220b913d1bd4fc081e2f1ab723.jpg

 

If I view the source code on the working server it looks like this:

</script>
<form action="index.cfm" method="get"><input type="submit" value="Continue" style="display:none" id="continuebutton"></form>




	
	


	
	
	
	
		
		
	
	<table border="0" cellpadding="0" cellspacing="0">
		<tr>
			<td valign="middle">
				<div id="controller_0000_3b_00_0">SAS3224 PCI-Express Fusion-MPT SAS-3: Starting...</div>
			</td>
			<td>&nbsp;&nbsp;</td>
			<td id="Progress_controller_0000_3b_00_0_td">
				<table border="0" cellpadding="0" cellspacing="0">
					<tr>
						<td><progress id="Progress_controller_0000_3b_00_0" value="0" max="100"></progress></td>
						<td>&nbsp;</td>
						<td><div id="Progress_controller_0000_3b_00_0_Per">0%</div></td>
						<td>&nbsp;</td>
						<td><div id="Speed_controller_0000_3b_00_0">&nbsp;</div></td>
					</tr>
				</table>
			</td>
		</tr>
	</table>
	<iframe src="BenchmarkDriveController.cfm?Controller=0000%3A3b%3A00%2E0&Drives=sdg&Per=10&scanid=1699015482305&Seconds=15&Slots=sdg-0&DisableSpeedGap=1&SSDSpot=1&&MaxBytes=8001563222016&MinSSDSpaceFree=5&DetectSSDBuffer=0&TestFileSizeOverride=0&WaitBeforeRead=5&SeriesList1=Parity%202%20%28sdg%29&SeriesList2=Parity%202%20%28sdg%29" width="1200" height="400" style="display:none" id="controller_0000_3b_00_0_debug"></iframe>

<script language="Javascript">
var Debugging=0;
function ShowDebug()
{
	if (Debugging == 0) {
		Debugging=1;
		
			document.getElementById('controller_0000_3b_00_0_debug').style.display='block';
		
	} else {
		Debugging=0;
		
			document.getElementById('controller_0000_3b_00_0_debug').style.display='none';
		
	}
}
</script>

 

On the server not working the source code looks like this:

</script>
<form action="index.cfm" method="get"><input type="submit" value="Continue" style="display:none" id="continuebutton"></form>




	
	


<script language="Javascript">
var Debugging=0;
function ShowDebug()
{
	if (Debugging == 0) {
		Debugging=1;
		
	} else {
		Debugging=0;
		
	}
}
</script>

 

I know this isn't exactly what you asked for but I hope it helps.  Let me know if you need more.

Spoiler

 

 

I'm trying to do a benchmark on an ssd but all the ssds are grayed out. Any idea why?

 

image.png.28d09fd427a4e3c6af8eebd58df0983c.png

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.