Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Sep 2003 14:37:37 -0500
From:      "Charles Howse" <chowse@charter.net>
To:        <freebsd-questions@freebsd.org>
Subject:   Comparing buildworld times on twin machines
Message-ID:  <000001c385f7$f948a5d0$04fea8c0@moe>

index | next in thread | raw e-mail

[-- Attachment #1 --]
Hi,
I have 2 machines on my home network with (almost) identical hardware.
They both have Celeron 300, same motherboards, same BIOS, same options
set in BIOS, etc.
Same make.conf, same kernel config.  
I kill SETI@home before starting on each machine.
The only difference is that curly has 128 MB ram where larry has only
64.

They *do not*, however have identical hard drives, even though each
machine has 2 drives, with /usr/obj on the second drive of each machine.

When I buildworld, I use the following command, and write the output to
'$blog'.

[portion of script omitted, entire script is attached as update1.sh]

\time -aho $$blog make buildworld

[snip]

Larry can buildworld in 1 hr 57 mins.
It takes curly 3 hrs 16 mins, even though curly has twice the ram.

If I watch the compile, with one eye on the disk activity light, it
seems to me that the process is largely CPU intensive, therefore I would
expect that the buildworld times should be roughly equal.

1) How can I determine what might be causing curly to take so long
compared to larry?

2) Since curly runs httpd, and vsftpd, is it acceptable to run the
entire build/install process in single-user mode in order to prevent
other processes from eating CPU cycles?



Thanks,
Charles

Got a computer with idle CPU time?
Join SETI@home and help make history!
http://setiathome.ssl.berkeley.edu/

[-- Attachment #2 --]
#!/usr/local/bin/bash
#
# Update the system, run in multi-user mode.
#
# Checks the exit status of all important commands,
# Exits on exit status of anything other than 0, 
# Prints the name of the command that failed.
# Logs the last 10 lines of screen output for important commands.

blog=/var/log/build/build-`date "+%m-%d-%Y"`.log

bailout() {
if [ "$?" -ne 0 ] ; then
    echo "Update1 has bailed out!!"
    echo "The command that failed was..."
    echo $cmd
    exit 1
fi
}

echo -n "Have you read /usr/src/UPDATING? [y/n]: "
read a
if [ "$a" = n ] ; then
    less /usr/src/UPDATING
    exit 2
fi

echo -n "Have you merged /etc/group and /usr/src/etc/group? [y/n]: "
read b
if [ "$b" = n ] ; then
    diff -c /etc/group /usr/src/etc/group | less
    exit 3
fi

echo -n "Have you merged /etc/master.passwd and /usr/src/etc/master.passwd? [y/n]: "
read c
if [ "$c" = n ] ; then
    diff -c /etc/master.passwd /usr/src/etc/master.passwd
    exit 4
fi

cmd="cp /disk2/larry/etc/make.conf /etc"
cp /disk2/larry/etc/make.conf /etc
bailout

cmd="cp /disk2/larry/usr/src/sys/i386/conf/CUSTOM /usr/src/sys/i386/conf"
cp /disk2/larry/usr/src/sys/i386/conf/CUSTOM /usr/src/sys/i386/conf
bailout

cmd="Clean out /usr/obj"
echo -n "Clean out /usr/obj? [y/n]: "
read d
if [ "$d" = y ] ; then
    cd /usr/obj
    chflags -R noschg *
    rm -rf *
fi
bailout

echo -n "Continue with build? [y/n]: "
read e
if [ "$e" = n ] ; then
    exit 5
fi

# Kill SETI@home
kill `ps -aux | grep setia | grep -v grep | awk '{print $2}'`

if [ ! -d /var/log/build ] ; then
    mkdir /var/log/build
fi

cmd="make buildworld"
cd /usr/src
echo -n "Time for buildworld:" >> $blog
\time -aho $blog make buildworld
bailout

cmd="make kernel"
echo -n "Time for make kernel:" >> $blog
\time -aho $blog make kernel
bailout

echo "Reboot to single user mode and run /disk2/larry/bin/update2"
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000001c385f7$f948a5d0$04fea8c0>