Over the past two weeks we have deployed a range of performance based system tweaks as well as two new opt-in features that can be enabled and disabled per Hypernode.

Blocking FTP access for when only SFTP is used

For security reasons it might be desirable to block FTP access completely if only SFTP is used. By default FTP is already heavily firewalled on Hypernode because it is an unsafe protocol. But in case you do need to whitelist a range of addresses to which you only want to expose SFTP but not FTP, you can now request support to completely block access to FTP.

Opt-in use_index_extensions and Multi-Range Read Optimization

By default we have use_index_extensions set to off and the optimizer_switch set to mrr=off because of an issue in PHP 5.6 related to Multi-Range Read Optimization that could impact performance. But in some cases disabling these features actually does more harm than good. So for those cases we have now made it possible to opt-in to setting use_index_extensions to on and re-enable mrr. If you’re heaving trouble with big tables in Magento it might be worth testing out if enabling this feature makes a difference for you.

You request support to enable this feature for you. To check if index extensions are enabled already run select @@optimizer_switch; as a MySQL query and look for use_index_extensions.

mysql> select @@optimizer_switch;
+------------------------------------------+
| @@optimizer_switch                                                                                                                                                                                                                                                                                                                                 |
+------------------------------------------+
| ...,mrr=off,...,use_index_extensions=off |
+------------------------------------------+
1 row in set (0.00 sec)

Various system tweaks for performance

In this release we have also changed tweaked some other global system settings to streamline resource usage a bit more for our larger plans. Bigger plans with a lot of memory now have a slightly larger fastcgi_buffer_size and fastcgi_buffers for buffering responses from the FastCGI server. Additionally we have increased the interned_strings_buffer size for opcache for large nodes and the realpath_cache_size for caching filesystem paths as well.

Added escape=json to the NGINX log format

The NGINX log format will now escape json. This will make the hypernode-parse-nginx-log or pnl commands for debugging handle logs better that include user agents that are not valid json.

$ grep log_format /etc/nginx/nginx.conf 
    log_format hypernode escape=json '{'

Additional compression tools

We have installed pigz for multi core zipping and pbzip2 for multicore bzip2 compression.

Fixed permissions PHP-FPM logfile

Before we upgraded to Xenial it was possible to read the PHP-FPM log file in /var/log/php-fpm/php-fpm.log as the app user. On 16.04 this output was now written to /var/log/php<version>-fpm.log instead where it was not readable. This has now been fixed and the the /var/log/php-fpm/php-fpm.log file can now be inspected once again.

Same PHP version in Docker for CLI and FPM

It was reported that the hypernode-docker did not come with the same PHP version for CLI as FPM by default. The CLI version would be set to 7.1 and the FPM daemon would run 7.0 out of the box. This was fixed in the release-5313 image where now both CLI and FPM will run 7.1 by default.

Additional OSX specific documentation for hypernode-docker

Big thanks to Fabio Ros for contributing additional documentation for hypernode-docker with an example of how to work out certain known issues on Mac. These additional docs can now be read on the documentation site for Hypernode community projects or on github.