Go to Akeeba Backup. Select your backup profile. Click on the Configuration button. Scroll down and find the File-tuning area. Set:
- Minimum execution time: 0
- Maximum execution time: 7
- Runtime bias: 75%
Click on Save & Close and start a new backup. If it fails again please ZIP and attach your new log file.
Explanation: Each "Starting Step number" line in your log file indicates the beginning of a new page load (the page load actually starts at the "Kettenrad :: Attempting to load from database" line in steps 2 and above). I see that steps 1 through 7 take between 1 and 4 seconds, they complete just fine. Step number 8 seems to be consistently killed by the server at 9 to 10 seconds. This tells me that your server has an effective time limit of 10 seconds.
But, you will tell me, the log file says that PHP reports a maximum execution time of 50000 (fifty thousand) seconds! Yes, that's not the only timeout. There are two to three more timeouts in play. First, you are using PHP FastCGI, probably through PHP-FPM, which means that there's the PHP-FPM timeout itself. Then there's the Apache timeouts: a timeout for waiting PHP to send data and a timeout for the entire request. Finally, most servers have a maximum CPU usage limit per process; any process using the CPU longer than that is killed.
Given the +/- 1 second kill-off of the backup process I would think it's the latter. Why is that? Because the CPU usage time and the wall clock time are two different things. If you use 100% of the CPU they will be identical. Since you never use 100% of the CPU (plus the way of how the Linux kernel counts CPU usage time) you usually get ~10% to 30% more wall clock time than CPU time (meaning your average CPU usage is between 70% and 90%) in most cases.
The solution to that is having the backup run for decidedly less time than that. So why set it to a maximum of 7 seconds instead of 10? Because the smallest unit of processing is a file as big as the Big File Threshold option in Akeeba Backup, 1Mb by default, which might take a second or so to be processed. I also want to add some "buffer" so as not to run way to close to the timeout limit which would result in the backup failing again.
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!