This documentation applies to the 8.1 version of Remedy Action Request System, which is in "End of Version Support."

To view the latest version, select the version from the Product version menu.

Configuring private queue threads

This topic contains the following information:

In case of heavy workload, create Private Queues with specified threads counts to allocate resources to different workload components. This provides the following advantages:

  • Limits the number of threads for a particular component
  • Makes sure that the component’s workload does not directly interfere with the regular workload (running on fast and list threads) by executing the work in separate pools (Private Queues)
  • Restricts the amount of CPU that individual components use

You can tune most components to limit the number of BMC Remedy AR System server threads and configure the number of threads used internally by that component. To limit the number of AR System server threads, assign a Private-RPC-Socket (private queue) and set the appropriate minimum and maximum threads.

The following table lists tuning methods for several workload components.

Tip

Press f to open the page in full screen mode. Press Esc to exit the full screen mode.

Thread tuning for workload components

Component

Suggested Private-RPC-Socket setting

Where to configure the Private Queue to use

How to configure the internal thread count

Full-Text Search Engine

390602

In the ar.cfg (ar.conf) file, comment out the parameter for Private-RPC-Socket: 390602, if it exists. Because of this, the Full-Text Search Engine uses a single thread, which is recommended in most cases.

In the ARSystemInstallDirectory/pluginsvr/fts/pluginsvr_config.xml file,
enter the following setting: 
<numCoreThreads>10 
</numCoreThreads>

Email Engine

390681 2 2

Emaildaemon.properties
com.bmc.arsys.emaildaemon.
<serverName>.RPC=390681

The number of threads connecting to the AR System server is equal to the number of enabled mailboxes.

Flashboards

390619 1 2

Set the ARServerRpcNumber parameter in the
ARSystemInstallDirectory
/flashboards/server.conf
file.

Flashboards is single-threaded.

Note: For single threaded plug-ins, set the number of queue threads to be a maximum of 2. This makes sure that if one thread takes too long and times out, the plugin can connect back in on the second available thread.

CAI

390693 2 6

Open the CAI Plug-in Registry through Application Console >
Customer Configuration > Foundation > Advanced Options >
PlugIn Registry
.

In the CAI Plug-in Registry dialog box, either create a new entry
(if one does not exist for Private Queue 390693) or modify the
existing entry.

In the CAI Pool Configuration section, for pool 0, make sure the number of the threads is 6. The CAI plug-in for BMC Remedy IT Service Management uses pool 0. Another application uses pool 1000. The total of all pool threads is listed in the Total Threads field.

For more information about configuring CAI, see the article
The Pulse: Queues & Threads – Utilizing Private Queues on BMC Communities.

Overview Console

390685 4 6

Configure the APPQUERY  plug-in with the Plugin-Loopback-RPC-Socket user-defined property in the ARSystemInstallDirectory/ARSystem/pluginsvr/pluginsvr_config.xml file.

Set the value to the Private Socket number. For example, 390685.

In the ar.cfg file, allocate the private queue with threads.

For example: Private-RPC-Queue: 390685  2  4

Atrium Integration Engine

Use any available private socket from the range:

390621-390634

390636-390669

390680-390694

To set an Atrium Integration Engine default RPC-socket, edit the
aie.cfg file in the AtriumInstallDirectory/aie/service64/conf/ directory, and set the PrivateRPCPort  parameter.

To specify a private socket for each Exchange, go to the Connection Settings tab of the Data Exchange page for that Exchange; then clear Use default destination AR server, and specify the RPC Program Number.

In the Advanced tab of the Data Exchange page for each Exchange, provide a value for the Number of Threads.

The default value is 3. The maximum value is 49.

Normalization Engine

390699 <1 x #CPUs> <1 x #CPUs>

BMC Atrium Core Console > Normalization > Configuration Editor > System Configuration > CMDB RPC Queue

BMC Atrium Core Console > Normalization > Configuration Editor > System Configuration > Threads and Connections

Normalization Engine AR RPC Queue

390621 <1 x #CPUs> <1 x #CPUs>

BMC Atrium Core Console > Normalization > Configuration Editor > System Configuration > RPC Queue

This plugin automatically sizes itself based on the number of available threads in the defined RPC Queue.

