Dell Precision Optimizer Administrator’s Guide August 2020 Rev.
Notes, cautions, and warnings NOTE: A NOTE indicates important information that helps you make better use of your product. CAUTION: A CAUTION indicates either potential damage to hardware or loss of data and tells you how to avoid the problem. WARNING: A WARNING indicates a potential for property damage, personal injury, or death. © 2018 - 2020 Dell Inc. or its subsidiaries. All rights reserved. Dell, EMC, and other trademarks are trademarks of Dell Inc. or its subsidiaries.
Contents Chapter 1: Introduction................................................................................................................... 4 Chapter 2: Dell Precision Optimizer components............................................................................... 5 Uninstall Dell Precision Optimizer........................................................................................................................................ 5 Chapter 3: Performance.......................................
1 Introduction This document describes the tools, tips, and recommendations for the IT administrators to manage Dell Precision Optimizer remotely.
2 Dell Precision Optimizer components The four main components of Dell Precision Optimizer are: • • • • Performance Track and Analyze Engine (TA) System Maintenance (SM) Dell Precision Optimizer Manager CLI (dpoCmd.exe) Each of these components are implemented as a Windows service that also acts as a COM server.
If the silent response file (.iss file) is in C:\temp folder and its name is uninst.iss, then following command will run uninstall silently: "C:\Program Files (x86)\InstallShield Installation Information\{D66A3355-FEA4-4F60-8BAFD6CBEDB396D8}\setup.exe" -runfromtemp -l0x0007 –removeonly –s –f1c:\temp\uninst.
3 Performance The performance subsystem consists of the following modules: • • Policy Processing Engine (PPE) Profile Update Tool (profUpd.exe) Topics: • • Policy Processing Engine Profile update tool Policy Processing Engine Policy Processing Engine or PPE is implemented as a Windows Service which starts execution as soon as the machine boots up regardless of whether the user is logged in or not.
4 Track and Analyze The analysis subsystem provides the ability to generate the following types of reports: • • • • • • System Analysis Reports Workload Analysis Reports CPU Intelligence Reports GPU Intelligence Reports System Diagnostic Reports Performance Notifications System Analysis Reports provides the data collected by Dell Data Vault (DDV) application in an .XML format. The Workload Analysis feature allows the user to analyze their workload.
Generate report Table 4. Generate report Attribute Detail Description Type: Select one of the following options: • • • • • After 24 hours (Daily) After 12 hours After 8 hours After 6 hours After 4 hours Default: Daily Description: After enabling this option, DDV collects raw data and generates reports periodically. This setting controls how often the raw data is processed by DDV and converted into a new report.
• • • • • L3 Cache Size (KB) CPU Utilization per logical processor CPU Active Relative Frequency per logical processor (to determine Turbo Residency) Processor Queue Length for the system Number of System Threads GPU intelligence reports For supported Nvidia and AMD GPU adapters only, Dell Precision Optimizer 5.0 and later allows the user to view enhanced GPU. This includes GPU adapter and software information as well as live data for each GPU.
5 System maintenance Dell Precision Optimizer System Maintenance or SM allows you to filter updates that are seen or applied based on the following criteria derived from Dell Command | Update: • • • Criticality (Critical, Recommended, and Optional) Type (Hardware Drivers, Application, BIOS, and Firmware) Category (Audio, Chipset, Input, Network or Bluetooth, Storage, Video, and Others) System maintenance 11
6 User feedback Dell Precision Optimizer UI provides an option to the user to send feedback to Dell. Dell Precision Optimizer UI provides a link or button which the user can click to initiate this feedback. UI launches a URL in the browser which will allow the user to use a Dell standard form to provide feedback for Dell Precision Optimizer.
7 Improve Dell Precision Optimizer The Dell Precision Optimizer Customer Experience Improvement Program allows Dell customers to impact the development of future Dell Precision Optimizer releases. By sharing information with Dell regarding how you use Dell Precision Optimizer, you can contribute to improvements of future versions of the product. The Dell Precision Optimizer Customer Experience Improvement Program adheres to all of the provisions of the Dell privacy policy.
8 Enterprise tools Topics: • • • • • WMI Providers DPOCMD.EXE Setup command line switches Using SCCM and WSI KACE WMI Providers Dell Precision Optimizer 5.0 and later includes a Windows Management Instrumentation (WMI)provider to allow access to the following information. Please refer to Appendix A for MOF descriptions. The following two files are part of the Dell Precision Optimizer package: • • Dell Precision Optimizer WMI Provider: dpoProv.
Table 6.
• • • • GFXPLUGINS IMPROVEDPO ISVCERTGFX SMARTALERT dpoCmd.exe -disableFeatures [ ...], where can be one of the following: • • • • • • • • • • • PROFCTRL PROFUPD SYSUPD DDVCTRL USRFB UPGOPT WKLANL GFXPLUGINS IMPROVEDPO ISVCERTGFX SMARTALERT dpoCmd.exe -updateNow -criticality:CRO -filter:BDAF -device:ACMSNV dpoCmd.
Using SCCM and WSI SCCM and WSI are the methods that are used by IT administrators to centrally manage their systems and software applications. Dell Optimizer supports SCCM and WSI for configuration and deployment. For more information about SCCM, see www.docs.microsoft.com and WSI, see www.vmware.com. Instructions for creating the Dell Optimizer application package Follow these steps to create a Dell Optimizer package that you can deploy on a selected client system in the Enterprise.
6. In the Scheduling tab, click Next. 7. In the User Experience tab, select User notifications: Display in Software Center, and only show notifications for system restarts. 8. Click Next in the Alerts tab, click Next in the Summary tab, and verify deployment completion. Verify deployment success in client systems To verify the successful deployment in the client systems: 1. Open Software Center in the client system, verify if the Dell Precision Optimizer is installed.
b. In the Content tab, click Add to add a distribution point, click Next. c. In the deployment settings tab, have the following: • Action: Install • Purpose: Required • Check the Send wake-up packets box. d. In the Scheduling tab, select the time of deployment and ensure that the Rerun behavior option is set to Always rerun program. To deploy now, click New and select Assign immediately after this event: As soon as possible. e. In the User Experience tab ensure that the following check boxes are checked i.
3. Repeat steps 1 and 2 for all other datasets in the Datasets folder. Disk Information across multiple systems This report displays disk information across multiple systems using their latest system analysis report. Table 8.
Table 9. Disk information for a single system (continued) Date Reported Bytes Read (MB) Bytes Write (MB) Read Time (%) Write Time (%) Idle Time (%) Hours On 2015-07-15T03:0 6:53-05:00 568 949 0 0 98 3.1 2015-07-14T23:0 6:53-05:00 6 550 0 0 98 4 2015-07-14T19:07 0 :01-05:00 466 0 0 98 4 2015-07-14T15:0 6:46-05:00 0 447 0 0 98 3.95 2015-06-22T15:2 4:47-05:00 369 354 0 0 96 3.48 2014-12-16T03:2 6:33-05:00 0 176 0 0 99 3.
NOTE: The following steps were verified on KACE appliance 6.4.120756 K1000. If you are using a different version of KACE, then the actual steps may vary slightly. Instructions for deploying Dell Precision Optimizer using KACE An IT administrator can use the following procedure to deploy Dell Precision Optimizer application on select client systems in their domain. Create an installation script From your KACE appliance console: 1. Navigate to Scripting->Scripts->Choose Action->New. 2.
4. Click Run Now. 5. Click Save. This initiates the deployment of Dell Precision Optimizer client software on selected systems. These steps can be customized as well. Changing Dell Precision Optimizer Client Behavior using DPOCMD.EXE Following are the steps to run Dell Precision Optimizer CLI (dpoCmd.exe) on a target system to change the behavior of Dell Precision Optimizer software on that system. The following example illustrates the use of dpoCmd.
2. Select Enable DPO profile after effects from the Scripts drop down menu. 3. Under Labels, select a label of Windows devices where you wish to deploy Dell Precision Optimizer OR manually select a set of systems. 4. Click Run Now. Custom reports Here are some examples on how you can collect some data from Dell Precision Optimizer clients using its WMI classes and create custom reports.
MACHINE_CUSTOM_INVENTORY.STR_FIELD_VALUE AS MACHINE_CUSTOM_INVENTORY_XXXX, COUNT(MACHINE_CUSTOM_INVENTORY.STR_FIELD_VALUE) AS Total_Devices FROM MACHINE_CUSTOM_INVENTORY JOIN MACHINE ON MACHINE.ID = MACHINE_CUSTOM_INVENTORY.ID WHERE MACHINE_CUSTOM_INVENTORY.SOFTWARE_ID = XXXX GROUP BY MACHINE_CUSTOM_INVENTORY.STR_FIELD_VALUE ORDER BY MACHINE.CS_MANUFACTURER ASC, MACHINE.CS_MODEL ASC Replace XXXX with the ID# of your custom inventory which was collected above when the Custom Inventory Rule is created. 4.
A APPENDIX A - dpoCmd.
B APPENDIX B - WMI Class Definition Files /************************************************************** * DPOProv.mof * Last Updated: 03/06/2015 * This file defines the classes exposed by "dpoProv". **************************************************************/ #pragma autorecover #pragma namespace("\\\\.\\root\\cimv2") instance of __Namespace { Name = "DPO" ; }; #pragma namespace("\\\\.\\root\\cimv2\\DPO") /************************************************************** * DPO_HardwareInfo * There is one
string Motherboard_ePPID; [Description("Current BIOS Version.")] string BIOS_Version; [Description("Type of the system eg. Laptop or Desktop")] string System_Type; [Description("Serial number of the CPU.")] string Processor_Serial_Number; [Description("Processor name.")] string Processor_Information; [Description("Processor speed.")] string Processor_Speed; [Description("Average of the percentage LCD brightness when the system was on AC.
real32 S4_mins; [Description("Number of times the system was in Hibernate state (S4) where the between 0 to 30 mins.")] sint16 S4_Event_Bin_0_30_mins; [Description("Number of times the system was in Hibernate state (S4) where the between 30 mins to 1 hr.")] sint16 S4_Event_Bin_30_60_mins; [Description("Number of times the system was in Hibernate state (S4) where the between 1 hr to 2 hrs.
[Description("Percentage of time the processor (all processors combined) was in C1 state.")] sint16 C1_State_Pct; [Description("Percentage of time the processor (all processors combined) was in C2 state.")] sint16 C2_State_Pct; [Description("Percentage of time the processor (all processors combined) was in C3 state.")] sint16 C3_State_Pct; [Description("Percentage of time the processor (all processors combined) was in C0 state.")] sint16 C0_State_Pct; [Description("Number of LID transitions.
[Description("Percentage of time the system had between 256 MB to 512 MB of physical memory available to processes running on the computer.")] real32 AvailMem_256_512MB_Pct; [Description("Percentage of time the system had between 512 MB to 768 MB of physical memory available to processes running on the computer.")] real32 AvailMem_512_768MB_Pct; [Description("Percentage of time the system had between 768 MB to 1024 MB of physical memory available to processes running on the computer.
**************************************************************/ [Description("Monitor information from the summary log file. This information is extracted from the EDID data" " in the registry"), Dynamic,Provider("DPOProv") ] class DPO_Monitor { [ Description("Unique ID from the summary file."), Key ]string HardwareInfoGUID; [ Description("Monitor index number, starting from 0."), Key ]sint16 Index; [Description("Type of monitor (Dell or Non-Dell).
Description("This class associates DPO_HardwareInfoToBiosInternalLogs" "instance(s) with an instance of DPO_HardwareInfo."), dynamic:ToInstance, PROVIDER("DPOProv"):ToInstance ] class DPO_HardwareInfoToBiosInternalLogs { [key] DPO_HardwareInfo REF Antecedent; [key] DPO_BiosInternalLogs REF Dependent; }; /************************************************************** * DPO_WWAN * This has the Wireless WAN adapter information from a summary * log.
string Name; [Description("Manufacturer's name.")] string Mfg_Name; [Description("Full charge capacity of the battery.")] sint32 FullChargeCapacity; [Description("Battery cycle count.")] sint16 Cycle_Count; [Description("Total time (in minutes) the battery was in discharge state.")] real32 Discharge_Time_mins; [Description("Number of times the discharge depth was between 0 to 5%.")] sint16 Discharge_Depth_0_5_Pct; [Description("Number of times the discharge depth was between 5 to 10%.
sint32 Discharge_mV_Min; [Description("Average power (in W) during battery discharge.")] real32 Discharge_Power_W_Avg; [Description("Standard deviation of power (in W) during battery discharge.")] real32 Discharge_Power_W_Std_Dev; [Description("Maximum power (in W) during battery discharge.")] sint32 Discharge_Power_W_Max; [Description("Minimum power (in W) during battery discharge.")] sint32 Discharge_Power_W_Min; [Description("Percentage of time the power during discharge was between 0 to 5W.
// NameChange real32 real32 Charge_Power_W_RSOC_LE_60_Avg; Charge_Pwr_RSOC_LE_60_Avg; [Description("Standard deviation of power (in W) during battery charge when RSOC was less than 60%.")] // NameChange real32 Charge_Power_W_RSOC_LE_60_Std_Dev; real32 Charge_Pwr_RSOC_LE_60_StDv; [Description("Maximum power (in W) during battery charge when RSOC was less than 60%.
{ [ Description("Unique ID from the summary file."), Key ]string HardwareInfoGUID; [ Description("Notebook fan index number starting from 0."), Key ]sint16 Index; [Description("Location where the fan is present in the system.")] string Location; [Description("Percentage of time fan rpm was non-zero.")] sint16 Fan_Duty_Cycle_Pct; [Description("Fan speed when the summary log was generated.")] sint32 RPM; [Description("Peak fan speed.")] sint32 Peak_Fan_RPM; [Description("Average fan speed.
[Description("Percentage of time the fan speed was more than 7000 RPMs.")] sint16 RPM_GT7000_Pct; }; /************************************************************** * DPO_HardwareInfoToNBFan * This class associates DPO_NBFan instance(s) with an * instance of DPO_NBFan.
[Description("Percentage of time the fan speed was between 3100 and 3500 RPMs.")] sint16 RPM_3100_3500_Pct; [Description("Percentage of time the fan speed was between 3500 and 4000 RPMs.")] sint16 RPM_3500_4000_Pct; [Description("Percentage of time the fan speed was between 4000 and 4500 RPMs.")] sint16 RPM_4000_4500_Pct; [Description("Percentage of time the fan speed was between 4500 and 5000 RPMs.")] sint16 RPM_4500_5000_Pct; [Description("Percentage of time the fan speed was between 5000 and 5500 RPMs.
[Description("Percentage of time the temperature read was between 0 to 30C.")] sint16 Temp_0_30C_Pct; [Description("Percentage of time the temperature read was between 30 to 40C.")] sint16 Temp_30_40C_Pct; [Description("Percentage of time the temperature read was between 40 to 50C.")] sint16 Temp_40_50C_Pct; [Description("Percentage of time the temperature read was between 50 to 60C.")] sint16 Temp_50_60C_Pct; [Description("Percentage of time the temperature read was between 60 to 70C.
/************************************************************** * DPO_HardwareInfoToLogical_Processor * This class associates DPO_Logical_Processor instance(s) with an * instance of DPO_HardwareInfo.
[Association : ToInstance, Description("This class associates DPO_Disk instance(s) with " " an instance of DPO_HardwareInfo"), dynamic:ToInstance, PROVIDER("DPOProv"):ToInstance ] class DPO_HardwareInfoToDisk { [key] DPO_HardwareInfo REF Antecedent; [key] DPO_Disk REF Dependent; }; /************************************************************** * DPO_Partition * This has the logical partition information from a summary log. * There may be multiple instances of this class for each summary * file.
class DPO_LanAdapter { [ Description("Unique ID from the summary file."), Key ] string HardwareInfoGUID; [ Description("LAN adapter index number starting from 0."), Key ] sint16 Index; [Description("LAN adapter name.")] string Name; [Description("LAN adapter's MAC address.")] string MAC; [Description("Percentage of time the adapter was busy when the system was on AC.")] sint16 ActivityAC_Pct; [Description("Percentage of time the adapter was busy when the systen was on battery.
[Description("Percentage of time the WLAN adapter was connected when the system was on AC.")] sint16 WlanConnectedAC_Pct; [Description("Percentage of time the adapter was not connected when the system was on AC.")] sint16 WlanDisconnectedAC_Pct; [Description("Percentage of time the radio was off when the system was on battery.")] sint16 WlanRadioOffDC_Pct; [Description("Percentage of time the WLAN adapter was connected when the system was on battery.
[Description("Maximum disk temperature read using SMART.")] sint16 Temp_Max; [Description("Percentage of time disk temperature read using SMART was between 0 to 30C.")] sint16 Temp_0_30_Pct; [Description("Percentage of time disk temperature read using SMART was between 30 to 40C.")] sint16 Temp_30_40_Pct; [Description("Percentage of time disk temperature read using SMART was between 40 to 50C.")] sint16 Temp_40_50_Pct; [Description("Percentage of time disk temperature read using SMART was between 50 to 60C.
[Description("Load unload cycle count (normalized value).")] uint8 Load_Unload_Cycle_Count_Normalized; [Description("Load unload cycle count (worst value).")] uint8 Load_Unload_Cycle_Count_Worst; [Description("Load unload cycle count (threshold value).")] uint8 Load_Unload_Cycle_Count_Threshold; [Description("Total power on hours.")] sint64 Power_On_Hours; [Description("Total power on hours (normalized value).")] uint8 Power_On_Hours_Normalized; [Description("Total power on hours (worst value).
uint8 Free_Fall_Count_Normalized; [Description("Free fall count (worst value).")] uint8 Free_Fall_Count_Worst; [Description("Free fall count (threshold value).")] uint8 Free_Fall_Count_Threshold; [Description("Power cycle count.")] sint64 Power_Cycle_Count; [Description("Power cycle count (normalized value).")] uint8 Power_Cycle_Count_Normalized; [Description("Power cycle count (worst value).")] uint8 Power_Cycle_Count_Worst; [Description("Power cycle count (threshold value).
[Description("User reserved block count (SSD Total) (worst value).")] uint8 User_Rsvd_Block_Count_Total_Worst; [Description("User reserved block count (SSD Total) (threshold value).")] uint8 User_Rsvd_Block_Count_Total_Threshold; [Description("Unused reserved block count.")] sint64 Unused_Rsvd_Block_Count; [Description("Unused reserved block count (normalized value).")] uint8 Unused_Rsvd_Block_Count_Normalized; [Description("Unused reserved block count (worst value).
[Association : ToInstance, Description("This class associates DPO_Smart instance(s) with" " an instance of DPO_HardwareInfo"), dynamic:ToInstance, PROVIDER("DPOProv"):ToInstance ] class DPO_HardwareInfoToSmart { [key] DPO_HardwareInfo REF Antecedent; [key] DPO_Smart REF Dependent; }; /************************************************************** * DPO_DIMM * This has the DIMM information from a summary log. There * may be multiple instances of this class for each summary file.
[Description("Logical drive information for all logical drives found on the system."), Dynamic,Provider("DPOProv") ] class DPO_Logical_Drive_Info_New { [ Description("Unique ID from the summary file."), Key ] string HardwareInfoGUID; [ Description("Logical drive index number starting from 0."), Key ] sint16 Index; [Description("Logical drive name, eg. C:.")] string Name; [Description("Total logical drive size in MBs.")] sint64 Size_MB; [Description("Total free space on the logical drive in MBs.
[Description("MiniDump File Name.
Description("This class associates DPO_FreeFall instance(s) with " "an instance of DPO_HardwareInfo"), dynamic:ToInstance, PROVIDER("DPOProv"):ToInstance ] class DPO_HardwareInfoToFreeFall { [key] DPO_HardwareInfo REF Antecedent; [key] DPO_FreeFall REF Dependent; }; /************************************************************** * DPO_Cable * This has the cable log information from a summary log. There * may be multiple instances of this class for each summary file.
}; /************************************************************** * DPO_CableToCableChangeHistory * This class associates DPO_CableChangeHistory instance(s) with an * instance of DPO_Cable.
[Association : ToInstance, Description("This class associates DPO_BTModule instance(s) " " with an instance of DPO_HardwareInfo"), dynamic:ToInstance, PROVIDER("DPOProv"):ToInstance ] class DPO_HardwareInfoToBTModule { [key] DPO_HardwareInfo REF Antecedent; [key] DPO_BTModule REF Dependent; }; /************************************************************** * DPO_IntelPerf * This has the Intel performance information from a summary log. There * may be multiple instances of this class for each summary file.
**************************************************************/ [Description("Graphics performance information and statistics."), Dynamic,Provider("DPOProv") ] class DPO_Graphics { [ Description("Unique ID from the summary file."), Key ] string HardwareInfoGUID; [ Description("GPU number starting from 0."), Key ] sint16 Index; [Description("Minumum GPU utilization.")] sint16 Min_GpuUtilization; [Description("Maximum GPU utilization.")] sint16 Max_GpuUtilization; [Description("Average GPU utilization.
[Description("Percentage of time graphics fan was at 0% speed.")] real32 FanSpeedPct_0_Pct; [Description("Minumum GPU temperature.")] sint16 Min_Temperature; [Description("Maximum GPU temperature.")] sint16 Max_Temperature; [Description("Average GPU temperature.")] real32 Avg_Temperature; }; /************************************************************** * DPO_HardwareInfoToGraphics * This class associates DPO_Graphics instance(s) with an * instance of DPO_HardwareInfo.
] string }; LastCheckForProfiles; /************************************************************** * DPO_TriggeredProfiles **************************************************************/ Description("DPO Profiles that have triggered"), Dynamic,Provider("DPOProv") ] class DPO_TriggeredProfiles { [ Description("Unique ID of profile"), Key ] string ProfileGUID; [ Description("Name of profile") ] string ProfileName; [ Description("Unique ID of policy that triggered"), Key ] string PolicyGUID; [ Description("Na
Description("Unique ID of alert"), Key ] string AlertGUID; [ Description("Alert Message") ] string AlertMessage; [ Description("Alert Description"), ] string AlertDescr; [ Description("Guidance"), ] string AlertGuidance; [ Description("Local date/time of alert"), ] string AlertGeneratedAt; }; /************************************************************** * Creat an instance of the provider // Setting the HostingModel to Decoupled:Com registers the provider as a decoupled com provider, // lowers RPC_C_IMP_L