don't stop believing

nGrinder Controller 설정 본문

Testing Automation/nGrinder

nGrinder Controller 설정

Tongchun 2017. 9. 19. 16:00

nGrinder를 사용하다보면 간혹 Configuration을 확인해야 할 때가 있다.

가장 흔한 경우가 validation_timeout 이랑 max_vuser_per_agent 이다.


nGrinder 설정은 상단 메뉴의 admin > System Configuration 에 있다.


vUser 생성 수 설정

# The maximum number of vusers which can be initiated per one agent
# This should be carefully selected depending on the agent memory size.
controller.max_vuser_per_agent=10000

max vuser per agent의 기본값은 300이다. Agent당 3000을 못넘어가기 때문에 Agent의 CPU, Memory 사용율을 확인하고 적당히 늘려 주는것이 좋다. Agent 장비가 4Core / 4G RAM일 경우 1만개가 적정수치이다.


Vaildation Timeout 설정

# validation timeout in the unit of sec.
controller.validation_timeout=300

validation time이 기본 100초로 설정되어 있어서 스크립트를 검증할때 스크립트가 길어지거나 sleeptime이 적용될 경우 100초를 넘어갈 수 있다. 적당히 5분(300초)로 설정하고 진행하면 좋다.


max run hour 설정

Cruse 테스트 진행시 8시간 이상넘기는 경우가 간혹 있다. 최장 15시간동안 성능 테스트를 진행하며 Memory 증감율을 확인하는 경우도 있다. 경우에 따라 새벽 시간 cron등을 이용해 서버에서 통계작업을 할 경우의 성능 상태를 확인해야 하는 경우도 있기 때문에 max run hour를 적절히 조정하는 것이 좋다.

# The maximum running hour for one test.
controller.max_run_hour=16

전체 설정 항목은 아래 내용을 참고하도록 하자.

# Set verbose to print the detailed log 
#controller.verbose=true

# If dev_mode is true, the log goes to stdout and
# the security mode and cluster config verification are disabled.
# In addition, agent force update and auto approval is enabled.
# finally the script console is activated as well.
#controller.dev_mode=false

# true if enabling security manager. The default value is false
#controller.security=false

# true if the password change should not be allowed.
#controller.demo_mode=false

# false if disabling usage report. it will send host ip and executed tests number to Google Analytics.
# The default value is true
#controller.usage_report=true


# true if the plugin should be enabled.
# This is not the option applied on the fly. You need to restart the controller.
#controller.plugin_support=true

# false if you want to make some of the user profile fields not mandatory. Default value is false.
#controller.user_security=false

# true if you want to controller uses high level password encoding(sha256).
#controller.user_password_sha256=false


# The maximum number of agents which can be attached per one test.
#controller.max_agent_per_test=10

# The maximum number of vusers which can be initiated per one agent
# This should be carefully selected depending on the agent memory size.
controller.max_vuser_per_agent=10000

# The maximum test runcount for one thread
#controller.max_run_count=10000

# The maximum running hour for one test.
controller.max_run_hour=16

# The maximum count of concurrent tests.
#controller.max_concurrent_test=10

# The monitor connecting port. The default value is 13243.
#controller.monitor_port=13243

# The base URL of the controller. If not set, the controller URL is automatically selected.
#controller.url=

# The host name or IP of agents connection to the controller.
# If not set, controller binds to all currently available IPs.
#controller.host=

# The port for the agents connection to the controller. The default value is 16001
#controller.controller_port=16001

# The starting port number of consoles which will be mapped to each test.
# This is not the option applied on the fly. You need to reboot to apply this.
#controller.console_port_base=12000

# validation timeout in the unit of sec.
controller.validation_timeout=300

# true if you want to make the script console available to diagnose ngrinder controller.
#controller.enable_script_console=false

# true if you want to make the agent automatically approved. The default value is false
#controller.enable_agent_auto_approval=false

# If your agent is located in the far places and the transmission is not reliable, you'd better to change this to true.
#controller.safe_dist=false

# Set the safe distribution threshold to enable safe distribution for specific transfer size by force.
#controller.safe_dist_threshold=1000000

# true if you want to allow users to sign up by themselves.
#controller.allow_sign_up=true

# If you server is behind the firewall which blocks the external access. please make this false.
#controller.front_page_enabled=true

# Point your own resources rss in you want to show in the front page.
#controller.front_page_resources_rss=https://github.com/naver/ngrinder/wiki.rss

# You can point your own QnA rss in the front page
#controller.front_page_qna_rss=

# You can point your own QnA ask a question URL
#controller.front_page_ask_question_url=

# You can point your own QnA site URL
#controller.front_page_qna_more_url=

# If you want to provide your own custom help page. please modify this
#controller.help_url=https://github.com/naver/ngrinder/wiki

# How much size of each agent update package is. The default is 1024*1024
# If it's bigger, agent update speed is higher but easy to be broken.
#controller.update_chunk_size=1024576

# Make the agent always updated even when the the same or latest agent is already deployed.
#controller.agent_force_update=false

# The default user language. en/kr/cn are available.
#controller.default_lang=en

# The default inactive client time out milliseconds.
# It might affect to make timed out of the socket connection between the console and the agent.
# If it didn't set or less than 0, it will use 30000 as the default.
#controller.inactive_client_time_out=30000

# The default value false
# If you set true, it provides statistic data(json format) as ehcache, dbcp, and so on by using restful api.
# Now, it supports http://HOST/stat APIs.
#controller.enable_statistics=true

# separator for csv report. comma is the default. tab/semicolon can be specified.
#controller.csv_separator=comma

######################################################################################
# clustering configuration.
# This is not the option applied on the fly. You need to reboot to apply this.
######################################################################################
# These should be very carefully set. 
# You can refer http://www.cubrid.org/wiki_ngrinder/entry/controller-clustering-guide

# if you want to enable controller clustering. please enable below.
#cluster.enabled=false

# comma separated IP list of all clustered controller servers.
#cluster.members=192.168.1.1;192.168.2.2;192.168.3.3

# cluster communication port. This port should be same across the controllers if advanced cluster mode is enabled.
#cluster.port=40003


# Followings are options which should be set in ${NGRINDER_EX_HOME}!!
#
# Region setting for the current controller.
# When running cluster mode, the ${NGRINDER_HOME} should be shared via NFS by multiple controllers.
# Which means the controllers share same system.conf file and have same properties.
# However each controllers should looks different region info. To make it possible
# The following options should be defined in ${NGRINDER_EX_HOME}(by default it's .ngrinder_ex/system-ex.conf
# which is not shared via NFS, so that each node cluster looks different value.

#Console binding IP of this region. If not set, console will be bound to all available IPs.
#cluster.host=

# cluster communication port. This port should be different across the controllers if easy cluster mode is enabled.
#cluster.port=40003

#cluster.region=Beijing

# true if the current region should be hide
#cluster.hidden_region=false

# true if the current region's file distribution should be done in safe way.
#cluster.safe_dist=false


'Testing Automation > nGrinder' 카테고리의 다른 글

nGrinder에서 json 다루기  (0) 2018.10.24
CentOS에 nGrinder 설치 하기 (v3.4)  (0) 2017.10.11
Ubuntu에 nGrinder 설치 하기 (v3.4)  (0) 2017.09.05
Comments