Visualizing sar data with kSar

Published: September 13, 2018


sar is a useful tool that is included in the sysstat package, a set of performance monitoring utilities that is pre-installed on many Linux distros.

Running the sar command prints the gathered data to the terminal in columns.

$ sar 2 10
Linux 4.14.62-v7+ (pluto) 	09/13/2018 	_armv7l_	(4 CPU)

08:48:05 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
08:48:07 PM     all      0.13      0.00      0.00      0.00      0.00     99.87
08:48:09 PM     all      0.00      0.00      0.13      0.13      0.00     99.75
08:48:11 PM     all      0.38      0.00      0.00      0.00      0.00     99.62
08:48:13 PM     all      0.13      0.00      0.13      0.00      0.00     99.75
08:48:15 PM     all      0.13      0.00      0.13      0.00      0.00     99.75
08:48:17 PM     all      0.00      0.00      0.25      0.00      0.00     99.75
08:48:19 PM     all      0.00      0.00      0.38      0.00      0.00     99.62
08:48:21 PM     all      0.00      0.00      0.13      0.00      0.00     99.87
08:48:23 PM     all      0.00      0.00      0.38      0.00      0.00     99.62
08:48:25 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.08      0.00      0.15      0.01      0.00     99.76

This is useful in some scenarios such as checking CPU usage at a specific period of time. However, in other use cases such as reviewing trends over a longer period of time, this format is not particularly user friendly.

I spent some time recently reviewing the available options for visualizing sar data. While kSar doesn’t offer the most beautiful interface1, it’s easy to install and seems to be the best option available

Here I’ll cover how kSar can be used to visualize sar data.

Reindexing Customer Grid Runs out of Memory in Magento 2

Published: September 10, 2018


The 2.1.X release line of Magento current contains an issue where, with enough customers, reindexing the customer grid will fail with an out of memory fatal error

$ bin/magento indexer:reindex customer_grid
PHP Fatal error:  Allowed memory size of 1073741824 bytes exhausted (tried to allocate 280224918230723 bytes) in /var/www/html/vendor/magento/zendframework1/library/Zend/Db/Statement/Pdo.php on line 228

The issue is fixed in the in the 2.2.X release line and can be fixed in 2.1.X by applying PATCH_MDVA-4538.

Replication Lag Race Conditions in Magento

Published: September 7, 2018

One of my favorite class of bugs are race conditions caused by replication lag (yes, I’m a masochist). These typically play out something like this…

I’ve run into a number of these both in core Magento as well as in 3rd party extensions. In this post I’ll cover a couple of my favorites…

Limiting Access To Specific Tables in MySQL - Cheetsheat

Published: September 6, 2018


One of the core principles in the infosec field is the principle of least privilege. The idea is to limit permitted access by systems or processes as much as humanly possible. Applied to MySQL, in some circumstances this could mean only allowing access to specific tables for some user. This is a quick cheatsheet for working with table-level access in MySQL.

Magento's Problematic (lack of) Release Line Strategy

Published: July 12, 2018


Magento currently maintains and accepts pull requests to 3 separate branches on GitHub.

  1. 2.1-develop - Code targeting this branch will go into a 2.1.X release
  2. 2.2-develop - Code targeting this branch will go into a 2.2.X release
  3. 2.3-develop - Code targeting this branch will go into a 2.3.X release

While the notion of allowing the community to contribute to each release line sounds good on paper, in practice it doesn’t work out so well in my experience.

In this post I’ll outline the issues with this process as I see them.

Magento's Not Sane AdminNotification Module

Published: July 5, 2018


For my past 4 and a half years working with Magento, I’ve gotten very used to seeing messages like this when I log into the Magento admin panel.

Example admin notification

I typically close them out and proceed about my business. I had never quite understood how these notifications work until recently. Here I’ll document the not quite sane mechanics behind Magento’s admin notification system.