Slow JumpStart on a Sun Fire V240

From Brandonhutchinson.com

(Difference between revisions)
Jump to: navigation, search
Current revision (15:41, 16 October 2007) (edit) (undo)
m
 
(2 intermediate revisions not shown.)
Line 3: Line 3:
I noticed two problems:
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'':
+
* The ''sysidcfg'' file specified DNS name service, but the DNS server was unreachable. This '''significantly''' 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
name_service=NONE
timeserver=localhost
timeserver=localhost
Line 47: Line 47:
1
1
-
Although problems reaching the specified DNS server was the main reason for the slow JumpStart build, forcing the ''bge'' interface to 100 Mbit may also have improved the build speed.
+
Although the main reason for the slow JumpStart build was that the DNS server in ''sysidcfg'' was unreachable, forcing the ''bge'' interface to 100 Mbit may also have improved the build speed.

Current revision

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 significantly 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 that the DNS server in sysidcfg was unreachable, forcing the bge interface to 100 Mbit may also have improved the build speed.

Personal tools