View Linux Tuning
Basic system settings (for RHEL or CentOS)
Disable SElinux
SElinux is intended to protect Linux servers on the public internet such as Web Servers. It provides an extra layer of security that isn’t really required for a back-end database server. In /etc/sysconfig/selinux put:
SELINUX=disabled
Swappiness
Set low swappiness to avoid unnecessary paging. This only helps for machines with low levels of memory (say 4GB with 3GB allocated for Brighthouse). In /etc/rc.local put:
echo "7" > /proc/sys/vm/swappiness
File System
CacheFolder
Ensure that the CacheFolder is on a fast local disk.
Larger readahead
In /etc/rc.local put:
blockdev --setra 2048 /dev/sd <x>
Replace sd<x> with a proper device symbol, e.g. sdc, it should be the drive(s) on which datadir and/or CacheFolder resides.
Use XFS FileSystem for Data Directories
For XFS (may need to install kmod-xfs and xfsprogs):
mkfs.xfs -b size=4096 /dev/sdc1
In /etc/fstab put:
/dev/sdc1 /bha xfs noatime,nodiratime 1 2
NOTE: This is for data folders only. Linux boot partition can be ext3.
noatime, noadirtime
Use noatime, noadirtime options for mounting database and cache volumes (see below for details). Otherwise the system will update the access time for files and directories (which degrades performance).
deadline elevator
The default scheduler – CFQ – is 1% faster than elevator for a single user. However, in multi-user test with 4 users, elevator had 20% better performance.
In /etc/rc.local put:
echo "deadline" > /sys/block/sd<x>/queue/scheduler
Replace sd<x> with a proper device symbol, e.g. sdc, it should be the drive(s) on which datadir and/or CacheFolder resides
Increase ulimit to support large data volume or users
Ulimit determines the maximum number of files a user can have open. This will not change performance, but may avoid errors. Increase ulimit to unlimited or 32,768 since the default file limit is 1024. This is insufficient for large databases (lot’s of columns) or servers with multiple Infobright databases.
To view current settings, run command:
# ulimit -a
To set it to a new value for this running session, which takes effect immediately, run command:
# ulimit -n 8800
# ulimit -n -1 // for unlimited; recommended if server isn’t shared
Alternatively, if you want the changes to survive reboot, do the following:
- Exit all shell sessions for the user you want to change limits on.
- As root, edit the file /etc/security/limits.conf and add these two lines toward the end:
user1 soft nofile 16000
user1 hard nofile 20000
The two lines above changes the max number of file handles – nofile – to new settings.
- Save the file.
- Login as the user1 again. The new changes will be in effect.
Note on how to detect ulimit problem
If you are noticing crashes during multi-user use cases, please check the console log for the following error:
what(): FileSystem Error : Bad file descriptor
mysqld got signal 6;
To fix this error, increase ulimit (see above).

