So the issue was actually a DDOS attack on our site. I used urlsnarf to see what requests were being placed and there were basically hundreds of POST request from about 20-30 or so IP addresses. Seems quite small scale for what I understood is a typical DDOS attack. It also explains why it took a few days before the site ground to a halt. We have quite a few cores running on this host and it was maxing out 7 of them. I think in a larger scale attack it would have taken out the site a lot faster… We’re behind cloudflare so maybe it was setup at that level to avoid their automatic detection…
As soon as I turned on the ‘We’re under attack mode’ the POST requests stopped coming in and the server returned to normal.
Now I just need to figure out an early detection mechanism and automatic switch of the cloudflare under attack functionality.
Related Posts:
- How can I find the source of slow queries in WordPress?
- WordPress MySQL & PHP Performance
- Is it useful to turn on MySQL query cache for performance
- Universal problem: first request after ~25 second inactivity always slower (~1 second) than subsequent requests (~1/10sec)
- Concurrent / simultaneous MySQL connections
- Slow Mysql Queries
- Best settings for MySQL to speed up site? [closed]
- How do I join a $wpdb query with user meta using default value if not exist?
- Alter wp_post table vs. post_meta performance/speed
- Slow wp-admin due to “SELECT DISTINCT post_mime_type FROM wp_posts WHERE post_type = ‘attachment'”
- WordPress plugin overloading with tmp tables
- How to simulate web traffic to test performance of a website
- Regular XML-RPC timeouts
- Cannot add or update a child row: a foreign key constraint fails
- Cannot delete or update a parent row: a foreign key constraint fails
- ERROR 2003 (HY000): Can’t connect to MySQL server on localhost (10061)
- Rename a column in MySQL
- Not unique table/alias
- Install mysql-python (Windows)
- #1055 – Expression of SELECT list is not in GROUP BY clause and contains nonaggregated column this is incompatible with sql_mode=only_full_group_by
- Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
- Disable ONLY_FULL_GROUP_BY
- MySQL WHERE IN ()
- SELECT list is not in GROUP BY clause and contains nonaggregated column …. incompatible with sql_mode=only_full_group_by
- Host ‘xxx.xx.xxx.xxx’ is not allowed to connect to this MySQL server
- difference between primary key and unique key
- How to export a mysql database using Command Prompt?
- MySQL AS keyword
- Should I use the datetime or timestamp data type in MySQL?
- MySQL Error #1133 – Can’t find any matching row in the user table
- How can I prevent SQL injection in PHP?
- Best way to store an array in MySQL database?
- MySQL date formats – difficulty Inserting a date
- How to grant remote access permissions to mysql server for user?
- How to check if mysql database exists
- #1062 – Duplicate entry for key ‘PRIMARY’
- How can I convert a string to a float in mysql?
- Is there a Profiler equivalent for MySql?
- How to use greater than operator with date?
- How to replace the domain name in a WordPress database?
- Mysqldump add drop table?
- Optimize WordPress Query that take 5 seconds to execute
- MySQL Replication Latency Issues in wp-admin pages
- Increment value (value = value+1) of $wpdb->update
- #1115 – Unknown character set: ‘utf8mb4’
- How can I debug my database connection for unit testing?
- Extending the database
- SQL query not working in alphabetical post title/content search
- Changing BIGINT to INT
- Importing MariaDB into Mysql in WordPress
- How to get a Google maps SQL->XML->map marker tutorial to work in WordPress
- Converting mysql to $wpdb
- Update a WordPress post or page takes 60+ seconds
- Looking for most performant way to execute several similar WP queries within shortcodes
- add_post_meta does not respect the content
- Modify MySQL Query Based on Dropdown Menu
- Select multiple wp_postmeta keys with single select
- Backing up and restoring multiple sites efficiently
- How to prevent/delay MySQL connections when an object cache is used?
- Many slow queries post_type = ‘attachment’;
- Are these WordPress tables safe to add indexes to?
- SQL syntax error when getting data for a url
- Import CSV to MySQL, with custom registration field information
- Locally restoring a ManageWP full site backup
- WordPress doesn’t save changes some times
- Match tag names with form titles
- Update Custom Post Type Taxonomies with SQL
- Getting Error Trying to Create Table
- Custom SELECT Query not returning the_title and the_permalink
- Will reducing mysql permissions hinder WP function? [duplicate]
- Php Mysql Terms
- Export SQL query based on custom field?
- Lock wait timeout exceeded; try restarting transaction
- How to install WordPress from hosting service with mysql database from Compute Engine GCP?
- 504 Gateway Time-out after custom plugin inserts data into mysql database
- WordPress fails to install with “Can’t Select Database” Error (WAMPServer)
- What is this? MySQL array?
- What is the MYSQL Query to bulk update the canonical URL of specific categories of posts in WordPress?
- Why is this function so slow?
- Why should be SQL keywords, like CREATE TABLE and UPDATE, must be uppercase in WordPress?
- Add row to SQL array
- SELECT statement wrong?
- $wpdb->get_var not returning count
- mysql query on wp_user and user_meta problem
- $wpdb post type and term query only works when there are no dashes or spaces in the term slug and title
- Custom user query – orderby meta_key (that may not exist)
- Use custom query if main search query returns zero results in wordpress
- get_results() query not working only when entering strings
- Geographical proximity query using post_meta
- Can I use mysql queries to replace query_posts()?
- Add value to array in database
- How to Import Multiple Values in custom field
- Making CURDATE() recognize current_time()
- How should I troubleshoot a database serialization issue with a WordPress migration
- How WP decide to show or not to show in admin panel the pop-up window with hint? Need a fix
- SQL – Pull products of particular category from a remote WordPress woocommerce db
- Efficiently loop over huge number of posts
- Using queries in and i see 7000+queries?
- How can I show mysql locks?
- $wpdb->get_results() query empty, but same query in phpmyadmin has results