The time to complete the scan will depend on the speed of your server, what you're scanning, and the device itself. I find that scans greatly increase in time to complete when performing the scan during normal working hours, when users may be using devices, as well as doing more in-depth scanning. Event Log Scanning, if enabled, can increase the time to complete scans.
How you set up your threads can help reduce the time to perform scans, but this will be based on your environment design itself. For example, my settings are as follows:
Computer Threads: 50
IP Threads: 30 (Can be lengthy of a scan depending on the number of devices across the IP)
Deployment Threads: 1 (We don't use this at all)
The recommendation given to us was not to use all 99 threads and direct our threads to the biggest time hogs, in this case, IP Threads. You can use this report to see which IP ranges take the most time and them separate them into chunks to help reduce traffic congestion:
Select CONCAT(ipstart, ' - ', ipend) as IPRange,
Count(tblassets.AssetID) As [IPs Used],
Cast(ISNULL(sum(a.scantime)/60,0) as decimal(16,2)) as [Scantime (Minutes)],
Cast(ISNULL(avg(a.scantime/60),0) as decimal(16,2)) as [Average Scantime (Minutes)]
From tblassets
Inner Join tblAssetCustom On tblassets.AssetID = tblAssetCustom.AssetID
Inner Join tblState On tblState.State = tblAssetCustom.State
inner Join tsysIPScanRanges On tsysIPScanRanges.Servername =
tblassets.Scanserver
inner join tblComputersystem on tblComputersystem.AssetID = tblassets.AssetID
left join (select sum(ISNULL(scantime, 0)) as scantime,
assetid
from TsysLastscan
group by assetid) as a on a.AssetID = tblassets.AssetID
Where tblState.Statename = 'Active' and tblassets.IPNumeric Between
ParseName(tsysIPScanRanges.Ipstart, 4) +
Right('000' + IsNull(ParseName(tsysIPScanRanges.Ipstart, 3), ''), 3) +
Right('000' + IsNull(ParseName(tsysIPScanRanges.Ipstart, 2), ''), 3) +
Right('000' + IsNull(ParseName(tsysIPScanRanges.Ipstart, 1), ''),
3) And ParseName(tsysIPScanRanges.Ipend, 4)+ Right('000' + IsNull(ParseName(tsysIPScanRanges.Ipend, 3), ''), 3) +
Right('000' + IsNull(ParseName(tsysIPScanRanges.Ipend, 2), ''), 3) +
Right('000' + IsNull(ParseName(tsysIPScanRanges.Ipend, 1), ''), 3)
Group By tsysIPScanRanges.IprangeID,
ipstart, ipend
order by IprangeID
You can also check out this post for scanning performance tuning: https://community.lansweeper.com/t5/quick-tech-solutions/tuning-lansweeper-for-optimal-performance/b...
There is also a report I run created by Mister_Nobody to see if there are any specific areas that are taking an extensive amount of time. I adjusted this to match what I wanted to find:
Select Top 1000000 tblassets.AssetID,
tblassets.AssetName,
tblassets.IPAddress,
tblassets.Userdomain,
tblassets.Username,
tblassets.oscode,
tblassets.memory,
tblassets.Processor,
TsysWaittime.CFGname,
TsysLastscan.Scantime,
TsysLastscan.Lasttime,
TsysWaittime.Waitdays
From tblassets
Inner Join TsysLastscan On tblassets.AssetID = TsysLastscan.AssetID And
TsysLastscan.Scantime > 5 And TsysLastscan.Lasttime > GetDate() - 7
Inner Join TsysWaittime On TsysLastscan.CFGcode = TsysWaittime.CFGCode
Order By TsysLastscan.Scantime Desc
------------------------------------------------
Union Home Mortgage's "Lansweeper Guy"
------------------------------------------------