When working with SCCM deployments where PXE is being used for OSD once issue I have often faced, even in my home lab, is PXE boot performances being poor despite no apparent issues exist with server or network performances.
In worst cases SCCM PXE boot can take as long as 2 minutes which Ii s way too much to be acceptable but by experience I know rarely this behavior is caused by external factors.
SCCM PXE and TFTP
When you a computer is network booted to download WinPE images to start windows installation the TFTP (trivial File Transfer Protocol) is used to transfer files to the computer. While TFTP is a simple and common protocol for this kind of job it has the downside of being rather slow mainly due the fact that each packet contains one block of data and each packet needs to be acknowledged back to the sender.
SCCM PXE RamDiskTFTPBlockSize
SCCM allows us to customize and optimize the way PXE works in the contest of an SCCM Deployment through the use of a value named RamDiskTFTPBlockSize which allows us to increase the block size while reducing the number of needed acknowledgement packets.
To optimize SCCM PXE performances open registry editor and navigate to HKEY_LOCAL_MACHINESOFTWAREMicrosoftSMSDP and create a DWord value with the following parameters
Value (one of): 1024, 2048, 4092, 8192, 16384
Values above 16384 are not supported by the protocol so setting any value higher than the maximum will cause the client to timeout during transfer.
[su_note note_color=”#ffff96″ text_color=”#000000″ radius=”5″]Note: If you face any issue with a value, say 16384, try to lower to the next smaller one. [/su_note]
SCCM PXE RamdDiskTFTPWindowSize
The RamDiskTFTPWindowSize allows us to increase the number of TFTP Data windows while this not always translate in a significant improvement it is worth giving it a try navigating to HKEY_LOCAL_MACHINESOFTWAREMicrosoftSMSDP and creating a DWord value with the following parameters
Values (one of): 4, 8
While there are other settings that you can manipulate to optimize SCCM PXE Performances usually changing the RamDiskTFTPBlockSize will deliver immediate benefits so my suggestion is to implement this optimization and test everything eventually modifying the RamDiskTFTPWindowSize for a further optimization even if for experience not as noticeable as the change in block size.