- Assess how much of an effect Incredibuild’s distribution and caching will have on your builds
- Improve Incredibuild performance by locating any issues in your environment
- Troubleshoot issues causing performance degradation
Interactive CLI vs. Non-Interactive CLI
For every different site survey tool command, you can either use it in two ways:- Interactive CLI: During the tool execution, you are required to answer a few questions in the command line. By default, the tool is run in Interactive mode unless the file site_survey.ini exists in the location that you use to run the Site Survey tool.
- Non-Interactive CLI: The tool execution does not require interaction, you add the information to a configuration file instead. This is ideal for CI environments. Non-interactive mode is used whenever the file site_survey.ini exists in the location that you use to run the Site Survey tool. This file must be custom configured depending on how you want to use the tool. Details are included below for each mode.
System Overview Mode
The System Overview mode collects information about your machine, the software installed on the machine, the software configurations, Incredibuild logs, and system logs. This is commonly used to verify that you meet the system requirements and check if there is a problem with your firewall, ram, etc. It can be run from any machine that has Incredibuild installed (Agent or Coordinator) To use this mode, run the following command: site_survey.exe /system-overview You will then need to answer the following questions or include them in the site_survey.ini file:- Company name
- Build name
- Whether or not to upload the output files automatically to Incredibuild automatically (requires internet connection)
- C:\Program Files (x86)\Incredibuild\ Logs
- C:\\ProgramData\\Incredibuild (exclude FileCache)
- EvenLog -> Windows Logs -> Application & System
- C:\Program Files (x86)\Incredibuild\Temp
- output.xlsx – including only System Info
- system.xml – system information
- SystemStatisticsDB.db – SQLite Database including the following tables:
- Disk Information (disk type, disk size)
- Environment variables
- Firewall (Windows Defender FW open ports based on system requirements per machine type
- Network (NIC name, mac, speed, type)
- Proc (running processes)
- Installed programs
- Registry values related for IB installation
- Services (running services)
- Stats (Statistics) – see perf-duration option for details
- System (system information) including:
- Hostname
- Windows version
- IB License
- IB version
- Coordiantor ID
- License key
- CPU Model
- CPU count
- CPU Max Frequency
- GPU model
- Total Memory
- Total Swap Memory
- Cloud Provider
- VM status
Performance Monitoring Mode
Performance Monitoring Mode collects information about your system performance for a specified number of seconds. This is designed to be run during a build. This tool uses very few resources and should not affect your build speeds significantly. It can be run from any machine that has Incredibuild installed (Agent or Coordinator) To use this mode, run the following command: site_survey.exe /system-overview /perf-duration=<test_duration_in_seconds> For example: site_survey.exe /system-overview /perf-duration=300 If you uploaded the files automatically, the output is sent to Incredibuild and nothing else is required. If you did not, then you can send your Customer Success Manager the zip file that is located in CWD that is specified in the command line output. The output is stored in the output_files/SystemStastics.db file and contains the following information:- Timestamp
- CPU usage
- Available Memory
- Free Swap Memory
- I/O read per second
- I/O write per second
- Bytes sent per second
- Bytes received per second
Process Monitor Mode
You can use Process Monitor mode to learn which processes are run during a build. It does this by running a build and monitoring your environment while it runs. This allows you to create a process tree which can be helpful when creating a custom profile.xml file. It can be run from any machine that has Incredibuild installed (Agent or Coordinator), but usually it is run on an Initiator from the PWD to monitor your build environment. It must be run with a user that has admin privileges. To use this mode, run the following command: site_survey.exe /process-monitor You will then need to answer the following questions or include them in the site_survey.ini file:- Company name
- Build name and/or comments (keep these as short as possible)
- Build command
- Clean command
- Whether or not to upload the output files automatically to Incredibuild automatically (requires internet connection)
- procmon.db – SQLite DB storing information on all started processes during the build
- procmon_tree.txt – aggregated process tree showing all relevant processes child-parent relationships
- procmon_not_in_profile.txt – looks for processes related to the build, but not included into embedded profile.xml, provided in txt format
Benchmark Modes
Benchmark modes run a build you specify four times in four different ways:- Without Incredibuild at all
- With Incredibuild distribution, but without Build Cache
- With Incredibuild distribution and Build Cache to populate the cache
- With Incredibuild distribution and Build Cache (local only) to use the cache
- Visual Studio - use the benchmark-vs command and run the command in the Visual Studio command line
- Unreal Engine - use the benchmark-ue command and run the command from the same location you would run your build
- All Others - use the benchmar-wrap command and run the command from the same location you would run your build
- site_survey.exe /benchmark-vs
- site_survey.exe /benchmark-ue
- site_survey.exe /benchmark-wrap
- Company name
- Build name and/or comments (keep these as short as possible)
-
Build Information
-
For Visual Studio:
- Sln full path in double quotes
- Build Configuration
-
For Unreal Engine and Others
- The build command
- The clean command
-
For Visual Studio:
- Build Directory or CWD
- Whether or not to upload the output files automatically to Incredibuild automatically (requires internet connection)
- SystemStatisticsDB.db - SQLite Database (refer to System-overview mode for details)
- Non-IB.log – build log in text format
- Non-IB.db – build statistics only (BDE output)
-
For other builds (IB_dist, bc_population and bc_consumption):
- BDE - collected db file per build (build tasks and statistics)
- BDE – BuildHistoryDB.db all builds information
- Ib_mon – build monitor files
-
output.xlsx
-
Builds statistics per build type:
- Duration
- Exist code
- CPU load in percentage
- Peek RAM usage
- CPU load over 90% (in minutes)
- Count of distributed tasks
- Total count of tasks
- Top 3 processes (by execution time)
- System Info (information about machine and software)
- Build Cache Info (BC size)
- Build Info (Company and Build name, Build and Clean command and etc)
- Build Folder info (folder info before and after build, show clean issues)
- BC report
- Build Time chart
- Top 3 processes pie chart
-
Builds statistics per build type:
Output.xlsx - Alerts
System Info
CPU cores:- If Initiator (with local cache) and < 8 cores
- If helper and < 2 cores
- If coordinator and < 4 cores
- if total RAM is lower then twice as CPU cores
- for initiator RAM is lower than 16GB (local cache)
- for helper RAM is lower than 4GB
- for coordinator RAM is lower than 4GB
Check required ports per installation type (initiator/helper/coordinator).
- If one/many required ports are closed prints specific port/ports – error
- If no active license also show error, since the ports cannot be checked
- Cacheable tasks - When percentage of Cacheable tasks from total number of tasks is lower then 50%
- taskHits – When percent of consumption taskHits is lower than 80% of total cached tasks