Author Topic: Ethernet transfer speed for Rigol DS2072A and DS4014  (Read 13455 times)

0 Members and 1 Guest are viewing this topic.

Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 1612
  • Country: ca
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #25 on: December 04, 2016, 04:46:45 am »
Sorry about the Linux. A bug in my build script  |O The correct one is attached.

For whatever reason it went further now  :-//

But look at the transfer speed. It did five segments until it died. If it transfers the first segment in 0.44 sec and the overall time is 0.97s, then it transferred 4 segments in 0.97 - 0.44 = 0.53 sec. This is roughly 2Mbytes /sec - 12s for the whole memory. Not anywhere close to 2s, but substantially less than 33s reported by Karel.

Do you want me to expand the test program to read the whole 24M to see if we can sustain the speed? I'll do basically the same for all 96 segments, except that I won't send the next ":WAV:DATA?" command until all the data from the previous command is received.

For that, we need to resolve one controversy - it received 250012 bytes, while I expected 250011. Do you know what is the extra byte? I suspect it added "\n" at the end. Can you confirm that?

 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1440
  • Country: ro
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #26 on: December 04, 2016, 05:43:35 am »
Do you want me to expand the test program to read the whole 24M to see if we can sustain the speed? I'll do basically the same for all 96 segments, except that I won't send the next ":WAV:DATA?" command until all the data from the previous command is received.

From my side, I am convinced that the bug that lowered down the transfer time 100 times is gone. If you want me to run other test programs that might help you, sure, with pleasure. I already have the setup, so it will be very easy to run further versions and publish the results. I am curious to see a full RAW transfer time too. Please keep posting both the Win and Lin builds, and let's use versions for the ZIP name, so we can easily refer to the results. If you agree, your next zip should be v4.

For that, we need to resolve one controversy - it received 250012 bytes, while I expected 250011. Do you know what is the extra byte? I suspect it added "\n" at the end. Can you confirm that?

AFAIK all the SCPI responses end up in \n. I saved all the packets from the previous test, so you can check this. The PCAPNG files can be opened with WireShark (files were saved with WireShark v1.12.4 for Windows) and you can see the timing, the handshake, the TCP payload, pretty much everything. The sniffer was set to record all the LAN traffic between the PC and the DS1054Z for the v2 of your zip.


Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 1612
  • Country: ca
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #27 on: December 04, 2016, 09:19:04 am »
Here it is. It doesn't parse the responses, just count bytes. Sends a command, waits for 250012 bytes, then sends another. If it doesn't get enough within 3 seconds, it bails out. Otherwise, same as v2.
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1440
  • Country: ro
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #28 on: December 04, 2016, 10:47:29 am »
Linux manual preset:
Code: [Select]
rogeorge@debian80:~$ nc 192.168.1.3 5555
:wav:form?;wav:mode?       
BYTE;NORM
:wav:mode raw
:wav:form?;:wav:mode?;:wav:star?;:wav:stop?
BYTE;RAW;1;1200
^C
rogeorge@debian80:~$

Linux run:
Code: [Select]
rogeorge@debian80:~/Downloads/v4$ ./ds1054z
Version 4
Usage: ds1054z ip.address.of.the.scope
rogeorge@debian80:~/Downloads/v4$ ./ds1054z 192.168.1.3
Version 4
Connected
Received 24001152 bytes in 22.286 sec.
rogeorge@debian80:~/Downloads/v4$

Windows manual preset:
Code: [Select]
c:\>nc 192.168.1.3 5555
:wav:form?;:wav:mode?;:wav:star?;:wav:stop?
BYTE;RAW;23750001;24000000
^C
c:\>

Windows run:
Code: [Select]
c:\v4>ds1054z.exe 192.168.1.3
Version 4
Connected
Received 24001152 bytes in 22.531 sec.

c:\v4>

The test signal was a 24ms sawtooth (raising ramp) between -2.5 to 2.5V. Trigger level 0V on raising edge. Scope in STOP mode. Before each program run, the "SINGLE" button was pressed.

Offline gmb42

  • Regular Contributor
  • *
  • Posts: 164
  • Country: gb
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #29 on: December 04, 2016, 11:22:06 am »
AFAIK all the SCPI responses end up in \n. I saved all the packets from the previous test, so you can check this. The PCAPNG files can be opened with WireShark (files were saved with WireShark v1.12.4 for Windows) and you can see the timing, the handshake, the TCP payload, pretty much everything. The sniffer was set to record all the LAN traffic between the PC and the DS1054Z for the v2 of your zip.

Are you sure the captures in your attached zip were from the different OS's you stated?  I ask, because I had a look at them to see what differences there were if any, and they look remarkably similar.  The PC in both cases uses the same IP address (192.168.1.2) and MAC Address (d0:50:99:2b:77:fb), but you could be dual booting, but the time to live (TTL) for the initial SYN in both cases is 128, this is the expected value for Windows, but Linux usually uses 64.

