Slow JumpStart on a Sun Fire V240

From Brandonhutchinson.com

Revision as of 15:36, 16 October 2007 by Hutch (Talk | contribs)
Jump to: navigation, search

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:
name_service=NONE
timeserver=localhost
  • 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 main reason for the slow JumpStart build was problems reaching the DNS server, forcing the bge interface to 100 Mbit may also have improved the build speed.

Personal tools