Show/Hide Toolbars

Filopto Help Manual

Navigation: » No topics above this level «

How Hardware can improve performance?

Scroll Prev Top Next More

 

IMPORTANT

These comments are for the Filopto server ONLY and requires that the SERVER has a functioning Battery Backup Unit (BBU) or Uninteruptable Power Units (UPS). Verify that the you are not using a discharged battery.

Not using a UPS or BBU on a server can cause data to be lost and will slow down your system.

Computer will fail ! Have a good and tested backup system/plan.

 

Hardware configuration tuning

The number one problem with SERVER speed is due to the hardware configuration of the disk cache settings. The simple reason for this problem is the absence of a check in the check box in Windows disk hardware configuration dialog:

diskcache

Figure 1. Check that you have ENABLED write caching on your device! - IMPORTANT You must have a functioning UPS or BBU unit attached to the server or you will have data lost if you enable this option.

 

Depending on the operating system configuration, the RAID system or Battery Backup Unit (BBU) or Uninteruptable Power Units (UPS) the write cache setting may be Turned OFF by default. Most server operating system will turn off this setting if a UPS or BBU is missing.

 

If you are going to use RAID make certain the Write Cache policy setting is turned on. By default most RAID system installed into server without Battery Backup Unit, or with discharged battery will automatically turns off write cache, and makes IO speed very, very slow

.

When you bought the new high-end server and encountered that it works slower than an old one, this is it: you have problems with RAID: either write cache is set to «write through» or a BBU or UPS is absent or not functioning properly. Test your UPS/BBU on a regular basis the batteries have a limited lifespan and need to be replaced on a regular interval.

 

The main advice about hardware configuration: make certain that write cache is ENABLED for all your disks and that you have a functioning and fully charged and functioning UPS or BBU attached to the server.

 

Hardware upgrade

During the optimization process our customers ask about the best hardware. It is not possible to give a full universal specification, but there is one thing which is definitely recommended: Solid State Drives (SSD) or even better a NVMe drive.

 

A pair of enterprise-class SSD in RAID1 or 10 (mirror for reliability, Raid 5 or 6 can also be used) can decrease the average response time significantly: one of our performance tests has shown 8x improvement!. Usually the effect from using SSD is more modest and fall about 30-50%, which is also really good.

 

Another popular upgrade is to increase the amount of RAM, since RAM can often be a bottleneck (including those cases when Firebird is used on the server with other software which also consumes memory). Windows task manager show the utilization of the RAM but only gives partial information. Users can view more detail RAM usage by viewing the memory tab in the Windows Resource Monitor.

 

Firebird uses 3 levels of RAM memory;

 

1) the Firebird cache which typically can be anywhere from 2-6 GB of RAM and contains the most current active data,  

 

2) the Operating System memory which is managed by Windows and can grow to the maximum amount of free memory available on the system, it not only contains the Firebird application and data but all applications and data from the other applications and services running in your system ( it grows and shrinks base on current usage of the system) and

 

3) the disk cache which is a third level of data memory managed by the Microsoft memory manager. It swaps the data and applications from the active RAM when it is full and more memory is needed and temporarily places it on your hard drive until it is needed.  System performance degrades (potentially significantly) when your system must start using this swap file located on the disk. Performance is affected because the computer must spend time sending the data to the disk and then reading it into RAM memory again before it can be used.  Hard drives are extremely slow compared to RAM memory meaning the computer will take longer to do the task than if the information was already in RAM memory.

 

ResourceMonitor

Figure 2. Shows this server has 16GB of RAM memory. The Server is currently using 6 GB for Firebird and Windows and has only 140MB RAM Free. The rest of the RAM memory (10GB) is used by users via the Windows cache which speeds up the I/O disk process and gives the server it's snappy feel. Windows will typically use as much of the RAM memory as is available. The more RAM memory the more work the server can process at a time. Having a large amount of Free memory means your server does not need it. Not having any Free RAM memory available means the server has to work harder since it needs to page (cache) the information from memory to the hard drive which slows down the server response time. The above example shows that this computer memory is maxed out and could use more RAM memory.

 

Usually CPU speed is typically not a bottleneck unless your CPU usage is approaching 80%, so having faster CPU is not a priority for Firebird. However, the number of CPU cores is important. More cores, the more work that can be done at the same time. Less wait time for the users. Having a regular CPU utilization of 80% or over indicates that the server needs to be upgraded since it is having issues serving the workload it is being asked to performed. Windows cannot sustain efficiency when the CPU load is constantly over 80%. You should consider upgrading your CPU when you reach 70% utilization on a constant basis or the speed of the CPU or number of cores are no longer acceptable.

 

What can you expect from hardware upgrade?

Usually, a hardware tuning/upgrade speeds up an average response time. For example, switching to SSD gives 30-50% decrease of an average response time.  Using a NVMe drive provides an even bigger decrease in average wait time.

 

Let us summarize the recommendations for Firebird concerning hardware.

 

1.Multi-core CPU's must be used to serve a large number of users

 

2.The least amount of RAM is calculated on the basis of the number of users and database configuration, the exceeding amount of RAM will be effectively used by the Microsoft operating system to cache the database file, making the overall system faster. Consider 16GB+.

 

3.Consider using separate disks for databases, temporary files and backup files in medium or large installations

 

4.Rather use SSD's for databases hard drives

 

1.Reserve at least 30% of free space on SSD's.

 

2.It is advisable to dedicate a disk to the database.

 

3.Use quality SSD's (with a lot of write/read cycles).

 

5.Make sure you use RAID.

1.For SSD – RAID 1, for HDD – RAID10, for backup HDD – RAID1. i. SAS, SATA

2.For SAS or SATA  hard drive containing the Firebird database consider RAID 5 or 6 (not using a SDD drive for the database)

3.Make sure the RAID battery is there and charged and that the server has a UPS unit charged and working properly

4.Make sure the server is switched to write back when using RAID battery and Server UPS.

 

6. Make certain you have a good/tested backup plan. Computers will fail !