That's also a rather old version of Wireshark for Windows, the latest release is 2.2.2.
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1440
  • Country: ro
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #30 on: December 04, 2016, 12:07:26 pm »
The Windows (real) machine is running on the (real) hardware. The Linux (virtual) machine is running inside VMware. Both VMware and WireShark were running all the time on the Windows real machine only.

Maybe that is why you don't see the expected values. No test was run and sniffed from a real Linux machine. I expect the speed transfer on a real vs. a virtual Linux machine to be the same, but that would be indeed an interesting benchmark.

Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 1612
  • Country: ca
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #31 on: December 04, 2016, 12:26:03 pm »
Thank you for running the tests.

So 22.5 sec it is, roughly 1Mbyte/sec, for either Windows or Linux, almost as if Rigol had 10Mbit PHY.

Anyone with DS2000 or DS4000 would agree to measure the transfer speed? Only a slight modification is required for DS2000 - changing from 24Mb to 56Mb.

 

Offline gmb42

  • Regular Contributor
  • *
  • Posts: 164
  • Country: gb
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #32 on: December 05, 2016, 07:36:53 am »
The Windows (real) machine is running on the (real) hardware. The Linux (virtual) machine is running inside VMware. Both VMware and WireShark were running all the time on the Windows real machine only.

Maybe that is why you don't see the expected values. No test was run and sniffed from a real Linux machine. I expect the speed transfer on a real vs. a virtual Linux machine to be the same, but that would be indeed an interesting benchmark.

Not really an apples to apples comparison then.  The linux VM also has the VMWare drivers, and then the host OS drivers in the path.  In the end that doesn't really matter as the slow part is at the other end of the wire, the oscilloscope.
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1440
  • Country: ro
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #33 on: December 05, 2016, 10:21:55 am »
Not really an apples to apples comparison then.

I was curious about this too, so I tested it one more time by booting from a Debian 8.6 live CD and installing WireShark on the real Debian live machine. The transfer speed is similar:
Code: [Select]
user@debian:~/Downloads$ ./ds1054z 192.168.1.3
Version 4
Connected
Received 24001152 bytes in 22.208 sec.
user@debian:~/Downloads$

The compressed pcapng file is more then 2MB, too big to attach it. Can be download from:
http://s.go.ro/bms6l45m | password: 862441

Here I will attach just a pic with some nice charts instead:

Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 1612
  • Country: ca
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #34 on: December 06, 2016, 02:55:26 am »
This is a very interesting graph. Looks like it spends half of the time fetching data from the acquisition memory, then half of the time transmitting. If we could somehow parallel these processes, it would be faster. So, I though why not to try issuing the next command immediately after we receive the first packet of the response. I've corrected the program to do this. Would you please see if this improvement works and if it actually makes things faster? V5 is attached.

 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1440
  • Country: ro
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #35 on: December 06, 2016, 07:26:30 am »
It is a little bit faster.

Three runs for each OS. The scope's "SINGLE" button was pressed once before each run:
Code: [Select]
rogeorge@debian80:~/Downloads/v5 - interleaved request$ ./ds1054z 192.168.1.3
Version 5
Connected
Received 24001152 bytes in 22.061 sec.
rogeorge@debian80:~/Downloads/v5 - interleaved request$ ./ds1054z 192.168.1.3
Version 5
Connected
Received 24001152 bytes in 22.162 sec.
rogeorge@debian80:~/Downloads/v5 - interleaved request$ ./ds1054z 192.168.1.3
Version 5
Connected
Received 24001152 bytes in 21.973 sec.
rogeorge@debian80:~/Downloads/v5 - interleaved request$

==========================

C:\v5 - interleaved request>ds1054z.exe 192.168.1.3
Version 5
Connected
Received 24001152 bytes in 22.078 sec.

C:\v5 - interleaved request>ds1054z.exe 192.168.1.3
Version 5
Connected
Received 24001152 bytes in 22.203 sec.

C:\v5 - interleaved request>ds1054z.exe 192.168.1.3
Version 5
Connected
Received 24001152 bytes in 22.171 sec.

C:\v5 - interleaved request>

The data request was indeed interleaved. All test results available at:
http://s.go.ro/hcy7ogyq | password: 763674

Other options might be:
- make multiple requests at once, like 3-4 of 250 000 consecutive requests separated with semicolon.
- make single interleaved request but for 1 000 000 points instead of 250 000. Depending on how much free memory the scope might have at that moment, sometimes it can serve up to 1 700 000 points at once. If the response starts with a number after #9000 that is not equal with the expected length, then the request was too big. 1 mil points is usually safe for a single trace and no other scope functions activated.
- open a new socket for each request of a new datapoints batch, etc
but I suppose there will be no spectacular increase in transfer speed because, looking at the charts, it seems most of the time is spent waiting for the scope to prepare the next batch of datapoints to be sent.

