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.