Arachnid / netboot.me-gpxe

gPXE fork for netboot.me booting
http://netboot.me/
GNU General Public License v2.0
15 stars 4 forks source link

Download speeds are locked in at ~65kB/s #1

Open gbakeman opened 13 years ago

gbakeman commented 13 years ago

After some discussion on google groups, it seems like a few users like me are experiencing an issue where any downloads occuring within the gPXE portion of netboot will hover around 65kB/s, while any downloads occurring within the distro of our choice will be able to utilize the full potential of our internet connection.

I've tried several different mirrors, all using the http protocol, and all of them able to download significantly faster when not using gPXE. My NIC is an integrated Intel PRO/100 VE (LOM) ethernet controller (using the e100 kernel driver when openSUSE is running), on a system with 512MB of memory (511MB after allocation for graphics), and a Pentium 4 mobile processor @2.4GHz. This is all in a Gateway 400SD4 laptop if it helps.

I hope something can be done to speed up these downloads.

Arachnid commented 13 years ago

Unfortunately, this is an issue with the network stack of gPXE, the netboot tool netboot.me uses. I'm not sure precisely why it has such poor bandwidth, either.

I'm leaving this open as a tracking bug for anyone else who notices the issue.

gbakeman commented 13 years ago

The other user who I was discussing this issue with mentioned that their NIC cards were not being recognized at all. My reason for bringing that up is that perhaps different/more drivers could be integrated. The Etherboot project seems to specialize on NIC drivers for PXE booting, perhaps this could point you in the right direction? http://etherboot.org/wiki/faq/drivers

Arachnid commented 13 years ago

Etherboot and gPXE are the same thing under different names. If your NIC isn't supported, you need to pester them. :)

gbakeman commented 13 years ago

Oh, darn. I remember using Etherboot a while ago... I can't remember if I had this issue.

Harvie commented 13 years ago

Increase of default TCP window size should help according to: https://github.com/Arachnid/netboot.me/issues/39#issuecomment-2696683

Harvie commented 12 years ago

Downloading 16MB of debian instalator for one hour while being on 200Mbps fiber really sux :-(

Harvie commented 12 years ago

Can somebody pls try this?

diff --git a/src/include/gpxe/tcp.h b/src/include/gpxe/tcp.h
index 7ae7eab..9dc39fc 100644
--- a/src/include/gpxe/tcp.h
+++ b/src/include/gpxe/tcp.h
@@ -286,8 +286,8 @@ struct tcp_options {
  * actually use 65536, we use a window size of (65536-4) to ensure
  * that payloads remain dword-aligned.
  */
-//#define TCP_MAX_WINDOW_SIZE  ( 65536 - 4 )
-#define TCP_MAX_WINDOW_SIZE    4096
+#define TCP_MAX_WINDOW_SIZE    ( 65536 - 4 )
+//#define TCP_MAX_WINDOW_SIZE  4096

 /**
  * Path MTU

i can't build it even without modification because of some warning:

  [BUILD] bin/mtnic.o
  [BUILD] bin/eepro.o
  [BUILD] bin/prism2_plx.o
drivers/net/eepro.c: In function ‘eepro_transmit’:
drivers/net/eepro.c:414:23: error: variable ‘tx_available’ set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

make: *** [bin/eepro.o] Error 1
make: *** Waiting for unfinished jobs....