Slow JumpStart on a Sun Fire V240
I was asked to investigate a slow custom JumpStart build over gigabit ethernet on a Sun Fire V240. Apparently, packages were installing at the rate of 40 MB/hour.
I noticed two problems:
- The sysidcfg file specified DNS name service, but the DNS server was unreachable. This really slowed down JumpStart. The time server was also unreachable (although it shouldn't affect JumpStart speed), so I put the following in sysidcfg:
- 100 Mbit transfers were 3-4x faster than 1000 Mbit between the JumpStart client and JumpStart server. I did a boot net -s and copied a ~120 MB directory from the JumpStart server:
1000 Mbit: 10-12 seconds 100 Mbit: 2-3 seconds
To force 100 Mbit during the JumpStart, I created a Begin script that disabled the 1000 Mbit capability.
#!/bin/sh echo "Current /dev/bge0 link_speed:" ndd -get /dev/bge0 link_speed echo "Current /dev/bge0 link_duplex:" ndd -get /dev/bge0 link_duplex ndd -set /dev/bge0 adv_1000fdx_cap 0 # Not needed ndd -set /dev/bge0 adv_1000hdx_cap 0 echo "Sleeping 10 seconds..." sleep 10 echo "New /dev/bge0 link_speed:" ndd -get /dev/bge0 link_speed echo "New /dev/bge0 link_duplex:" ndd -get /dev/bge0 link_duplex
(I don't know if the sleep command above is needed, but when I didn't have it, link_speed immediately returned 0, and link_duplex immediately returned -1)
Since the switch and the OS are set to autonegotiate, the interface falls back to 100 Mbit.
Current /dev/bge0 link_speed: 1000 Current /dev/bge0 link_duplex: 1 Sleeping 10 seconds... New /dev/bge0 link_speed: 100 New /dev/bge0 link_duplex: 1
Although the inability of the JumpStart client to reach the specified DNS server was the main cause of the problems, forcing the bge interface to 100 Mbit may also have improved the build speed.