MySQL Database Performance: Avoid this common mistake

One frequent topic of support request emails I receive is MySQL database performance. Clients complain about MySQL using too much server memory, too many MySQL slow queries, the famous Mysql server has gone away error and many other MySQL performance related issues. As such, I wanted to quickly share the solution to a common MySQL configuration […]

50 Top Server Monitoring & Application Monitoring Tools

Back in 2014, I compiled a list of top server and application performance monitoring solutions. Sharing that list publicly was a great way to gain feedback and recommendations on other tools available. In time that list grew from 20 to over 100 server monitoring and APM solutions! Because of its growing size, I’ve created below, a smaller, more […]

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

“MySQL server has gone away” error – Solution(s)

MySQL server has gone away error means that MySQL server (mysqld) timed out and closed the connection. By default, MySQL will close connections after eight hours (28800 seconds) if nothing happens. However, in some cases your web host, DBA or app developer may have decreased this timeout setting, discussed below. MySQL server has gone away, can be […]

Linux server performance: Is disk I/O slowing your application?

If your Linux server is bogged down, your first step is often to use the TOP command in terminal to check load averages and wisely so. However, there are times when TOP shows very high load averages even with low cpu ‘us’ (user) and high cpu ‘id’ (idle) percentages. This is the case in the video below, load averages […]

Memcache PHP Extensions for Memcached Caching Daemon

Memcached (Memcache Daemon) is a caching daemon designed especially for dynamic web applications to decrease database load by storing objects in memory. It is commonly used to speed up dynamic database-driven websites by caching data and objects in server memory to reduce the number of times the data source must be read. Memcached is free and open-source software, […]

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

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

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