Question

Plesk - Really Slow and not responsive

Hi, I’ve installed Plesk with the marketplace image on a droplet with Basic / 1 GB / 1 vCPUs to set up a simple ecommerce. I provide only the server management, the ecommerce developer is an external party.

After the first boot I’ve updated every packet and plesk installation, but I noticed that the response of the machine was really slow.

After some development, I decided to upgrade the machine to a Basic / 2 GB / 2 vCPUs hoping to solve the issues with slow respose.

The situation seemed to improve, but during a password change, the site started to get slow until an error 500 was thrown, and soon after also Plesk was not reachable. Restarting the machine not solved the issue.

I’ve runned a plesk repair all and everything seemed to be solved, but the site still responds in 1.3/1.9 seconds, and we had to disable ModSecurity because made the site thrown error 500.

The developer claims that the site runs 50% faster in a vanilla installation of WP, and that when working on it he often gets the 500 error.

I’m not an expert in the management of WP sites, because of this we choose Plesk to simplify some aspects, but I’m not sure of the choice anymore.

Do you have any idea about solve and optimize these issues?

Thank you

Show comments

Submit an answer


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

alexdo
Site Moderator
Site Moderator badge
May 12, 2023

Heya,

I would like to add the following recommendations.

Step 1: Since you’ve already upgraded your droplet to 2GB / 2 vCPUs, make sure your php.ini memory_limit is also increased. If you’re not sure about the value, try setting memory_limit to 256M or higher.

Step 2: Optimize database tables in Plesk. This can be done by navigating to Websites & Domains > Databases > Database name > Optimize Tables.

Step 3: Check for slow queries in your MySQL logs. This can help identify if there’s an issue in your application causing slow performance or if the database may need tuning. A useful command for this is MATI_IMPORT_CSV_AccuracyChecker.sample;

Step 4: Install a caching plugin for WordPress to enhance performance. Some popular options are WP Rocket, W3 Total Cache, or WP Super Cache. These plugins can significantly improve the site’s loading speed.

Step 5: Enable gzip compression in your Plesk-based droplet to reduce the size of data being transferred over the network.

Note: Since you’ve disabled ModSecurity, ensure that you monitor your logs for any suspicious activity and consider using a Web Application Firewall (WAF) for added security.

I hope these steps help you in optimizing your droplet and resolving the slow response issues. For more on managing WordPress on DigitalOcean, check out the WordPress tutorials.

Hope that this helps!

KFSys
Site Moderator
Site Moderator badge
May 11, 2023

Hey there,

You’ll need to look into both Server and Website’s Optimization.

Let’s start with Server Optimization.

When looking at Server/Droplet Optimization, there are a few necessary services/packages that are universal.

  • The first one would be Server-side caching. Server cache is an umbrella term covering a number of different types of caching. This includes Content Delivery Network (CDN) caching, object caching, and opcode caching. Depending on what you want to achieve you might need one or the other. Usually, though, you can have all 3 types of caching as it shouldn’t interfere with your Website/App. I won’t go into more details about what each caching does as this post will become 3 pages long. There are multiple documents providing services/packages for each of the server-type caching.

  • Next would be using PHP-FPM (if your Website is using PHP of course). PHP-FPM is an efficient method on how to minimize the memory consumption and rise the performance for the Websites with heavy traffic. It is significantly faster than traditional CGI-based methods in multi-user PHP environments.

  • Another solution would be Database Caching. A database cache supplements your primary database by removing unnecessary pressure on it, typically in the form of frequently accessed read data. The cache itself can live in a number of areas including your database, application or as a standalone layer. Usually, for this kind of caching is being used Redis.

  • Apache NPM modules. If you are using Apache, you are using one of three NPM modules. Most certainly if you haven’t configured anything on it and have used the default configuration, you are using NPM_Prefrok which is the most outdated one and thus the slower. I’ll recommend using one of the other two - NPM_Worker and NPM_Event depending on your situation. Again, I would urge you to read more about these 3 and what is applied in which case.

  • Apache Workers. Basically, the Apache workers are equivalent to a room full of seats. These seats are the projection to your website. When someone opens your website, it’s like one person going to this room and sitting on one of the chairs. When the limit is reached, in order for a person to load your website, another one needs to close it. So basically, I’ll suggest increasing that value as well.

Those were the basic optimizations on a server level, let’s start with your Website/App

If you are using a CMS like WordPress, Magento, Joomla, Opencart or anything of the same matter, there will be plugins/addons. These addons can be very powerful if used correctly. The most helpful plugins are:

  • Caching Plugins
  • Image Optimization Plugins
  • Plugins that reduce redirections/requests
  • Plugins that reduce the size of JS and CSS files.
  • More often than not, there are a lot of JS and CSS files that are not being used, removing those should work as well

If you are not using a CMS, you’ll need to try and do what these plugins are doing manually.

Usually, Websites/Apps are slow because of a couple of reasons which range from too many requests or big images to a bunch of unnecessarily big JS or CSS files. Optimizing these whether you are using a Plugin or doing it manually is enough.

I hope this was helpful.

Regards, KFSys

Bobby Iliev
Site Moderator
Site Moderator badge
May 10, 2023

Hi there,

As things have improved after adding some more resources to the server, this indeed sounds like a resource related problem, You could try out adding more resources like RAM and CPU and also add a swap file for some extra memory buffer:

https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-20-04

Slow response times and error 500 issues can be caused by various factors, such as insufficient resources, misconfigurations, or software issues. Here are some steps you can take to diagnose and optimize your Plesk and WordPress installation:

  1. Check server resource usage:

Monitor your server’s resource usage (CPU, memory, and disk space) using tools like top, htop, or free. If you notice high resource usage, consider optimizing your server or upgrading to a more powerful droplet.

  1. Analyze logs:

Inspect the logs to identify any errors or issues. Check the following log files:

  • Plesk log: /var/log/plesk/panel.log
  • Apache error log: /var/log/apache2/error.log
  • PHP error log: /var/log/php-fpm/error.log or /var/www/vhosts/system/example.com/logs/error_log (replace example.com with your domain)
  1. Optimize WordPress:
  • Use a caching plugin, such as WP Super Cache or W3 Total Cache, to cache your site’s content and improve its performance.
  • Optimize the database using a plugin like WP-Optimize.
  • Remove any unnecessary plugins and themes, and ensure that all installed plugins, themes, and WordPress core are up-to-date.
  • Use a Content Delivery Network (CDN) like Cloudflare to serve your site’s static assets.
  1. Optimize server configurations:
  • Ensure you’re using the latest stable versions of PHP, Apache, and MySQL.
  • Configure PHP-FPM with appropriate settings for your server’s resources. Adjust pm.max_children, pm.start_servers, pm.min_spare_servers, and pm.max_spare_servers in the PHP-FPM configuration file (/etc/php/8.0/fpm/pool.d/www.conf or similar, depending on your PHP version). Note, change the 8.0 with the PHP version that you are using.
  1. Check for ModSecurity issues:
  • Review the ModSecurity logs at /var/log/apache2/modsec_audit.log or /var/www/vhosts/system/example.com/logs/modsec_audit.log (replace example.com with your domain). Identify any rules that might be causing issues and consider tweaking or disabling them.
  1. Review Plesk extensions:
  • Disable any unnecessary Plesk extensions that could be affecting performance.
  • Make sure all Plesk extensions are up-to-date.

After implementing these optimizations, monitor your server’s performance and response times.

Let me know how it goes!

Best,

Bobby

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel