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 […]

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 […]

Disable cron emails (solution)

Cron is a daemon that executes scheduled commands. More specifically, the software utility cron is a time-based job scheduler for Unix-like operating systems like Linux. You can use Cron to set up jobs to run periodically at fixed times, dates, or intervals. Cron is an extremely powerful tool because just about anything you can type from […]

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 […]

Linux Performance: Almost Always Add Swap. Part 2: ZRAM

Previously, we looked at how swap space, particularly swapping, can severely slow down Linux performance. We then tweaked Linux kernel parameters to better use server memory and avoid heavy swapping. That article created some debate and good arguments for and against swap space. For example, if you have more than enough memory available, wouldn’t it […]

Nginx tuning tips: HTTPS/TLS – Turbocharge TTFB/Latency

Are you looking to optimize the performance of Nginx? One way to do so is by tuning Nginx, to support the latest TLS (Transport Layer Security) protocols (TLS 1.2 & TLS 1.3). In this article, we’ll explore how optimizing Nginx’s TLS and SSL config can reduce Time To First Byte (TTFB) latency and turbocharge website […]

Strip Down Apache to Improve Performance & Memory Efficiency

Can you believe that it’s been more than a decade since the release of Apache 2.4?! If you haven’t replaced Apache with Nginx, then here’s a quick guide for boosting Apache’s performance using a method that’s often overlooked. Now, before we get into that, please note that I’m not claiming that Apache is faster than […]