Hello,
I've noticed a problem with very slow file scanning in Admin Tools Professional 7.9.4.
My website runs on Joomla 5.4.10, PHP 8.2, and LiteSpeed. The server has plenty of available resources, and the website itself performs well.
However, scanning approximately 14,000 files has taken over 40 minutes. For comparison, I've used much less powerful servers where similar scans took around 10 minutes.
Initially, I suspected a server performance issue, but after running several tests, I noticed something unusual.
With the following settings:
-
Minimum execution time: 0 seconds
-
Maximum execution time: 10 seconds
-
Runtime bias: 75%
each scanning cycle took approximately 18 seconds.
When I increased the maximum execution time to 30 seconds, the intervals between cycles increased to approximately 48 seconds. The complete scan took 42 minutes and 29 seconds.
Interestingly, according to the output of the time command, the total CPU time used during this scan was only about 15 seconds.
I then changed the settings to:
-
Minimum execution time: 10 seconds
-
Maximum execution time: 10 seconds
-
Runtime bias: 75%
After this change, the intervals between scanning cycles decreased to approximately 7–8 seconds, and the complete scan finished in 21 minutes.
This is a significant improvement, but I still believe the scanning process is taking much longer than it should.
While investigating the issue, I noticed the following code in:
administrator/components/com_admintools/src/Model/ScansModel.php
$waitTime = $alreadyRun - $minExec;
I'm not an expert in Akeeba's code, but I'm wondering whether this calculation is correct. It seems that when the minimum execution time is set to 0, the scanner may wait for approximately the same amount of time it has already spent processing the previous step.
Could you please check whether this is the intended behavior or possibly a bug?
I would also appreciate your recommendation regarding the best scanner settings for a powerful server to achieve the fastest possible scanning performance.
Thank you in advance for your help.