[ 
https://issues.apache.org/jira/browse/AMBARI-14690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Olivér Szabó updated AMBARI-14690:
----------------------------------
    Description: 
When an ambari agent starts, host system details are registered into ambari 
server database. These values are calculated by ambari-agents based on 
different files on the hosts (e.g : /proc/meminfo). 

In some cases it isn't a correct behavior: If ambari-agent is in a 
docker-container, it will see the same memory/cpu details. (stack advisor also 
uses these values, its possible stack advisor can recommend a too high memory 
value for some services)

Solution: Configurable system resources for hosts (ambari-agent).
Added new option to 'agent' section in ambari-agent.ini: 
system_resource_overrides. It points to a directory, if the value/directory 
does not exist or empty, it will use the default behavior

{code:java}
[agent]
...
system_resource_overrides=/etc/resource_overrides
...
{code}
It reads all json files from that directory. JSON structure looks like this:
{code:java}
{
"memoryfree" :  "15600",
"memorytotal" : ....
}
{code}

In ambari-agent Facter.py set these values, all of the factor info values can 
be redefined in one or multiple JSON files.
That means ambari is not responsible to gather these values from the system.

- use case: 
During 'docker run' , before 'ambari-agent start', 'system_resource_overrides' 
value can be overwritten, or the default ('/etc/resource_overrides') can be 
mount with '-v' flag (docker run -v /my/path:/etc/resource_overrides).

Facter.py is called during ambari-agent start, so if the values will be 
modified later, ambari-agent needs to be restarted.



  was:
When an ambari agent starts, host system details are registered into ambari 
server database. These values are calculated by ambari-agents based on 
different files on the hosts (e.g : /proc/meminfo). 

In some cases it isn't a correct behavior: If ambari-agent is in a 
docker-container, it will see the same memory/cpu details. (stack advisor also 
uses these values, its possible stack advisor can recommend a too high memory 
value for some services)

Solution: Configurable system resources in ambari-agent.ini
Added new option to 'agent' section: system_resource_overrides. It points to a 
directory, if the value/directory does not exist or empty, it will use the 
default behavior

{code:java}
[agent]
...
system_resource_overrides=/etc/resource_overrides
...
{code}

{code:java}

{code}

In ambari-agent Facter.py set these values, all of the factor info values can 
be redefined in ambari-agent.ini file.

That means ambari is not responsible to gather these values from the system.

- use case: 
During 'docker run' , if there is a script which calls 'ambari-agent start', 
before that, some of the memory values can be replaced/inserted into the 
ambari-agent.ini file in that script. (e.g. the user knows that, 4 ambari-agent 
containers will be started, with the same services, so the real memory needs to 
be devided by 4 etc.)

Facter.py is called during ambari-agent start, so if the values will be 
modified later, ambari-agent needs to be restarted.




> Configurable system resource values for ambari-agent
> ----------------------------------------------------
>
>                 Key: AMBARI-14690
>                 URL: https://issues.apache.org/jira/browse/AMBARI-14690
>             Project: Ambari
>          Issue Type: Improvement
>          Components: ambari-agent
>    Affects Versions: 2.2.0
>            Reporter: Olivér Szabó
>            Assignee: Olivér Szabó
>             Fix For: 2.2.2
>
>         Attachments: AMBARI-14690.patch, AMBARI-14690_v4.patch
>
>
> When an ambari agent starts, host system details are registered into ambari 
> server database. These values are calculated by ambari-agents based on 
> different files on the hosts (e.g : /proc/meminfo). 
> In some cases it isn't a correct behavior: If ambari-agent is in a 
> docker-container, it will see the same memory/cpu details. (stack advisor 
> also uses these values, its possible stack advisor can recommend a too high 
> memory value for some services)
> Solution: Configurable system resources for hosts (ambari-agent).
> Added new option to 'agent' section in ambari-agent.ini: 
> system_resource_overrides. It points to a directory, if the value/directory 
> does not exist or empty, it will use the default behavior
> {code:java}
> [agent]
> ...
> system_resource_overrides=/etc/resource_overrides
> ...
> {code}
> It reads all json files from that directory. JSON structure looks like this:
> {code:java}
> {
> "memoryfree" :  "15600",
> "memorytotal" : ....
> }
> {code}
> In ambari-agent Facter.py set these values, all of the factor info values can 
> be redefined in one or multiple JSON files.
> That means ambari is not responsible to gather these values from the system.
> - use case: 
> During 'docker run' , before 'ambari-agent start', 
> 'system_resource_overrides' value can be overwritten, or the default 
> ('/etc/resource_overrides') can be mount with '-v' flag (docker run -v 
> /my/path:/etc/resource_overrides).
> Facter.py is called during ambari-agent start, so if the values will be 
> modified later, ambari-agent needs to be restarted.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to