Business Rule Engine

390625 1 2

BR-RPC-Socket: 390625

Single threaded.

Note: For single threaded plug-ins, set the number of queue threads to be a maximum of 2. This makes sure that if one thread takes too long and times out, the plugin can connect back in on the second available thread.

Approval Server

390680 3 10

Approval-RPC-Socket: 390680

For versions prior to 8.0, Approval server is single-threaded. Set 390680 1 2.  

Note: For single threaded plug-ins, set the number of queue threads to be a maximum of 2. This makes sure that if one thread takes too long and times out, the plugin can connect back in on the second available thread.

For version 8.0 and later, Approval Server is multi-threaded and runs as a Java plug-in.

Go to Approval Administration Console > Server Settings > Basic > Thread Count to set the number of threads that the Approval Server uses. This is the ASJ-Thread-Count option in the ar.cfg (ar.conf) file. Set Private-RPC-Socket: 390680 to match this number.

For example, set the Thread Count to 5, and set Private-RPC-Socket: 390680 5 5. If you have other highly intensive clients using the same private socket, set Private-RPC-Socket to a higher number.

Reconciliation Engine

390698 <1 x #CPUs> <1 x #CPUs>

Set the RE-RPC-Socket, either through BMC Atrium Core Console > Applications > Reconciliation > Server Configuration Editor > RPC Socket or manually using the ar.cfg (ar.conf) file.

Reconciliation Engine automatically detects and uses the number of threads available in this queue.

Note: BMC recommends that you use 390698 as the queue number since this queue is used out-of-the-box.

AREA-LDAP

Plugin-AREA-Threads (C-Plugin only)

ARDBC-LDAP

 

Plugin-ARDBC-Threads (C-Plugin only)

DSO

Use any available private socket from the range:

390621-390634

390636-390669

390680-390694

For a local server, go to AR System Administration Console > General > Server Information > Connection Settings > DSO Local RPC Program Number.

For a remote server, go to AR System Administration Console > General > Server Information > Connection Settings > DSO Server Setting Table.

Developer Studio > Distributed Pools > Create new pool.
Each pool is a single thread.

Note: Define the DSO Mappings to use a specific pool number otherwise the first pool number is used.

Plugin Loopback Socket390626 5 5

Set Plugin-Loopback-Socket: 390626 in the ar.cfg (ar.conf) file.

Some plug-ins automatically use the Plugin-Loopback-Socket, if they are not defined for a specific RPC queue.

This is the default socket that many plug-ins use, if they are not configured for a specific RPC socket.

Assignment Engine

390630 2 3

In the ar.cfg (ar.conf) file, set AE-RPC-Socket: 390630.

Go to Assignment Engine Administration Console > Server Settings > Number of threads.

The default value is 3.

C plug-ins

For any component that runs as a C plug-in, consider the number of fast, list, escalation, private threads that are likely to communicate simultaneously with the particular type of plug-in (AREA, ARDBC, Filter API) and set the appropriate option in the ar.cfg (ar.conf) file (Plugin-AREA-Threads, Plugin-ARDBC-Threads, and Plugin-Filter-API-Threads).

For example, suppose 4 escalations run on 4 separate escalation pools run nightly, and 10 list threads might access the ARDBC LDAP plug-in. In this case, you might need as many as 14 Plugin-ARDBC-Threads. If most users are not accessing the LDAP data during the time that the escalations run and only 20% of the user activity is likely to access the ARBDC-LDAP vendor form, then you might choose to set Plugin-ARDBC-Threads to 2 6.

You can set different minimums and maximums at first, and then monitor the plug-in log to see if more than the minimum threads are being used. Then you can target a value to use for both the minimum and maximum.

Java plug-ins

For any component that runs as a Java plug-in, you can configure the Java plug-in server to use a specific number of threads by adding the following parameter to the pluginsvr_config.xml file:

<numCoreThreads>12</numCoreThreads>

Since there is not a minimum and maximum, set this value to the value that would provide maximum performance without consuming too many resources. For example, the Full Text Search (FTS) engine runs in a Java plug-in server that does not service any other plug-ins. So, if 12 list threads are likely to access the FTS engine simultaneously, set this value to 12.

The Java Heap size can be manually set for each Java plug-in server. From the armonitor configuration file, locate the line that calls the specific Java instance that you want to configure. By looking at the --classpath parameter, you can identify the purpose for each Java instance. The Xmx parameter can be set to indicate the maximum size for the Java Heap. For example, "C:\Program Files\Java\jre6\bin\java" -Xmx512m --classpath sets the limit to 512 MB.

BMC Atrium CMDB thread sizing

BMC Atrium CMDB normalization and reconciliation processing are CPU intensive. By default, CMDB processes are executed using fast and list threads. Private queues allow you to restrict how much CPU is used by CMDB processes.

Normal day-to-day CMDB processing should not consume more than 20% of AR System server CPU capacity. The goal is to obtain optimal throughput for CMDB processing while not sacrificing response time for the users who are doing online transactions.

Configure a private queue with minimum and maximum thread settings of one times the number of CPU cores as the starting values. Adjust the thread settings based on the BMC Atrium CMDB workload, online workload, and thorough performance testing.

FTS thread sizing

The standard AR System server installation establishes a private queue for the FTS component. The default thread setting is 1 for minimum and maximum. Consider adjusting this setting upward if there is a backlog of entries to be indexed. This is most likely to happen during an initial index build or an index rebuild.

BMC Remedy Email Engine

You can configure and tune BMC Remedy Email Engine parameters to optimize outgoing email performance.

By default, outgoing email is set to use 4 threads by all outgoing mailboxes. This is sufficient if the outgoing email load is not heavy and you do not need emails sent quickly. However, if your Email Engine is installed on a system that is separate from the AR System server, you should configure for more outgoing email threads to allow for faster performance.

The number of sender threads can have a maximum value of 20. You can lower this setting if the Email Engine consumes more CPU cycles than you want. For example, if the email server is located with the AR System Integration Server, then allow some room for the AR System Integration Server to process other workloads during production hours. To change the number of sender threads, edit the following options in the EmailDaemon.properties file:

com.bmc.arsys.emaildaemon.NumberOfSenderThreads=20
com.bmc.arsys.emaildaemon.MailboxPollingUnitIsMinutes=false

In the AR System Email Mailbox Configuration form for outgoing mailbox configuration, you can also set the polling interval to be in seconds and indicate the number of seconds. This value indicates how often the Email Engine looks for AR Email Messages to process.

Incoming email uses one thread per incoming mailbox and cannot be changed. If you have changed the mailbox polling units to seconds, then you must also indicate the polling value for incoming mailbox. This value indicates how often the Email Engine looks for entries in your email server.

390621 - 390634

390636 - 390669

390680 - 390694

Related Topics

Defining queues and configuring threads

Private queues for loopback calls

This version of the documentation is no longer supported. However, the documentation is available for your convenience. You will not be able to leave comments.

Comments

  1. Wallace Roets

    This implies that both CAI and Plugin Loopback RPC uses the same port, is that what is intendent or perhaps an oversight?

    Mar 27, 2014 04:52
    1. Aparna Saxena

      Hi Wallace, thank you for your comment. I'll talk to the concerned SME and get back to you on it.

      Thanks,

      Aparna

      Apr 01, 2014 06:55
    1. Aparna Saxena

      Hi Wallace, thank you for your patience. As per my discussion with the SME, this is intentional. We want the plugin and the loopback to use the same port to save on additional port or thread usage.

      Hope that helps.

      Thanks,

      Aparna

      Apr 08, 2014 11:25
  2. Kiran Hullule

    May I know what is the significance of adding this?

    390621 - 390634

    390636 - 390669

    390680 - 390694

     

    Aug 08, 2014 07:46
  3. Kiran Hullule

    May I know what is the significance of adding this?

    390621 - 390634

    390636 - 390669

    390680 - 390694

     

    Aug 08, 2014 07:52
    1. Bhakti Paranjpe

      Hi Kiran,

      Thank you for your comment.

      390621 - 390634
      390636 - 390669
      390680 - 390694

      This is a range of Private Sockets. You can define Private Queues to use an available socket from this range.

      I have mentioned this significance in the above table. Hope that helps.

      Thanks,
      Bhakti

      Aug 18, 2014 12:35