Best WordPress Cache Plugin 2019

Update January 20th, 2019: Hyper Cache is now being actively developed again. Thus, it has returned as my #1 go-to WP Cache plugin. Changes marked in green.  This blog post was originally posted just over 4 years ago. WordPress Cache plugin options have changed a lot since. As such, I’m updating this list of 5 best WordPress plugins. Are you […]

Could not increase number of max_open_files to more than… (Solution)

A quick solution to the warning “Could not increase number of max_open_files to more than” when starting MySQL or MariaDB. For some background read How MySQL Opens and Closes Tables. Here’s an excerpt: “The table_open_cache and max_connections system variables affect the maximum number of files the server keeps open. If you increase one or both of these […]

Tuning MySQL: my.cnf, avoid this common pitfall!

Caution: Don’t overwrite my.cnf all at once. Backup data and config, make one or two changes per restart, test extensively. It took me some time to decide the title for this article. MariaDB has been fast replacing MySQL as a growing number of Linux distributions now default to MariaDB over MySQL. MariaDB is an enhanced drop-in replacement […]

Analyze Your Website’s TTFB (Time to First Byte)

Have you improved load time of your websites and web applications recently? Or, maybe your web store or other web app is now slower to respond as you’ve added more features or due to data growth? The time it takes for your web applications to respond when users visit, is more important than ever before! […]

Measure Linux web server memory usage correctly

Important update: This article was originally posted back in 2014. However, as I later posted in 2017 in the blog post Does your Linux server need a RAM upgrade? Lets check with free, top, vmstat and sar …there was a Linux kernel change to address this in 2016. Hopefully, this change will motivate New Relic and others to follow […]

MySQL Query Cache for Performance, Avoid This When Tuning

Update: MySQL query cache is deprecated as of MySQL 5.7.20, and is removed in MySQL 8.0. – mysql.com One of the most misconfigured MySQL performance features, is MySQL query_cache_size. This post references a web server with 32 gigabytes of RAM where the existing config had MySQL’s query cache size set incorrectly to 4 gigabytes. The thought behind it seemed […]

Replacing Cloudflare with CSF Firewall

November 5th 2018 update: I’ve updated this article (the install URL and other minor fixes/improvements). I replaced Cloudflare and thus also Cloudflare Argo with KeyCDN + local firewall and server hardening for this blog as of June 2018. However, do support clients who use Cloudflare and still highly recommend it.  2017 update: With the recent Cloudflare “Cloudbleed” data leak. […]

htop: Here’s how to customize it

htop is an interactive system-monitor, but also a process-viewer, process-manager, strace tool and more. Sysadmins may opt to use htop in cases where Unix top does not provide enough information about system processes. htop uses a cursor-controlled interface for sending signals to processes. Just one example where this comes in handy: you don’t have to type […]

How to Kill Inactive SSH Sessions

So, you’ve been disconnected from your server a couple of times which resulted in inactive ssh sessions. You know this because when you use the “w” command, you see something like the following… 22:47:28 up 315 days, 21:09, 2 users, load average: 9.04, 8.17, 7.30 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 ipxxx-xxx-xxx-xxx 23:54 […]

MySQL Performance: Stop hoarding. Drop unused MySQL databases

Last year, I was assisting a new client in addressing MySQL performance issues. There were several areas where MySQL performance issues were addressed. One issue overlooked for several years prior to our communications, was that of keeping around unused databases. Over 15GB of unused MySQL data – a mix of MyISAM and Innodb tables – […]