Linux vs. Windows NT Comparison Oracle 9i on Linux vs. Windows 2000 Server We recently performed a technical, head-to-head comparison of Oracle 9i release 2 running under out-of-the-box versions of Red Hat LinuxAS 30 and Windows 2000 Server Edition, on identical Pentium-based hardware. The goal of these tests was identify the strengths and weaknesses of each operating system in the areas of database performance, stability, and ease of administration / support Notes on the Hardware, Operating Systems Compared, Etc. Testing was performed on a Compaq DL380 with 1 GB RAM and 2 Pentium III processors with 512K of cache, running at 1.13 Gigahertz. The chassis contained five (2) 18.2 GB Drives hooked to a MegaRAID controlled (although RAID was not used on the disks containing database data files or operating system swap). After each test run was completed, the server disks were wiped of partitioning information, reformatted and re-imaged with the competing operating system with a comparable swap configuration / layout, Oracle software installation, and eventual database configuration and layout.
The Performance Tests
A series of RDBMS tests were coded to produce a mix of I/O characteristics similar to those found in typical instance OLTP environments. These tests were specifically designed to stress the database instance in the areas of:
· Datafile creation
· Locally managed and dictionary managed extent management
· Redo generation (and subsequent LGWR flushing)
· DBWR block acquisition and flushing during I/O loads and checkpointing
· Parallel / Bulk DML
· Parallelized table scans, joins, and intercommunication.
· Large transactional and query performance against range, hash, and list-partitioned tables
The following bar graph represents key performance areas broken down by specific RDBMS operations and/or tasks:
Figure 1. Comparison of Specific RDBMS Functionality
As you can see from the graph above, Oracle RDBMS operations tested on Linux performed anywhere between 13%-75% better than they did with an identical Oracle configuration, running under Windows 2000 Server. When all operations were averaged together, Linux showed a general performance advantage of 38.4% over Windows.
The Administration Comparison
The task of overall database administration was also compared by examining the simplicity and platform consistency in creating and maintaining one or more Oracle database instances in the two operating system environments compared to how these operations are performed today on other mainstream Oracle environments, Sun Solaris and HP-UX.
The following table illustrates the Pros and Cons identified during the examination of the two operating platforms:
Automated Instance Startup and Shutdown (Consistency)
dbstart, dbshut, oratab use similar to Solaris and HP-UX
Automated Instance Startup and Shutdown (Simplicity)
Service and Registry is configured via GUIs to control automatic instance start up and shut down
Command-Line Utilities (Consistency, Simplicity)
Unlike other Oracle releases, 8i/9i has consistent names for most command-line utilities in Windows and Linux.
Initial OS Prep for Database Creation (Consistency)
Procedurally the kernel reconfiguration is slightly different, but the parameters modified and the steps necessary to prep the environment are identical to HP-UX and Solaris.
Initial OS Prep for Database Creation (Simplicity)
No kernel reconfiguration or relink required.
Instance Creation (Consistency, Simplicity)
Windows requires a extra step in database creation (and deletion). A Windows Service must be created and maintained via the oradim utility for each database instance on the server.
GUI Utilities (Consistency, Simplicity)
Identical GUIs. "Remote execution" of server-based GUI tools equally troublesome on Windows and Linux.
OFA-like Implementation and Support
Windows has no support for symbolic links or nested mount points, making OFA implementations on Windows difficult, at best.
Operating System Administration (Consistency)
Not always identical, but certainly closer in heritage to what one would expect in HP-UX and Solaris
Operating System Administration (Simplicity)
Windows has more GUI-enabled administrative features than Linux.
Scripting (Consistency, Simplicity)
Scripting options are more robust on the Linux platform and more closely resemble those found on Solaris and HP-UX.
Although third-party implementations of KSH are available for Windows, many of them are extremely unstable and exhibit different behaviors compared to their Unix siblings.
Environment variable names are also more consistent on Linux than on Windows. (e.g. $TWO_TASK on Windows is called %LOCAL%, etc.)
Support for multiple instances within the same Oracle Home (Consistency, Simplicity)
Support for multiple instances with different Oracle Homes (Consistency, Simplicity)
Windows requires multiple registry entries for each Oracle Home. Depending on the Oracle version, the registry tree structure for a given home can be very different.
Switching homes "gracefully" occurs by running a GUI based switcher.
Windows will also use a dynamic home assignment that is formulated when an executable from a particular $ORACLE_HOME is created.
Neither Windows 2000 Server nor RedHat Linux demonstrated any notable operating system-specific problems for the Oracle RDBMS environments tested in terms of stability; There were no operating-specific ORA-600 internal errors, fatal instance crashes, etc. during its various testing operations.
Conclusions and Recommendations
From perspective of performance, RedHat Linux demonstrated an average performance advantage of 38.4% higher RDBMS throughput than a similarly configured Windows 2000 Server in a variety of operational scenarios.
Neither operating system introduced any strange RDBMS operating anomalies, unexplained errors, or crashes during testing. This demonstrated that either platform was well suited to support a stable Oracle Instance, operating in a variety of conditions.
In terms of overall configuration and administration, Windows 2000 Server demonstrated that it could be easier from an overall point-and-click GUI perspective. It was lacking, however, in the ability to support multiple, dissimilar Oracle homes, which is critical in order to support even a minimal degree of database stacking.
Another point of contention was Window's lack of consistency between many database administrative functions (automated startup, shutdown, service creation, scripting, etc.) compared to what DBA’s are already used to in many mainstream UNIX environments (Solaris and HP-UX).
RedHat is highly recommended for use in Oracle RDBMS installations operating on Pentium-based servers. Windows 2000 Server on Intel-based machines may be used for Oracle databases in environments where there are no current or foreseeable scalability requirements, under the rare circumstance where a windows-based service is required to operate on the same server as the RDBMS itself, or other specific case-by-case situations.