e-mail   
 Menu
  Home
  Download
  Top 10 Downloads
  Last 15 New Files
  Web Links
  Tips
  Last 15 New Tips
  NLM Programming
  Admins Club





SUPLA System
Internet of Things




Installation and Administration






Polish Forum SUSE


 
Who's Online

 There are currently,
19 guest(s)
that is (are) online.
 


Technical Information

Back to List of Categories

Technical Information about
  An Introduction to JBoss
  An Introduction to LDAP: Part 1-LDAP Primer
  An Introduction to LDAP: Part 2-Using LDAP to Create a User Authentication
  AppNote: Configuring an OpenSLP DA on OES or SUSE LINUX Enterprise Servers
  AppNote: Installing Oracle 10g on SLES9
  Developing PHP Scripts with SUSE LINUX
  Encrypting Data Partitions
  How to configure MySQL for NSS File System in OES for Linux
  How to install Webmin - A Web-Based System Admin Tool
  How to Run Binary-Only Application Packages on Various Versions of Linux
  Integrating Novell OES Linux iManager, Virtual Office and Welcome Page with Apache 2.2.2, Tomcat 5.5.17 and Sun Java2 1.4.2
  Keeping Sync with a Remote NTP Server
  Lab Guide for installing Open Enterprise Server with Linux Kernel
  Make your computer a SUSE LINUX Enterprise Server with a normal cable connection.
  Novell SLES9 vs Windows2003 Server
  NTP Active Servers
  Patching Open Enterprise Server with rug/Red Carpet FAQ
  Performance Tuning Installation Tips
  Remote administration

Technical Information
 Performance Tuning Installation Tips

Printer-friendly version

Posted: 24 Aug 2005

Applies To:

  • SUSE LINUX Enterprise Server
  • Open Enterprise Server

Purpose

Prior to installing the OS on a new Linux server, take time to consider the hard drive and partition configurations of this server. Choices made during the initial installation can lead to drastic performance boosts (or degradations).

Specifically, consider:

  • The number, size, type, and configuration of the hard drives.
  • The partition layout on these drives.
  • The filesystems used for these partitions.

Hard Drives

Most high-performing servers contain more than one hard drive. A hard drive can only perform a single read or write operation at a time--multiple drives boosts performance by making multiple read/write operations possible. To maximize performance, consider the following:

  • Place the most frequently used partitions on separate drives, if possible.
  • Use the fastest drives for the most actively used partitions.
  • If using IDE, spread the drives across the available channels. Make them the master of their channel, if possible.

It is important to realize which partitions require the best performance. This order varies for every server, based on its usage patterns. A good general example is (in order of decreasing performance):

  • swap - If the server needs to use swap space, it should be as fast a possible.
  • /var - Servers frequently write to log files (located in /var).
  • /srv - A http or ftp server needs quick access to its sources.
  • /usr - Most application binaries are stored in /usr.
  • /tmp - As services run, they may store and access data here.

A note on RAID: Performance can also be boosted by placing drives in a RAID array (Redundant Array of Inexpensive Disks). RAID allows partitions to span physical hard drives, thereby allowing a single read/write operation to span disks.

Partition Layout

Due to the physical layout of a hard drive, the order in which partitions are created can also effect performance. Hard drives are made up of many circular disks divided into sectors and tracks. The outermost track of these disks tend to deliver the best performance because there are more sectors per track. Thus, it is best to place the partitions which require the highest performance on the outermost tracks of the drive. Usually, this is accomplished be creating the partitions at the beginning of the drive (i.e. cylinder 0).

Filesystems

One of the strengths of Linux is the variety of available file systems. Different file systems boost certain areas of performance. It is important to consider the anticipated uses of a server, and choose the most appropriate file system:

Filesystem
Description
Journaling
ext2
Very quick and simple filesystem. In the past, it was the default for most distributions. The major drawback: it's prone to corruption if it is not unmounted properly (i.e. power failure, unclean reboot, etc) and requires a time-consuming file system check.
no
ext3
The next generation of the ext2 file system. Conversions between ext2 and ext3 are very simple. Basically, it's ext2 + Journaling support for better crash recovery. It is the default file system on some distributions.
yes
reiserfs
Reiserfs was the first Journaling file system available for Linux. It provides a good performance to CPU usage ratio, and offers good disk space utilization, good disk access performance, and fast crash recovery. It is great for systems that need to create many small files. It is the default file system in SUSE Linux.
yes
JFS
Developed by IBM, JFS is targeted for high-throughput environments. It is a full 64-bit filesystem, and has great large file support.
yes
XFS
XFS was developed by SGI. Like JFS it is 64-bit and performs well on large files in high-throughput environments. It uses more CPU time that JFS, but tends to perform better.
yes

