Does this site look plain?

This site uses advanced css techniques

[Evolution logo]

The Evolution™ payroll service-bureau software system is built around the Firebird SQL database system, with a Windows server as the middle tier and Linux for the backend database server.

Table of Contents

The database servers run a version of Linux (usually Red Hat or Fedora Core), and it's not uncommon to wonder just what's in these machines. This Tech Tip discusses how to discover some of the basic technical information about what's inside without having to open the boxes.

All of these require that you be logged into the Linux machine, but it's not necessary to be the root user; any user has the rights to discover this information.

Getting RAM specifications

Firebird is very demanding of RAM, and all DB servers should be maxed out with 4 gigabytes. Memory prices are constantly dropping, and the performance gains of additional memory are substantial (especially under heavy processing load).

Historically, older versions of Linux have required some special tuning to use more than 4 gigabytes of RAM, so 4G was a practical limit for many years. But modern systems go right past this to 8 or 16G easily: if your hardware and OS support more RAM, use it.

All Linux systems support the /proc filesystem, which exports a remarkable amount of information about the underlying system. We'll be querying this to find out the RAM.

At the command prompt, run the command more /proc/meminfo; the first line shows the number of kilobytes of physical memory in the system:

$ more /proc/meminfo
MemTotal:      4147128 kB  «—  total system memory 
MemFree:        489512 kB
Buffers:        130512 kB
Cached:        3209448 kB
SwapCached:          0 kB
Active:        2198076 kB
Inactive:      1396932 kB
HighTotal:      786432 kB
HighFree:         1024 kB
LowTotal:      3360696 kB
LowFree:        488488 kB
SwapTotal:     4096564 kB
SwapFree:      4096420 kB

... lots more deleted

Divide this number by 1024 to get the number of megabytes: in this case it's 4049. Note that the system itself usually reserves a bit of memory for its own use (BIOS shadowing, video RAM), so it may not be exactly 4096 megabytes, but it's obvious a 4GB machine.

Getting Processor specifications

We'll use a similar method to discover information about all the processors installed: /proc/cpuinfo. This file shows a great deal of data about each one: most of this information is not that useful. In addition, it can be somewhat ambiguous when considering HyperThreading and dual-core processors.

It's easy to run more /proc/cpuinfo to see the whole file, but we're going to search out just the model inforamtion:

$ grep "model name" /proc/cpuinfo
model name      : Intel(R) Xeon(TM) CPU 2.80GHz
model name      : Intel(R) Xeon(TM) CPU 2.80GHz
model name      : Intel(R) Xeon(TM) CPU 2.80GHz
model name      : Intel(R) Xeon(TM) CPU 2.80GHz

Linux believes that there are four processors, and in this case, we happen to know that this server has two physical processors, each with two full CPU cores: this is a hallmark of the Xeon product line.

These are real processors, so we should really consider this machine to have four CPUs.

HyperThreading, on the other hand, presents a few of a second processor, but it's really only providing a second set of registers sharing a single CPU core. HT provides a minor peformance benefit, but it's positively not the same as a real second processor.

Running the same command on a machine known to have two physical CPUs, we see:

$ grep "model name" /proc/cpuinfo
model name      : Pentium III (Coppermine)
model name      : Pentium III (Coppermine)

This shows just two processors, and since we know that these CPUs support HyperThreading, it must have been disabled in the BIOS. Running the same command on a different machine with HyperThreading enabled does indeed show four lines of output.

More information about the effect of HyperThreading in an Evolution environment can be found here:

Getting Hard Drive specifications

Finally, we visit the disk-drive space: since these servers hold the all-important payroll databases, it's crucial that they not fill up. Running out of space is very bad for a database server, but it's fortunately easy to query.

Running the df ("disk free") command, we can see how much space is available and how much is used on each of the machine's filesystems:

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             3.9G  1.1G  2.7G  28% /
/dev/sda2              99M   11M   83M  12% /boot
/dev/sda6             127G   43G   78G  36% /db         «— Evo lives here
none                  2.0G     0  2.0G   0% /dev/shm

Typically, Evolution is kept on the /db partition (the rightmost column), and the "Size" column shows the overall size available, this one has 127GByte of space, and only 36% has been used.

With 78 GByte free space (the "Avail" column), this partition has plenty of room to grow.

Each database server can be built differently, even with partitions not mentioned here, so it may be necessary to show the df listing to an expert in order to provide guidance on what matters and what doesn't.

This does not show whether the computer is using a RAID configuration: this must be discovered by other, vendor-specific means.

This information is not produced or endorsed by iSystems, LLC.

First published: 2006/08/30