Post Reply 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
IPXE - WDS Performance
2013-09-04, 17:42
Post: #1
IPXE - WDS Performance

We have recently updated our systems from employing gPXE .99 to iPXE 1.0.1. We’ve performed our suite of qualification tests against it, and they check out fine except under one particular operating regime – i.e. employing WDS to load Win2K8R2. The specific problem is that it takes of the order of 9hrs to install Win2K8R2 when iPXE is employed versus about 15-20 mins when gPXE is employed. Using iPXE with a variety of linux variants proves to be no issue.

Please note: Identifying that the issue appeared to be related to iPXE occurred after significant fault isolation. Also, note that I won’t delve into HW specifics at this point, as I am able to have working gPXE behavior and pathological iPXE behavior on the same system. Further, I am able to employ Samba to install Windows, so I have a level of confidence it is not a Windows-specific issue.

In an effort to root cause, we took some traces for the working, gPXE session and the pathological iPXE issue. In the gPXE (working) trace, the gPXE client quickly receives and acknowledges all TFTP/UDP messages, and the server never has to retransmit any messages. In contrast, the iPXE (failing) trace shows that the iPXE client is very slow to acknowledge TFTP/UDP messages, causing the server to retransmit frames over and over.

Now, interestingly, we found that when we modified the Windows ramdisktftpwindowsize from its default setting of 4, to a window of 1, we were able to see a nominal iPXE install (using WDS) of about 17 minutes.

Question #1: Is there something in iPXE 1.0.1 that might explain the aforementioned behavior in a Windows context?

Question #2: Is there a later version of iPXE which has bug fixes that might address the aforementioned problem?
Find all posts by this user
Quote this message in a reply
2013-09-05, 12:21
Post: #2
RE: IPXE - WDS Performance
If you're using the branch tagged 1.0.1 in git, you're using an awfully old version of iPXE. You should always use the head of the master branch. That is always supposed to be stable, as development happens on other branches. Could you tell us which git commit from the repo you used to build your ipxe binary? Also, did you use undionly.kpxe or ipxe.pxe when chainloading? Or did you use some other deployment scenario?

There has been quite a lot of TCP, ARP and other improvements in the last 6 months, and if you're using an old version (which 1.0.1 is) you might be running into some of those.
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 

User(s) browsing this thread: 1 Guest(s)