WordPress Developer Ukraine, Kyiv
MySQL 8.4 LTS and 9.x: What WordPress Developers Need to Know

MySQL 8.4 LTS and 9.x: What WordPress Developers Need to Know

MySQL 8.4 LTS and 9.x: what WordPress developers need to know MySQL changed its release model: since 2023 there are Long-Term Support releases (8.4, released in April 2024) for production, and Innovation releases (9.0, 9.1 and so on, roughly every quarter) with new features, each supported only until the next one. At the same time…
MySQL 9.0 Features: VECTOR Type and JavaScript Stored Programs

MySQL 9.0 Features: VECTOR Type and JavaScript Stored Programs

MySQL 8.4 LTS and 9.x for WordPress hosts: what changes, what to wait for MySQL changed its release model in 2024: Long-Term Support releases (8.4, released April 2024) for production, and Innovation releases (9.0, 9.1, …) every few months with new features and a short support window. MySQL 8.0 reached its end of life in…
MySQL Replication Monitoring and Failover with GTID

MySQL Replication Monitoring and Failover with GTID

MySQL replication with GTID for WordPress: set up, monitor, fail over A replica of the WordPress database gives a second copy that is seconds behind, a place to run heavy reports and backups without touching the primary, and a server to switch to when the primary fails. GTID-based replication (global transaction identifiers) makes the last…
Linux cgroups v2 and Systemd Slices for PHP-FPM Resource Control

Linux cgroups v2 and Systemd Slices for PHP-FPM Resource Control

Limit PHP-FPM, cron and imports with systemd slices and cgroups v2 On a server that runs several WordPress sites, one site’s runaway import or a crawler storm on another can take all CPU and memory, and every site becomes slow. Linux cgroups v2 can cap a group of processes, and systemd exposes them through simple…
Linux OOM Killer and Swap Tuning for WordPress Servers

Linux OOM Killer and Swap Tuning for WordPress Servers

The Linux OOM killer and swap on a WordPress server When a Linux server runs out of memory, the kernel’s out-of-memory killer picks a process and kills it. On a WordPress server, the process with the most memory is usually MySQL, so the site goes down with “Error establishing a database connection”, although the real…
MySQL InnoDB Buffer Pool Tuning and Monitoring

MySQL InnoDB Buffer Pool Tuning and Monitoring

InnoDB buffer pool for WordPress: size it, then check that it works The InnoDB buffer pool is MySQL’s memory cache for table and index pages. When the working set of a WordPress database (the posts, the meta, the options, the WooCommerce lookup tables that are actually read) fits into it, queries are served from RAM.…
MySQL Connection Pooling with ProxySQL for WordPress

MySQL Connection Pooling with ProxySQL for WordPress

“Too many connections”: PHP-FPM, MySQL and when ProxySQL helps PHP has no connection pool in the usual sense: every request that WordPress handles opens its own MySQL connection and closes it at the end. Under load, the number of connections equals the number of busy PHP-FPM workers, from every web server. When that number exceeds…