################################################################################ # RhodeCode VCSServer with HTTP Backend - configuration # ################################################################################ [server:main] ## COMMON ## host = 0.0.0.0 port = 9900 ########################################################### ## WAITRESS WSGI SERVER - Recommended for Development #### ########################################################### use = egg:waitress#main ## number of worker threads threads = 5 ## MAX BODY SIZE 100GB max_request_body_size = 107374182400 ## Use poll instead of select, fixes file descriptors limits problems. ## May not work on old windows systems. asyncore_use_poll = true ########################## ## GUNICORN WSGI SERVER ## ########################## ## run with gunicorn --log-config vcsserver.ini --paste vcsserver.ini #use = egg:gunicorn#main ## Sets the number of process workers. More workers means more concurrent connections ## RhodeCode can handle at the same time. Each additional worker also it increases ## memory usage as each has it's own set of caches. ## Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more ## than 8-10 unless for really big deployments .e.g 700-1000 users. ## `instance_id = *` must be set in the [app:main] section below (which is the default) ## when using more than 1 worker. #workers = 2 ## Gunicorn access log level #loglevel = info ## process name visible in process list #proc_name = rhodecode_vcsserver ## type of worker class, currently `sync` is the only option allowed. #worker_class = sync ## The maximum number of simultaneous clients. Valid only for Gevent #worker_connections = 10 ## max number of requests that worker will handle before being gracefully ## restarted, could prevent memory leaks #max_requests = 1000 #max_requests_jitter = 30 ## amount of time a worker can spend with handling a request before it ## gets killed and restarted. Set to 6hrs #timeout = 21600 ## The maximum size of HTTP request line in bytes. ## 0 for unlimited #limit_request_line = 0 ## Limit the number of HTTP headers fields in a request. ## By default this value is 100 and can't be larger than 32768. #limit_request_fields = 32768 ## Limit the allowed size of an HTTP request header field. ## Value is a positive number or 0. ## Setting it to 0 will allow unlimited header field sizes. #limit_request_field_size = 0 ## Timeout for graceful workers restart. ## After receiving a restart signal, workers have this much time to finish ## serving requests. Workers still alive after the timeout (starting from the ## receipt of the restart signal) are force killed. #graceful_timeout = 3600 # The number of seconds to wait for requests on a Keep-Alive connection. # Generally set in the 1-5 seconds range. #keepalive = 2 ## Maximum memory usage that each worker can use before it will receive a ## graceful restart signal, e.g 10MB = 10485760 (10 * 1024 * 1024) # 0 = memory monitoring is disabled #memory_max_usage = 0 ## How often in seconds to check for memory usage for each gunicorn worker #memory_usage_check_interval = 60 ## Threshold value for which we don't recycle worker if GarbageCollection ## frees up enough resources. Before each restart we try to run GC on worker ## in case we get enough free memory after that, restart will not happen. #memory_usage_recovery_threshold = 0.8 [app:main] use = egg:rhodecode-vcsserver pyramid.default_locale_name = en pyramid.includes = ## default locale used by VCS systems locale = en_US.UTF-8 ## path to binaries for vcsserver, it should be set by the installer ## at installation time, e.g /home/user/vcsserver-1/profile/bin core.binary_dir = "" ## Custom exception store path, defaults to TMPDIR ## This is used to store exception from RhodeCode in shared directory #exception_tracker.store_path = ## Default cache dir for caches. Putting this into a ramdisk ## can boost performance, eg. /tmpfs/data_ramdisk, however this directory might require ## large amount of space cache_dir = %(here)s/rcdev/data ## cache region for storing repo_objects cache rc_cache.repo_object.backend = dogpile.cache.rc.file_namespace ## cache auto-expires after N seconds (2592000 == 30 days) rc_cache.repo_object.expiration_time = 2592000 ## cache file store path, if empty set automatically to tmp dir location #rc_cache.repo_object.arguments.filename = /tmp/vcsserver_cache.db ## max size of LRU, old values will be discarded if the size of cache reaches max_size rc_cache.repo_object.max_size = 100 ################################ ### LOGGING CONFIGURATION #### ################################ [loggers] keys = root, vcsserver [handlers] keys = console [formatters] keys = generic ############# ## LOGGERS ## ############# [logger_root] level = NOTSET handlers = console [logger_vcsserver] level = DEBUG handlers = qualname = vcsserver propagate = 1 ############## ## HANDLERS ## ############## [handler_console] class = StreamHandler args = (sys.stderr,) level = DEBUG formatter = generic ################ ## FORMATTERS ## ################ [formatter_generic] format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s datefmt = %Y-%m-%d %H:%M:%S