Hello, I have what seems to be a relatively simple problem, but I cannot exactly pin point it. In summary, my friend recently gave me his old (very old) computer which I turned into a Linux web/file server. Everything is up an running beautifully, and I have verified the local ethernet network interface is running at 100Mb/s:
Quote:
[root@www1 ~]# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yes
|
On the client side, when I run ttcp to test the bandwidth I get similar results:
Quote:
[me@localhost ~]$ ttcp -t -s -p 80 192.168.1.100
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=80 tcp -> 192.168.1.100
ttcp-t: socket
ttcp-t: connect
ttcp-t: 16777216 bytes in 1.36 real seconds = 12090.05 KB/sec +++
ttcp-t: 2048 I/O calls, msec/call = 0.68, calls/sec = 1511.26
ttcp-t: 0.0user 0.0sys 0:01real 3% 0i+0d 0maxrss 0+3pf 65+5csw
|
(note that the values are in bytes per second, and when computed, bits per second is in the range of 95-100, which is very acceptable).
Aditionally, my server is very low key, meaning it essentially only gets hit when I issue a request (essentially no other users), so incoming/outgoing traffic is essentially nil. I have verified this by issuing a tcpdump when there was no requests being issued, and I saw that there was very little network traffic (a few arp/dns/dhcp/etc. packet every once in a while).
My problem arises when I try to transfer large amounts of data from one host to another. When I do so, it takes a long time 2-3 minutes to transfer ~250MB, which should only take about 20 seconds, a rate of about 16b/s. This occurs regadless of the mechanism which I am transfering the files, eg. I've used ftp, samba, and scp to perform the transfer with the same results. My first question is whether anyone has any idea why these transfers are so slow.
Since I bought this machine second hand, I know very little about the host. I'm not sure if the motherboard has a DMA controller or the CPU speed of my processor. I know that the machine only has 392MB (128 + 256 modules) of memory, which could be better, as well as an IDE hard drive interface which also could be improved. I know that all these factors have an effect on my issue, I was wondering if anyone knew a way how to collect more information/statistics about where the bottleneck is occuring when the data transfer is taking place.
Finally, a related question. I know my cpu can be classified in the x86 category (once again I'm not sure which model it exactly is), and I was wondering, if I upgraded my CPU and motherboard to solve this problem, if my existing Linux installation will work? I'm assuming that so long as I stay with the same instruction set, eg. upgrade to one of the recent celerons, pentiums, or amd processor, my system won't break, but I would like to make sure before I spend the money and perform the upgrade.
Anyways I appreciate everyone reading this long post :-p and any ideas/solutions that you might have. Thanks!!!