Some charts for v5 results:

Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 1612
  • Country: ca
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #36 on: December 06, 2016, 09:16:17 am »
Here's the version with 1000000-byte sections (although it is more than the maximum suggested by the specs).

I don't expect it to get much faster - it still needs to fetch all the points from the acquisition memory, then send all data through the TCP link. If we cannot make it do both operations at the same time, we won't get much gain. We can remove some overhead at the stitches, but the bulk of the process will still be the same.

Edit: Sorry, forgot to bump the version number :(
« Last Edit: December 06, 2016, 09:20:41 am by NorthGuy »
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1440
  • Country: ro
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #37 on: December 06, 2016, 12:06:23 pm »
Better!  :D

Result files:
http://s.go.ro/d06c0jl8 | password: 466991

Code: [Select]
rogeorge@debian80:~/Downloads/v6 - 1mil points$ ./ds1054z 192.168.1.3
Version 6
Connected
Received 24000288 bytes in 13.436 sec.
rogeorge@debian80:~/Downloads/v6 - 1mil points$ ./ds1054z 192.168.1.3
Version 6
Connected
Received 24000288 bytes in 13.435 sec.
rogeorge@debian80:~/Downloads/v6 - 1mil points$ ./ds1054z 192.168.1.3
Version 6
Connected
Received 24000288 bytes in 13.446 sec.
rogeorge@debian80:~/Downloads/v6 - 1mil points$

===================================

c:\v6 - 1mil points>ds1054z.exe 192.168.1.3
Version 6
Connected
Received 24000288 bytes in 13.422 sec.

c:\v6 - 1mil points>ds1054z.exe 192.168.1.3
Version 6
Connected
Received 24000288 bytes in 13.437 sec.

c:\v6 - 1mil points>ds1054z.exe 192.168.1.3
Version 6
Connected
Received 24000288 bytes in 13.391 sec.

c:\v6 - 1mil points>


Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 1612
  • Country: ca
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #38 on: December 06, 2016, 03:17:27 pm »
That's surprising. Looking at your diagrams, it appears that they have a fixed-length delay approximately 120 ms. This delay occurs when they receive the "DATA?" request. It's hard to imagine what they are doing for 120 ms.

v6 (compared to v5) has eliminated 72 out of 96 delays. Now there's only 24 left. If we go to 1500000-byte segments, it should eliminate 8 more of them, which is about 1 more second - not that much.

Actual transmission speed appears to be almost about 7 sec + 3 sec of delays + 3.5 sec for Rigol internal memory transfers.

Anyway, 13 sec is not bad. I suspect DS2072A and DS4014 should be faster - looking at the documentation they have a continuous memory reading thread which should run in parallel, so one would expect speeds close to 3Mbytes/sec, but I guess we'll never know unless I buy and test one.

I also noticed that new Siglent SDS2104X has 140Mpts memory, but there are not many of them around, so it won't be easy to evaluate the speed for them.
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1440
  • Country: ro
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #39 on: December 06, 2016, 08:27:57 pm »
...DS2072A and DS4014 should be faster - looking at the documentation they have a continuous memory reading thread which should run in parallel...

Can you point me to that info, please?

Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 1612
  • Country: ca
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #40 on: December 07, 2016, 02:39:31 am »
...DS2072A and DS4014 should be faster - looking at the documentation they have a continuous memory reading thread which should run in parallel...

Can you point me to that info, please?

The programming specification for DS2072A:

http://beyondmeasure.rigoltech.com/acton/attachment/1579/f-0508/1/-/-/-/-/MSO2000A%26DS2000A_ProgrammingGuide.pdf

It describes two methods to read data. One is the same as for DS1054Z. Another is opening a reading thread then reading data with series of consecutive ":WAV:DATA?".

For DS4014 only the thread method exists, but there's no PDF for the programming specifications, only CFM. I can't find a link to it. The PDF for DS4014E is here:

http://beyondmeasure.rigoltech.com/acton/attachment/1579/f-06f3/1/-/-/-/-/MSO%26DS4000_programming.pdf

 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1440
  • Country: ro
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #41 on: December 07, 2016, 07:24:40 am »
Thank you for your benchmark program. Now I am very curious about transfer speed for DS2000 an DS4000.

Does anybody have access to a Rigol DS2000 or DS4000 and willing to run the benchmark program, please?

It is very simple to run the benchmark program written by NorthGuy:
No installation is required. Just run the benchmark.
The benchmark program is working for network only, so the oscilloscope must be connected with the PC by a LAN cable, not by USB. No NI VISA, or IVI, or other kind of drivers are necessary to install. If some drivers are already installed, it doesn't matter.

The program is called ds1054, but AFAIK it should work with DS2000 or DS4000 series too.
The benchmark will transfer 24 million data points from the oscilloscope to the PC and will type the transfer time.

Please let me know the result, and many thanks!
« Last Edit: December 07, 2016, 07:29:21 am by RoGeorge »
 

Offline Twoflower

  • Frequent Contributor
  • **
  • Posts: 446
  • Country: de
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #42 on: December 07, 2016, 07:54:25 am »
My results on a DS4024 with Firmware Revision 00.02.02.SP5, memory set to 140MPoints (if it matters). Executed on a Win7 64Bit system:
Code: [Select]
Version 6
Connected
Received 24000288 bytes in 46.598 sec.
« Last Edit: December 07, 2016, 07:57:46 am by Twoflower »
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1440
  • Country: ro
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #43 on: December 07, 2016, 08:43:34 am »
Thank you very much, Twoflower!

This is amazing, why a DS4024 will do the transfer slower then a DS1054 ?!? :o


Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 1612
  • Country: ca
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #44 on: December 07, 2016, 09:29:44 am »
Thank you Twoflower!

Wow! That is very slow - 4 times slower than DS1054Z. It's almost 10 minutes for whole 280 MBytes of memory. I expected it to be lots faster.

May be this is because of the older firmware. I guess 00.02.03 is the latest.

Another possibilty is that is because the test doesn't use ":WAV:BEG".

@Twoflower: Would you agree to run more tests if I modify the benchmark program a little (to include ":WAV:BEG")?

@RoGeorge: They don't have ":WAV:BEG" in DS1054Z. Perhaps they just removed it because it was redundant, but the functionality is still there. Then, we can set ":WAV:STAR" to 1 and ":WAV:STOP" to 24000000 and then keep calling ":WAV:DATA?" until we read out everything. This will require some changes to the program since I'll have to parse  responses, not only count bytes. Would you want to try this?

 

Offline Twoflower

  • Frequent Contributor
  • **
  • Posts: 446
  • Country: de
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #45 on: December 07, 2016, 04:36:31 pm »
Yes, I retested it and it was about the same transfer rate.  :-//

Sure I'm happy to run some more tests as the outcome might be useful not just for me. And if you need some other tests I might be able to use wireshark as well (a little at least).

On request I could also boot a Linux to see if it changes.
 

Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 1612
  • Country: ca
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #46 on: December 08, 2016, 02:14:38 am »
MSO2072A, Software version 00.03.04.SP1
Memory set to 56 MB

Code: [Select]
pedre@linux-m9pe:~/bin/DS1054Z> ./ds1054z 192.168.1.52
Version 6
Connected
Failure. Not enough data received.
Received 2824 bytes in 0.024 sec.

Peter

Thank you Peter. Looks like it didn't work. Apparently DS2072A handles things differently. May I ask you to re-run the test with version 4 of the benchmark program? It is attached to the post #27 of this thread.
 

Offline NorthGuy

  • Super Contributor
  • ***
  • Posts: 1612
  • Country: ca
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #47 on: December 08, 2016, 07:10:47 am »
Could you please try another one on your DS2072A. Here I rolled back the early response which we have introduced in v5 (looks like it caused problems on DS2072A), but it still has the big block size (same as in v6).
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1440
  • Country: ro
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #48 on: December 08, 2016, 08:10:25 am »
Request while receiving data (v6) didn't worked on DS1054Z/DS1104Z either, but I didn't write this here because it happened only when the scope had a direct cable with the PC (without router) and only under Linux.

For v7, the time is the same as for v6 with my DS1054:
Code: [Select]
C:\>"C:\v7 - for DS2000\ds1054z.exe" 192.168.1.3
Version 7
Connected
Received 24000288 bytes in 13.703 sec.

C:\>

============================

rogeorge@debian80:~/Downloads/v7 - for DS2000$ ./ds1054z 192.168.1.3
Version 7
Connected
Received 24000288 bytes in 13.554 sec.
rogeorge@debian80:~/Downloads/v7 - for DS2000$

============================

request 1 mil points, not interleaved with the answer


All v7 test:
http://s.go.ro/01xaihpf | password: 606507

LATER EDIT: I forgot to increment the name of the picture file, it should have been Win10.ds1054v7.save1.chart.png, not v6.
« Last Edit: December 08, 2016, 09:00:32 am by RoGeorge »
 

Offline Twoflower

  • Frequent Contributor
  • **
  • Posts: 446
  • Country: de
Re: Ethernet transfer speed for Rigol DS2072A and DS4014
« Reply #49 on: December 08, 2016, 08:28:46 am »
OK, I did updated my DS4024 to the latest FW (00.02.03) no changes in the transmission speed:
Code: [Select]
>ds1054z.exe 192.168.178.44
Version 6
Connected
Received 24000288 bytes in 45.068 sec.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf