
Architecture types and performances
MariaDB is able to run on multiple kinds of operating systems:
- Microsoft Windows x86 and x64
- Oracle Solaris 10 and 11 x64
- Linux x86 and x64
Tip
MariaDB has a special thread-pool implementation that allows it to perform much better than MySQL under heavy loads (lots of connections).
In this book, every exercise will be on Debian GNU/Linux Wheezy amd64 version. Of course, all MariaDB tuning will be portable to any operating system, so you won't be lost. For the operating system performance tuning, we'll focus on Linux amd64 (Debian GNU/Linux), as it's free and open source, and of course MariaDB works very well on it.
To easily test the following parameters, you can use the following Vagrant file that provides you with the necessary virtual machine with MariaDB installed. The requirements are as follows:
- Four cores
- 512 MB of RAM
- 8 GB of disk space
Here is the associated Vagrant file:
# -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! # VAGRANTFILE_API_VERSION = "2" # Insert all your Vms with configs boxes = [ { :name => :mariadb }, ] $install = <<INSTALL aptitude update DEBIAN_FRONTEND=noninteractive aptitude -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install python-software-properties apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db add-apt-repository 'deb http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.0/debian wheezy main' aptitude update DEBIAN_FRONTEND=noninteractive aptitude -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install mariadb-server INSTALL Vagrant::Config.run do |config| # Default box OS vm_default = proc do |boxcnf| boxcnf.vm.box = "deimosfr/debian-wheezy" end # For each VM, add a public and private card. Then install Ceph boxes.each do |opts| vm_default.call(config) config.vm.define opts[:name] do |config| config.vm.customize ["modifyvm", :id, "--cpus", 4] config.vm.host_name = "%s.vm" % opts[:name].to_s file_to_disk = 'ext4-journal_' + opts[:name].to_s + '.vdi' config.vm.customize ['createhd', '--filename', file_to_disk, '--size', 250] config.vm.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', file_to_disk] config.vm.provision "shell", inline: $install end end end