Example

Note: The example given here is just one way this server could be set-up. Depending on intended use, other configurations could be better.

As an example, consider a simple web/ftp server. This server has the following available hardware:

  • 2 IDE channels
  • 1 SATA controller
  • 5000 RPM IDE drive, 10 GB
  • 7200 RPM IDE drive, 20 GB
  • 7200 RPM SATA drive, 10 GB
  • CD-ROM drive
  • 512 MB memory

Notice that there are three hard drives available, with varying speed. To begin with, configure the drives onto their proper I/O channels:

IDE
|--> IDE0
 |  |--> (master) 7200 RPM IDE drive, 20 GB
 |  --> (slave) none
--> IDE1
|--> (master) 5000 RPM IDE drive, 10 GB
--> (slave) CD-ROM drive

SATA
--> 7200 RPM SATA drive, 10 GB

Notice that the fastest of the IDE drives has its own channel so it can be accessed as freely as possible. Also notice that the other drive shares its channel with the CD-ROM, but is the master. With this configuration, the drives perform best in the following order:

  1. 7200 RPM SATA drive, 10 GB
  2. 7200 RPM IDE drive, 20 GB
  3. 5000 RPM IDE drive, 10 GB

Now, consider which partitions should go on which drives. The most important mount point for speed are swap and /var. These should be created on separate drives, at the beginning of the drive.

  • swapshould be twice the RAM size (1 GB). swapwould optimally be placed on its own drive, with no other partitions. Given the intended purpose of the server, and its 512 MB of memory, assume that the server will rarely use swap space and place some other partitions on this drive to better utilize space.
  • /var should be about 1 GB.
  • /usr should be about 4 GB, and should be on a fast drive.
  • /srv needs to have good speed and space for the FTP files.
  • /tmp should have good speed.
  • / has everything else. All the high-performing mount points have been pulled out so it can go on the slowest drive.

Given these requirements and the available drives, an example configuration could be:

IDE
|--> IDE0
 |  |--> (master) 7200 RPM IDE drive, 20 GB
| | |--> /var, 1 GB reiserfs
| | --> /srv, 19 GB reiserfs
 |  --> (slave) none
--> IDE1
|--> (master) 5000 RPM IDE drive, 10 GB
| --> /, 10 GB reiserfs
 --> (slave) CD-ROM drive

SATA
--> 7200 RPM SATA drive, 10 GB
|--> swap, 1 GB swap
|--> /usr, 4 GB reiserfs
--> /tmp, 5 GB reiserfs

Or, in another view:

/            (5000 RPM IDE drive, 10 GB reiserfs)
 |--> /bin ""
 |--> /boot ""
 |--> /etc ""
 |--> /home ""
 |--> /lib ""
 |--> /opt ""
 |--> /root ""
 |--> /sbin ""
 |--> /srv (7200 RPM IDE drive, 19 GB reiserfs)
 |--> /tmp (7200 RPM SATA drive, 5 GB reiserfs)
 |--> /usr (7200 RPM SATA drive, 4 GB reiserfs)
 |--> /var (7200 RPM IDE drive, 1 GB reiserfs)
 --> swap (7200 RPM SATA drive, 1 GB swap)

All these partitions would probably be fine to use reiserfs. The exception may be /srv. If the server is serving large files (such is iso's, etc) it may benefit from JFS or XFS but this is probably an overkill on such a small server.






Since 2003

Portal posiada akceptację firmy Novell Polska
Wszystkie materiały dotyczące produktów firmy Novell umieszczono za zgodą Novell Polska
Portal has been accepted by the Novell Polska
All materials concerning products of Novell firm are placed with Novell Polska consent.
NetWare is a registered trademark of Novell Inc. in the United States and other countries.
Windows is a trademark or a registered trademark of Microsoft Corporation in the United States and other countries.
Sybase is a registered trademark of Sybase Inc. in the United States of America.
Other company and product names are trademarks or registered trademarks of their respective owners.