I am pleased to announce Sol: our 6th hosting platform release since 2002. Sol incorporates the stability engineered on Helios, and improves upon performance by partitioning hosting servers into smaller, agile containers through virtualization while maintaining rivaling bare-metal performance with less than 5% decrease in throughput. Sol takes less than 20 seconds to boot up, and is stuffed with great features including support for PHP 5.6, Rails 4, Ruby 2.2, Django 1.7, and Python 3.4.
Sol will go through an open beta program over the next week to work out and last minute issues. Open a ticket if you would like migration. The process takes 24 hours, is fully automated, and will create zero downtime.
Ruby, Python, and Node.js Support
Overall, Sol provides clients with more options and more value than ever before. Beyond Rails 4 and Ruby 2.2, Sol includes support via RVM for multiple concurrent versions allowing you to run Rails 2 through Rails 4.0 on Ruby 1.8.7 all the way up to Ruby 2.2. Use
rvm list to list available Rubies,
rvm use to use a particular Ruby, and
passenger-config --ruby-command to configure Passenger to launch your process using the specified Ruby. More details are available without the Resource Center. Passenger supports launching of Node.js and Python (Django) apps by specifying, within a .htaccess file,
PassengerEnabled on and
PassengerNodejs <interpreter> or
PassengerPython <interpreter>. We’re also working on adding multiple Python version support via pyenv. Multiple Python versions are there, but no documentation as of yet. Rumor has it there’s also multiple PHP version support via phpbrew, but PHP is the last offender to leave a backwards-incompatible, scorched earth policy like Ruby and Python.
CentOS 7 Base Filesystem
RedHat did a thing right by patterning its seventh major Enterprise Linux release off Fedora 19, released July 2013, by delivering recent software to Enterprise markets. Previous RHELs based on much older Fedora releases leaving us and likewise you, our clients, behind in yesterday’s greatest instead of today’s greatest software including systemd. It is a gorgeous service manager written in C, instead of bash shell scripts like its SYSV predecessor, and fast. Really, really fast. From boot, it takes just 20 seconds to boot of which 7 seconds are wasted confirming and loading the Linux kernel. Actually, the system boots up in 13.26 seconds. systemd also constantly monitors and restarts processes that fail, so it can restart a downed mail server or web server instantly instead of waiting for our 2-minute periodic checks to kick in and restart a downed process.
Helios is a massive server. A true gargantuan hosting over 1,000 domains. It’s strong, and over the last year only had 1 isolated outage resulting in 99.999% uptime. Not bad, but that one time Helios did go down, it took some time to recover. Take Helios, send it to fat camp, and you get Sol. Instead of filling out a modern server with clients, and creating a bloated web server, database server, and mail server handling enormous configuration files – HTTP server configuration is 800 KB! (each HTTP process is 300 MB) – keep it smaller by partitioning a hosting server into smaller units. We lose some storage by duplicating filesystems among multiple units, but also create smaller HTTP configuration and likewise a nimble server. Beyond basic virtualization through KVM, Sol uses LVM for its filesystem mapping that allows speed close to bare metal. Normal reads are 340 MB/s. Virtualized with LVM it’s 334 MB/s. Less than 2% loss in performance. Not bad!
Sol, and its cohorts, start with 16 GB memory, but can dynamically request up to 38 GB from its hypervisor should memory come under pressure via a balloon driver and release it when it’s done. If a server comes under resource pressure there is less chance of a hiccup, because now resources are shared on-demand between VMs. Even networking is virtualized through SR-IOV. A single NIC appears as 7 virtual NICs and again results in some marginal throughput losses. Much better than a software-emulated NIC or bridging that would otherwise be necessary and slow.
- We also include Go and PHP 5.6 now. APC is gone. All hail OPCache! This should clear up some blank page issues we have seen in the past with certain PHP applications.
- Maildrop filters now support \r\n EOL terminations for Windows users. Before, \r\n would throw a parser error.
- Switched from our in-house monitoring scripts to Monit for performance and flexibility. There may be some service bumps in the road over the next couple weeks as this transition completes.
- Percona MySQL is out. MariaDB is in. Percona was significantly more stable than MySQL, but still had some stability issues in particular scenarios. MariaDB is based off MariaDB 5.5 (MySQL rebase) with backports from MariaDB 5.6 in addition to code from MariaDB’s community of programmers.
- Namebased shared hosting now rotates from a pool of IP addresses to reduce the impact of a null-route in the extraordinary event that a namebased account receives a denial of service attack.
- PHP 5.6’s native OPcache module obsoletes APC for caching, but lacks userland caching via apc_add()/apc_fetch(). Userland caching spun-off as APCu, which is installed on Sol (thanks Brian Scholer!)
- Primary user can su to other users now without password prompts
- UTF-8 replaces latin1 as default charset for MySQL databases
Owner & Platform Architect