SUMMARY
This articles describes how to determine the hardware
requirements you will have when you migrate your computer from UNIX to Windows
2000.
back to the top
Translating CPU Requirements
You should be able to make a one-to-one comparison between the
existing CPU requirements of an existing Linux or Unix machine and a new
Windows-based machine. Windows dynamically scales it's performance according to
the number of pages served, rather than the per-client model employed by
Apache. For very large sites hosted on one or two 4-,8- or 16-way Unix servers,
you should consider splitting them into a number of smaller servers under
Windows and making use of the load balancing facilities.
back to the top
Translating Memory Requirements
The memory requirements of your current Unix machine can normally
be translated directly to your new Windows machine. Although there are
differences in the amount of memory used by the two platforms, it is unlikely
that minor differences in memory requirements will significantly alter
performance. As with all platforms and operating systems, the more memory
available, the better the overall performance.
back to the top
Translating Disk Space Requirements
A typical Windows 2000 installation requires approximate 1.5GB of
space. Adding SQL Server or additional applications such as Java, Perl, Python
or MySQL will push the base requirements to 2GB.
If you are currently
using RAID or similar technology to increase performance, make sure you provide
the same functionality on the Windows server.
To determine the
current disk space usage for your website under Unix/Apache use
du to calculate the total disk space usage for the static and
scripting elements of your site. For example:
du -sk /export/http/webs
To calculate the requirements for any database you need to
calculate the size of the raw data and then add 25% of this for additional
indexing and storage requirements. To get the raw data size for a database, use
the corresponding RDBMS
dump tool to dump the database specification and data to a text file.
For example, MySQL uses the
mysqldump utility. Use the
-A argument to dump all the databases or specify each database name
individually, i.e.
mysqldump -A >fulldump.db
mysqldump database1 database2 database3 >partialdump.db
Now obtain the size of the file or files using
du:
du fulldump.db
Then add 25% of the figure to calculate the total size
requirements. Allow an extra 50% on top of this for growth.
back to the top
Translating Networking Requirements
Windows supports TCP/IP as standard and can make use of multiple
interfaces and multiple-IP addresses for a single network card. To determine
the current settings for a Unix machine, use
ifconfig with the -a argument:
$ ifconfig -a
elx0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 1
inet 10.1.1.2 netmask ff000000 broadcast 10.255.255.255
ether 0:60:8:1d:e2:2b
spwr0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.1.135 netmask ffffff00 broadcast 192.168.1.255
ether 0:e0:29:1a:96:73
spwr0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.1.1 netmask ffffff00 broadcast 192.168.1.255
spwr0:2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 3
inet 127.0.0.1 netmask ff000000
There will always be one 'loopback' interface.
For each
network card there will be a corresponding entry in the output. Drivers are
listed, and each interface using a particular driver is then numbered. In the
above example, we have two interfaces,
spwr0 and
elx0.
Virtual IP addresses on a single interface are
indicated by a trailing colon and virtual IP number. Two are listed in the
above,
spwr0:1 and
spwr0:2.
back to the top