Inventory policies can be found in the Symantec Management Console under Manage>Policies, then under Discovery and Inventory>Inventory. The delta inventory polices are optional but useful for running frequently; they only report hardware changes and what software and files were added to each client since the last inventory ran. In contrast, the Collect Full Inventory policy is able to detect when software or files are removed because full inventory collects a complete list of hardware, software, and files from each client. The drawback is that full inventories often contain about 5 MB of data per client for the notification server (NS) to process. In large environments (2000+ clients) the NS can be easily overwhelmed by incoming inventory data resulting in poor performance, event queue full errors, and rejection of incoming data. This article presents two strategies for preventing full inventory policies from overwhelming the NS: throttling and splitting policies.
Full inventory policies should always have throttling enabled. Throttling still causes all clients to run inventory scans at the scheduled time, but then forces the clients to wait a random time within a throttling period before sending the data to the NS. This prevents the NS from being overwhelmed by thousands of inventory event files at once and instead spreads them out over several hours. The following instructions explain how to configure throttling:
- In the Symantec Management Console find and open the Collect Full Inventory policy (or equivalent policy) found under Manage>Policies>Discovery and Inventory>Inventory
- Click on Advanced to open the Advanced Options window
- Go to the Run Options tab
- Enable Throttle inventory scan evenly over a period of: then specify a throttling period of 7 hours (or whatever is desired)
- Click OK to close Advanced Options
- Note that throttling has a limitation in that the inventory can fail to be sent if a client is shut down within the throttling period, thus the schedule needs accommodate when computers are shut down
- Click on Custom schedule to open the Edit Policy Schedule window
- Click Add schedule>Scheduled time
- Set the start time to 09:00 or a time when most clients will be online (with a seven hour throttling window this will allow inventories to be sent by 4:00 PM before most clients start shutting down)
- Click No repeat to open the Repeat schedule window
- Set Repeat every: to Week and select a day of the week
- Click OK to save the schedule
- Click Save changes to save the policy
Splitting Inventory Policies
In very large environments (2000+ clients) throttling will help but still there may be too much inventory data for the NS to process in one day. In this case inventories should be spread out over the week by splitting up inventory policies so that they target smaller groups of computers on different days of the week. The difficult part of this is to create filters that divide clients into smaller groups, which can be targeted by the split-up policies. The following instructions explain how to create the filters and configure the inventory policies:
Figure: The left pane shows what split inventory policies might look like. The bottom pane shows how to configure throttling in the Advanced Options window.
Create custom filters to divide computers into different groups
- In the Symantec Management Console go to Manage>Filters
- Right-click on a folder (create a new folder if desired) and select New>Filter
- Change Filter Definition to Query Mode: Raw SQL and click OK on the popup
- Expand the Filter Definition bar
- Paste the following SQL query in the Parameterized Query box:
SELECT * FROM vComputer
WHERE vComputer.Name LIKE '0%'
OR vComputer.Name LIKE '1%'
OR vComputer.Name LIKE '2%'
OR vComputer.Name LIKE '3%'
OR vComputer.Name LIKE '4%'
OR vComputer.Name LIKE '5%'
OR vComputer.Name LIKE '6%'
OR vComputer.Name LIKE '7%'
OR vComputer.Name LIKE '8%'
OR vComputer.Name LIKE '9%'
OR vComputer.Name LIKE 'A%'
OR vComputer.Name LIKE 'B%'
OR vComputer.Name LIKE 'C%'
- Click Save Changes
- Click Update membership
- Note how many computers appear in the filter, ideally it should be around 20% of all the computers in the environment
- Click Edit then add or remove OR lines in order to adjust the number of computers in the filter then save changes and update membership until the number of computers is around 20% of the total computers.
- Name the filter "Computers 0-9, A-C" or whatever is appropriate to the final SQL query used
- Create four more filters the same way continuing down the alphabet to divide all the computers in the environment between five different filters
Create an Update Filter Membership task to automatically update the filters
- Go to Manage>Jobs and Tasks
- Right-click on any folder, go to New>Task
- In the Create New Task window scroll down and select the Update Filter Membership task
- Next to Update filters (0): click None selected
- Find the five custom filters that were just created and move them to the right box, then click OK
- Click OK to save the task
- In the task page click on New Schedule, then select Schedule, change the date and time if desired, enable Repeat every: and set it to repeat every 1 Weeks
- Click Schedule to save the schedule
Create inventory policies with different targets and schedules
- In the Symantec Management Console find the Collect Full Inventory policyunder Manage>Policies>Discovery and Inventory>Inventory
- Right click on the policy and select Clone
- Name the new policy "Collect Full Inventory Computers 0-9 and A-C" or whatever is appropriate to the first filter
- Clone four more policies (clone the default policy, do NOT clone clones) and name them appropriately for each of the remaining filters, then disable the original policy
- Open one of the new policies
- Enable the policy by clicking the red button by Off and changing it to On
- Select the target in the policy and the click the X (Delete) button
- Click Applied To>Computers to add a new target
- In the Select computers window click Add rule
- Change exclude computers in to exclude computers not in
- Click the empty box and type in the first letters of the name of the appropriate filter, then select the filter when it appears
- Click OK to save the target
- In the policy page click Custom schedule to change the schedule
- In the Edit Policy Schedule window click on the repeat option in blue
- Set the first policy to run on Monday (the second policy should run on Tuesday, the third policy to run on Wednesday, etc.)
- Confirm that the start time is 09:00 then click OK to save the schedule
- Click Advanced
- Go to the Run Options tab and confirm that throttling is enabled for 7 hours
- Click OK to close the Advanced Options window
- Click Save Changes to save the policy
- Repeat this process so that each policy targets a different filter and runs on a different day of the week