Let me first paste the relevant log lines, with personal information redacted / modified since this is a public ticket:
INFO |20251217 02:12:45|Beginning post processing file /var/www/vhosts/example.com/fullbackup-example.com-20252327-020303.jpa
DEBUG |20251217 02:12:45|Akeeba\Engine\Postproc\Ftp:: Connecting to remote FTP
DEBUG |20251217 02:12:45|Akeeba\Engine\Postproc\Ftp:: Starting FTP upload of /var/www/vhosts/example.com/fullbackup-example.com-20252327-020303.jpa
DEBUG |20251217 02:15:57|PHP WARNING (not an error; you can ignore) on line 364 in file /var/www/vhosts/example.com/httpdocs/wp-content/plugins/akeebabackupwp/app/vendor/akeeba/engine/engine/Util/Transfer/Ftp.php:
DEBUG |20251217 02:15:57|ftp_fput(): Connection timed out
DEBUG |20251217 02:15:57|PHP WARNING (not an error; you can ignore) on line 364 in file /var/www/vhosts/example.com/httpdocs/wp-content/plugins/akeebabackupwp/app/vendor/akeeba/engine/engine/Util/Transfer/Ftp.php:
DEBUG |20251217 02:15:57|ftp_fput(): Using transfer connection
DEBUG |20251217 02:16:07|PHP WARNING (not an error; you can ignore) on line 368 in file /var/www/vhosts/example.com/httpdocs/wp-content/plugins/akeebabackupwp/app/vendor/akeeba/engine/engine/Util/Transfer/Ftp.php:
DEBUG |20251217 02:16:07|ftp_chdir(): Connection timed out
WARNING |20251217 02:16:07|Failed to process file /var/www/vhosts/example.com/fullbackup-example.com-20252327-020303.jpa
WARNING |20251217 02:16:07|Error received from the post-processing engine:
WARNING |20251217 02:16:07|Uploading /var/www/vhosts/example.com/fullbackup-example.com-20252327-020303.jpa has failed.
You were talking about the lines containing messages similar to "ftp_fput(): Connection timed out".
The message you get means that PHP never heard back from the remote FTP server. You appear to have misunderstood this as a problem with your web server, so you asked your host about why you see timeouts on your server. This was, of course, misleading as there was no such problem. Your host couldn't find anything like that, so they told you that the only thing they see is a higher than your site's average CPU usage around that time. You misunderstood that as a confirmation of your misdiagnosis of the wrong problem due to confirmation bias. Basically, you are chasing the wrong problem, at the wrong end, despite being told it's not what you should be doing. I can understand how this happened.
In any case, just to put this out of your mind: when you are taking a backup by definition you using more CPU, memory, and disk I/O than average. Taking a backup requires reading the entire contents of your database, all of your files, compress that data, and write it to a file. If I asked you to read an entire book and write me a summary it's a lot more work than if I asked you to photocopy a page of it for me. It's the very same concept. But, again, CPU, memory, and disk usage on your web server has absolutely nothing to do whatsoever with your problem.
The actual problem is that the remote FTP server stops responding. That's something you should contact the remote FTP server's administrator to find out what takes place on their end when the connection appears to hang.
If you are using a NAS you manage yourself and make accessible over dynamic DNS, that could actually be the issue. If the IP address of your connection changes while file transfer is in progress your (web) server doesn't and cannot possibly know about it. It will keep trying to send data packages to the IP address it originally connected to but will receive no response as there's nothing listening on that IP address any more. From the web server's point of view, that's a connection timeout.
The same thing could be happening if your web server's host has a firewall which allowed the data channel connection to go through (which is why the initial connection succeeded) but does not allow sending data over the data channel connection. This is a very common misconfiguration; Linux requires an additional module and explicit configuration in iptables for FTP's data channel connections to work.
Here's what you have to do.
Start by asking the host of your web server why you are getting a connection timeout when you are trying to send files over FTP to a remote server. The qualifiers in bold type completely change the kind of troubleshooting your host needs to do. It's no longer a timeout –which they implicitly understand as a timeout of their web server– but a connection issue to a remote FTP server. It's like asking for a fruit to put in a salad; tomatoes and bananas both are fruit, but depending on whether you're making a (savoury) salad or a fruit salad which one I should give you varies quite dramatically.
If your host has confirmed everything is fine on their end, start pursuing the issue on the remote FTP server end.
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!