Skip to main content
InSource Solutions

TN - 1309 Identifying and managing a deployed Platform (engine)

Description

This article from InSource discusses the identification and management of deployed Platforms (engines).  

  • Author: Mario Meza
  • Published: 12/15/22
  • Applies to: Application Server 2014 R2 SP1 and above

Details

When you think of a platform you likely picture the object representing a computer / node in your system where objects are deployed, (as seen in the deployment view of the IDE).

 

clipboard_e0381199ad97c012567f2c73eafa07489.png

 

Once deployed however a ‘Platform’ is the logical name for an Engine Module / runtime process called aaEngine.exe (pictured below in task manager).

 

clipboard_e734b5cca5b20e8eac450ecef760d618d.png

 

A deployed platform can be identified by the command line arguments IsPlatformEngine=-1, and EngineName= which should match the name of the Platform Instance in the IDE.

These values can be viewed by enabling the Command line column in task manager (From the Processes tab of Task Manager right click a column name and select Command line).

clipboard_e1744a7d559a3a42d0fa0c5fdced4d514.png

You can also get this information by executing the following Power Shell script:

 

Get-WmiObject Win32_Process -Filter "name = aaengine'" | Select-Object CommandLine, ProcessId| format-list

 

clipboard_e24711c1d2c72af1c070c978ba043f701.png

 

While monitoring or troubleshooting a platform you may notice a discrepancy between what object viewer displays for the Platform.CPULoad and the value seen in the task manager of the platform.

 

clipboard_eca38af578ec1ddeb28eafa8be4b567b6.png

 

 The following technote from AVEVA provides an explanation of how the values are calculated for the built-in attributes: How Engine.ProcessCPULoad in Multicore Environment is Calculated and provides the reason for any discrepancy.

 For the most part, the OS manages its resources very well, but there are certain instances where Platform (engine) performance is bad, perhaps due to inadequate resources or an app is particularly intensive. In these scenarios one approach that can be useful in balancing the load can be to dedicate one core to a particular engine, for instance if the engine is very busy or if heavy attribute implementation is referenced. Once you identify an ‘engine’ that is busy, task manager has a feature that lets you set CPU affinity and assign any process(s) to run under a specific core.

With the engine module in question identified, from task manager right click on the process and select Go to details

 

clipboard_e69fbec7b802eab15ad0c763154311dae.png

 

The aaEngine.exe will be highlighted under the Details tab, Right click the .exe and select Set affinity

 

clipboard_e9b0c0980fc90158ea0bd1c6b7a1bbb79.png

 

From Processor affinity pop up you can Select the cores/logical cores you’d like to assign to process.

 

clipboard_e1056e16495951499aaa4a532c9b12e9f.png

  • Was this article helpful?