Select to view content in your preferred language

Clarification on memAvailGBmin in the ArcSoc Optimizer Report

262
4
Jump to solution
11-01-2024 12:37 PM
JoeGuziStarkCountyOH
Frequent Contributor

Greetings,

I would like some clarification on what the memAvailGBmin field in the ArcSoc Optimizer Report. I looked it up in the User Guide, and I'm having trouble determining if I need to change the parameters of the config file. I mainly want to confirm best practices for adjusting the parameter to ensure that it is making the proper recommendations based on the amount of RAM I have in my environment. Thank you in advance for any assistance with this. Have a delightful day.

Sincerely,

Joe Guzi

Tags (2)
0 Kudos
1 Solution

Accepted Solutions
StevenB
Occasional Contributor

You mentioned you are only running the tool in Read-only mode so none of these settings will come into consideration for your execution until you run in Edit mode.

As mentioned in the help:

3.7.1 memory_available_GB
In edit mode, after each service adjustment, ArcSOCOptimizer checks average memory available across all machines. If available memory is below this limit, the tool will stop execution.


As the help states if running in Edit mode, if the ArcSOC Optimizer converted one of your Shared instance services to a dedicated service with a fictional recommendation of 2 Min and 4 Max instances and your GIS Server host has less than 1 GB of RAM available it will stop executing and not convert any more services until more memory is allocated or made available to the host. 
 

3.7.2 min_ceil
This is maximum (ceiling) value for min instance setting. In general, this value should be less than or equal the number of logical cores.


In Edit mode, using the same scenario above if you had a 4 core GIS Server with hyperthreading (8 logical cores) then the ArcSOC Optimizer will only be allowed to allocate up to 8 Min dedicated instances for a very popular service that has high usage. ArcSOC processes are CPU bound so there is no point in setting this any higher than the number of logical processors available to the system.

3.7.3 max_min_diff
The max instance value is set as (min instance + max_min_diff). For example, if max_min_diff=2 and recommended min=4, the would be calculated as max=4+2=6


In Edit mode this setting specifies what the dedicated Max instance value can be set to for ArcGIS Server's built-in auto scaling. 

View solution in original post

0 Kudos
4 Replies
StevenB
Occasional Contributor

ArcSOC Optimizer can be ran in two ways.

  1. By default it runs in a "read-only mode" exporting a CSV that can be viewed in Excel and converted into a table. This report gives you recommendations from the metrics captured in ArcGIS Monitor and your ArcGIS Server referenced service configurations. (i.e. convert services to or from Shared Instances, increase/decrease dedicated Min and Max instances).

  2. The ArcSOC Optimizer script can also be ran in an "Edit mode" where depending on the your GIS Server's requests captured in ArcGIS Monitor metrics it can make the recommended changes for you automatically. 
    edit:false/true
    False executes in read only and produces a list of recommendation. Start with False, review and validate the results. Once validated, execute true.


Its the 2nd method "Edit mode" where you have to worry about the "memAvailGBmin" or fill out any of the information below except "host_address" which is always required. 

"arcgis_server":{
"server_admin_url": "https://xyzx:6443/arcgis",
"token_url": "https://xyz:6443/arcgis/admin/generateToken",
"client":"requestip",
"referer":"referer",
"username": "xyz",
"password": "xyz",
"host_address":["xyz"]
},

 

memory_available_GB:
In edit mode, after each service adjustment, ArcSOCOptimizer checks average memory available across all machines. If available memory is below this limit, the tool will stop execution.

 

What the above Help is telling you is if some services are recommended to move from Shared to Dedicated instances then only do so if enough memory is available on the GIS Server host.

I always recommend clients to first start off with running in read-only mode and make the changes manually.
Some don't even like the thought of the script making changes to their service configurations automatically while others love the idea. You do not need to run in Edit mode if you don't want to.

In any case understand what the recommendations are and that by default the script only uses 7 days of metrics for its analysis (which can be changed). Your users usage patterns can also change from week to week or month to month depending on projects, holiday's or seasonal work, I recommended running the script on regular basis because of this.  

I do love this utility as it helps GIS administrators understand how to best tune their service configurations based on raw metrics. I often see high usage services placed in the Shared instance pool and low usage services with a high number of Dedicated instances, as either the publishers or administrators might not have known how popular these services would be.

JoeGuziStarkCountyOH
Frequent Contributor

Greetings @StevenB ,

Thank you for your response. I think that helped, but I'm not confident... I understand how the tool works and that it should be run regularly. I am one of the read only folks you mentioned..lol. What you said, about the memory_available_GB helped. My concern is if I have the config set up correctly for my environment.. Specifically:

"limits":{
            "memory_available_GB":1,
            "min_ceil":8,
            "max_min_diff":2
        },

Do you know anything about what this is supposed to be set to and how to figure out the values? I'm just working with the default values, but I am not confident they are correct for my environment. Thank you for everything and have a delightful day.

Sincerely,

Joe Guzi

0 Kudos
StevenB
Occasional Contributor

You mentioned you are only running the tool in Read-only mode so none of these settings will come into consideration for your execution until you run in Edit mode.

As mentioned in the help:

3.7.1 memory_available_GB
In edit mode, after each service adjustment, ArcSOCOptimizer checks average memory available across all machines. If available memory is below this limit, the tool will stop execution.


As the help states if running in Edit mode, if the ArcSOC Optimizer converted one of your Shared instance services to a dedicated service with a fictional recommendation of 2 Min and 4 Max instances and your GIS Server host has less than 1 GB of RAM available it will stop executing and not convert any more services until more memory is allocated or made available to the host. 
 

3.7.2 min_ceil
This is maximum (ceiling) value for min instance setting. In general, this value should be less than or equal the number of logical cores.


In Edit mode, using the same scenario above if you had a 4 core GIS Server with hyperthreading (8 logical cores) then the ArcSOC Optimizer will only be allowed to allocate up to 8 Min dedicated instances for a very popular service that has high usage. ArcSOC processes are CPU bound so there is no point in setting this any higher than the number of logical processors available to the system.

3.7.3 max_min_diff
The max instance value is set as (min instance + max_min_diff). For example, if max_min_diff=2 and recommended min=4, the would be calculated as max=4+2=6


In Edit mode this setting specifies what the dedicated Max instance value can be set to for ArcGIS Server's built-in auto scaling. 

0 Kudos
JoeGuziStarkCountyOH
Frequent Contributor

@StevenB 

Awesome. Thank you. That helped.

0 Kudos