What is iowait and how does it affect Linux performance?

I/O wait or iowait, wait, wa, %iowait, or wait% is often displayed by command-line Linux system monitoring tools such as top, sar, atop, and others. On its own, it’s one of many performance stats that provide us insight into Linux system performance. I/O wait came up in a recent discussion with a new client. During our […]

Free vs. Available Memory in Linux

At times we will need to know precisely how our Linux systems use memory. This article will examine how to use the free command-line utility to view memory usage on a Linux system. In doing so, we will clearly define the difference between free vs. available memory on Linux systems.   Free vs. Available memory […]

Stop trying to overclock the Raspberry Pi 3 B+

It’s been a while since I’ve written any Raspberry Pi-related posts. Primarily because I’ve been using used $200 to $300 Dell Optiplex Micro computers off eBay, they cost more than the same or less than a Raspberry Pi 3 B+ but can be custom configured with up to 8GB (3050 model), 16GB or 20GB of fast […]

PHP Performance: Additional CPU cores vs Faster CPU cores

Some time ago, I received an email from a client experiencing slow performance issues with a LEMP (Linux, Nginx, MySQL, and PHP webserver). During a full audit, I found that the server’s load average was pretty low (see above screenshot). However, the website was indeed very slow. There were some misconfigurations, but one of the […]

Improving OpenVPN performance and throughput

OpenVPN, Wireguard, L2TP/IPSec, SSTP, IKEv2, PPTP, or others. If you had the luxury of choosing, which VPN protocols would you use? Therein lies my problem. In my current use case, I must find a way to improve OpenVPN performance and throughput. You may have been following my Linux home lab build. One of the most […]

PHP 8 Compatibility Check and Performance Tips.

PHP 7 was first released back on 03 Dec 2015. Yes, it’s been around a while! The PHP team encouraged upgrading to PHP 7, hailing its improvements such as being twice as fast, consistent 64-bit support, removing old and unsupported SAPIs and extensions, and improved fatal error resistance, to name a few. A few years […]

Linux top: Here’s how to customize it

The top command – referred to below as Linux top – is a command on Unix and Unix-like systems such as Linux, which provides a dynamic real-time overview of a running system. It can display system summary information and a list of processes or threads currently managed by the Linux kernel. The types of system […]

PHP-FPM tuning: Using ‘pm static’ for max performance

Let’s take a very quick look at how best to set up PHP-FPM for high throughput, low latency, and more stable CPU and memory use. By default, most setups have PHP-FPM’s PM (process manager) string set to dynamic and there’s also the common advice to use ondemand if you suffer from available memory issues. However, let’s […]

Raspberry Pi Performance: Add ZRAM and these Kernel Parameters

Previously, I published a Pinebook Pro review article on this blog. Similar to the Pinebook Pro, the Raspberry Pi and, more recently, the Raspberry Pi 4 are also ARM-based. With good results, I’ve applied some of the optimizations mentioned in that previous article to the Raspberry Pi 4. I wanted to share these tweaks and […]

Are you measuring Linux web server memory usage correctly?

This article was first published in 2014. Afterwhich, there was a welcomed change to the Linux kernel in 2016; as mentioned in the 2017 article: Does your Linux server need a RAM upgrade? Let’s check with free, top, vmstat and sar. As outlined here, memory is now marked as available by the Linux kernel: “Estimation of […]