Transferring same file between PC's one way faster than the other

videobruce

Golden Member
Nov 27, 2001
1,023
7
81
I hope this is the right place to ask this. here is the situation;

Two PC' s
one a newer tower running Win 7, the other a older laptop running XP Pro
Wired connection thru a router and a 'switch' with no special priorities or restrictions to bandwidth. Both static IP's (if that matters)

The file is a mp4 around 100MB that I chose specifically to test 50' CAT5e jumper cables before I 'fish' them. I used the "move" function from and to the same partitions on both PC's. All apples to apples.

Using the laptop as the control; from that to the tower speed is fairly steady at 75 Mbps
returning the file, speed is between around 20 to 55 Mbs

Now, the same test, but from the tower; transferring the file from the tower to the Laptop speed varies from 66 to 95 Mbps,
returning the file from the Laptop back to the tower speed is 95 Mbps with a couple drops to 65 Mbps.

Ok, why is the speed far faster using the tower as the control station than the laptop transferring the exact same file, the exact same way???
 
Last edited:

aigomorla

CPU, Cases&Cooling Mod PC Gaming Mod Elite Member
Super Moderator
Sep 28, 2005
21,019
3,489
126
im guessing it has something to do with the drives in both system...
Or the cpu overhead on the nic cards...

What chips are u running on the lappy and tower?

Are you running SSD's on both?

Just a little bit of extra info, a 1gbe connection should be cap'd at ~120MB/s, so something is bottlenecking transfer...
 

videobruce

Golden Member
Nov 27, 2001
1,023
7
81
Too add to the OP that was left out (sorry about that);
I use BitMeter as a data transfer/Internet monitor tool (it's very similar to DU Meter), I ignore that lame M$ transfer window useless timer.
No active A/V programs running.

Both cards are gigabyte. Win7 is 64 bit, XP Pro sp3 is 32 bit (I forget to add)
Both HDD's are 7200rpm (the laptop does not have the original HDD)

To possibly sum this us clearer;
File X transfer from A to B using A as the controler
File X transfer back from B to A using A as the controller
then;
File X transfer from A to B using B as the controller,
File X transfer back from B to A using B as the controller

The ONLY differences are the direction and which PC initiated the command.

Both PC's are AMD based,
Tower has a AMDFX-8350 & a AMD 970A chipset MB. The NIC is a Realtek PCIe GBE. The specific HDD that has the file is a Hitachi 7200rpm HUA723020. (The O/S is on a SSD). Memory is 8GB
Laptop has a AMD Turion II M600 (the specs doesn't show the MB chipset) The NIC is a Marvell 88E8072. The (only) HDD is a 7200rpm WD WD5000BPKX. Memory is 2GB
 

Ketchup

Elite Member
Sep 1, 2002
14,558
248
106
In my experience of NIC chips doing file transfers (Gigabit chips being in the mix), Intel is faster than Realtek, and everything is faster than Marvell.
 

mv2devnull

Golden Member
Apr 13, 2010
1,519
154
106
You did moves first at the laptop and then at the tower. Did you clear caches in between?


Did you run BitMeter on both ends during every transfer?
 

ch33zw1z

Lifer
Nov 4, 2004
39,040
19,731
146
test the connection end to end with iperf, if it shows good speeds both ways, then its not the nic.

iperf testing, IMXP, has revealed cheap cables that werent givng great speeds and NIC drivers that needed updating.
 

Gryz

Golden Member
Aug 28, 2010
1,551
204
106
As so many other have done before you, you are measuring something, but you don't know what exactly you are monitoring. And if you don't know exactly what you are monitoring, you don't know how to interpret the numbers you see.

You might be measuring performance of your HDDs. Maybe write performance, maybe read performance. No idea.
You might be measuring performance of your network-file-system protocol (CIFS aka Samba). Who knows ?
If that protocol runs over TCP, you might be measuring the performance of the TCP stack.

What you need, is a program that copies from memory (RAM) on one machine, to memory on another machine. That way you are not limited by HDDs or SSDs or file-systems or whatever. The protocol you are using should use TCP, as that will be the most robust and tries to get the highest performance.

Cheezwiz mentions iperf.
https://iperf.fr/
I never used that. But at first glance it looks like it is exactly what you need.
I'm sure there are more such applications.
A quick google revealed:
http://www.totusoft.com/lanspeed
That also seems to be a free tool that might measure what you want to measure. Although they constantly talk about file-transfers, so maybe it doesn't have any memory-to-memory copies. And then the results will be less interesting for you.

You might need to invest a few minutes, or maybe even an hour, to figure out what you want to measure, and how to do that with those tools. And how to interpret the numbers. But such a test will be so more informative than just copying files from "some place" to "another place" over "some network" using "some network technology".

Good luck.
Let us know if you figure out something interesting.
I'd love to hear it.
 

videobruce

Golden Member
Nov 27, 2001
1,023
7
81
Thanks for the links, but that iperf is a command line program, not my cup of tea. The other has a\a GUI and I will look into that. I have had some other Internet/Route issues I'm still dealing with (not related to this thread).
I also realize read/write speeds of the HDD's enter into the equation. :(
 

ch33zw1z

Lifer
Nov 4, 2004
39,040
19,731
146
iperf is quite straightforward, and doesnt use your hdd's unless you have an older OS with very little RAM. iperf is small and lightweight, and should perform its functions inside RAM.

you need two clients, one on each end of the path you want to test. note the ip of each client

1. on one client, you open a command prompt and change the directory to the folder where iperf.exe is

run this: iperf.exe -s

this tells iperf to fire up as the server.

2. on the other client, open a command prompt, change directory to the folder where iperf.exe is

run this: iperf.exe -c x.x.x.x

-c tells iperf to be the client

x.x.x.x - you put the ip of the computer from step 1. its running as a server

you will likely get a message from windows to allow iperf traffic.

its also a good idea to flip flop and test the client and server setup in reverse.

do this a few times, youll get the hang of it.

iperf has many options to define what kind of traffic you want to send, i dont mess with that, just the standard commands work fine
 
Last edited:
  • Like
Reactions: videobruce