Check the number of post revisions for that one 50K word article. While in Edit Page, go to Screen Options and be sure “Revisions” is ticked.
If you have more than one revision, WP is querying the database for that one large post and all revisions, and that will account for some – possibly all – of the CPU spike. The CPU spike is MySQL working on the query to display the article.
Delete some or all of the page revisions. See https://wordpress.org/plugins/revision-control/
And because you have a VPS, try https://github.com/major/MySQLTuner-perl to adjust RAM and cache and other parameters for MySQL. Those can make a huge difference in MySQL performance.
Related Posts:
- WordPress upload file size error even after raising php limits
- How to update custom fields using the wp_insert_post() function?
- Alter query on edit.php
- Conditionally loading JavaScript based on the Advanced Custom Fields in the post
- Permanently remove first image from posts
- Insert code when users come from an specific referer
- Disable External Pingacks on WordPress Posts and Only Allow ‘Self Pings’
- Go to / Scroll to Password Field on WordPress Posts After Submit With Message(s)
- New Plugin Review
- Use template for posts with a particular category grandparent
- How to migrate the posts from an old custom legacy blog to a new WordPress website?
- Styling images coming from another blog
- Exclude posts from homepage having a specified tag
- PHP 5.5, w3 Total Cache, and opcache [closed]
- “before delete post” action fire when the post is updated?
- Set WP_MAX_MEMORY_LIMIT higher than PHP.ini memory_limit
- Automatically add custom CSS to new posts using a category template
- Query all posts of a custom taxonomy term
- Retrieving Author ID in wp-admin area
- Checking for new message using AJAX and PHP. Server overload?
- Displaying the last post on static homepage
- Can’t get wp_insert_post to work
- Why not yield/iterable in posts interface?
- Best practice for migration friendly images in posts/pages?
- 200 Rewrite blog post links
- WordPress Ignoring .user.ini
- adding custom user input fields in WordPress admin dashboard gives error The link you followed has expired. Please try again
- Automatically create child pages and grandchild pages when saving a (parent) page
- wp_trim_words() does not work with my code Am I doing any mistake in my code?
- WordPress Script stops suddenly
- Second transition_post_status hook fired instead of the first
- How can I add extra word in permalink when someone click download button?
- Custom posts in different columns style
- 404 error when I acess the second page of post-type
- Theme requires allow_url_include = on in php.ini
- Which PHP page is the Default Posts Page
- retrieve post data and insert it in seperate static html page without WordPress
- Why am I getting a different filename? And how does WordPress load singular.php for both Page & Post? (Fresh WordPress installation)
- Returning data instead of echoing/printing
- Display related posts without a plugin
- Counting Search results, and displaying the offset per page
- Function works everywhere, how to keep it to execute when creating a new post
- Copy taxonomy terms from one post to another programmatically
- What file have I to create in my custom WordPress theme to show all the post belonging to a specific category?
- How to catch wordpress post ID when it’s published
- WordPress query undefined offset in loop
- Find Site ID From WP_Post
- Reading settings in the home page precisely home.php
- PHP E_WARNING being shown despite php.ini [closed]
- get post id from wp_insert_post for get_template_part
- Displaying list of posts in category page
- How can I get “Previous” and “Next” to show in the navigation besides the links?
- WP_Query() load selected post
- how to edit a specific post slug using a php code?
- How to pick “full/thumbnail” images in the loop?
- Saving a post ID to use in a form elsewhere on website
- Prevent post from being published and show error
- remove specificly the last tag in all posts
- Pagination at category doesnt work with same name of page
- Add posts to custom table in database instead of wp_posts
- How to show categories and date on posts
- How do you measure the PHP generation time of your WordPress pages?
- Query on a repeater date (acf)
- Time Stamp In A WordPress Post Title That Does Not Keep Refreshing
- Trying to show the category of a post in the post display
- Split post or page content in two or more columns
- Check the database for a postmeta field
- Send POST request to Flask app from functions.php file
- Change upload URL by mime type
- How to pull date/time in french format for wordpress post?
- Send Notification after post published was working but stopped after the last WP update
- How to display last whole post on the homepage
- How to insert text into post based on category – via single.php file
- WordPress Single Post Pagination Numbered and Navigational
- Getting page / post URL on publish and / or update
- Let user select the number of posts shown per page jquery error
- Serve cookie free URLs in WordPress without using a CDN
- Add wp posts to cutom masonry grid
- Generate random access token to a post page
- Displaying 3 Category Posts differently
- (Xdebug Profiler) Why are there two cachegrind files generated for one page?
- Only display notification on single post
- Get posts associated with media attachment
- ‘posts_per_page’ in costum page type
- Passed variable gets undefined variable error on insert on next page
- Limit Search Queries per IP per Day
- Weird Behaviour: Not all WordPress Posts appearing
- Dynamic form variables for post meta
- List of child pages fetch next results at link click
- Automatically create a loop for post ID
- Why does WP_Query show only the same post even with different categories and endwhile?
- Auto create description in post
- Different image and background color depending on page type
- HOW TO Insert Existing PHP Code to WOrdPress
- How to modify this function to exclude also the post belonging to a specific category?
- How to list all the posts in a personalized page? WordPress
- Set post to draft if matching word is found in the post
- Disable single posts, but keep archive
- WooCommerce: write featured image dimensions to custom fields in product’
- transition_post_status hook, works – but not if the post is new