Slow JumpStart on a Sun Fire V240
From Brandonhutchinson.com
(Difference between revisions)
(New page: 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: ...) |
m |
||
| (8 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 | + | * 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 | ||
| - | * 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 | + | * 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 | 1000 Mbit: 10-12 seconds | ||
100 Mbit: 2-3 seconds | 100 Mbit: 2-3 seconds | ||
| - | I created a ''Begin'' script that | + | To force 100 Mbit during the JumpStart, I created a ''Begin'' script that disabled the 1000 Mbit capability. |
#!/bin/sh | #!/bin/sh | ||
| Line 35: | Line 35: | ||
(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) | (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 | + | Since the switch and the OS are set to autonegotiate, the interface falls back to 100 Mbit: |
Current /dev/bge0 link_speed: | Current /dev/bge0 link_speed: | ||
| Line 47: | Line 47: | ||
1 | 1 | ||
| - | Although the | + | 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.
