.. _increase-gunicorn: Increase Gunicorn Workers ------------------------- .. important:: If you increase the number of :term:`Gunicorn` workers, you also need to increase the threadpool size of the VCS Server. The recommended size is 6 times the number of Gunicorn workers. To set this, see :ref:`vcs-server-config-file`. |RCE| comes with `Gunicorn`_ packaged in its Nix environment. To improve performance you can increase the number of workers. To do this, use the following steps: 1. Open the :file:`home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file. 2. In the ``[server:main]`` section, increase the number of Gunicorn ``workers`` using the following formula :math:`(2 * Cores) + 1`. .. code-block:: ini [server:main] host = 127.0.0.1 port = 10002 use = egg:gunicorn#main workers = 1 threads = 1 proc_name = RhodeCodeEnterprise worker_class = sync max_requests = 1000 timeout = 3600 3. In the ``[app:main]`` section, set the ``instance_id`` property to ``*``. .. code-block:: ini # In the [app:main] section [app:main] # You must set `instance_id = *` instance_id = * 4. Save your changes. 5. Restart your |RCE| instance, using the following command: .. code-block:: bash $ rccontrol restart enterprise-1 If you scale across different machines, each |RCM| instance needs to store its data on a shared disk, preferably together with your |repos|. This data directory contains template caches, a whoosh index, and is used for task locking to ensure safety across multiple instances. To do this, set the following properties in the :file:`rhodecode.ini` file to set the shared location across all |RCM| instances. .. code-block:: ini cache_dir = /file/path # set to shared location search.location = /file/path # set to shared location #################################### ### BEAKER CACHE #### #################################### beaker.cache.data_dir = /file/path # set to shared location beaker.cache.lock_dir = /file/path # set to shared location Gunicorn SSL support -------------------- :term:`Gunicorn` wsgi server allows users to use HTTPS connection directly without a need to use HTTP server like Nginx or Apache. To Configure SSL support directly with :term:`Gunicorn` you need to simply add the key and certificate paths to your configuration file. 1. Open the :file:`home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file. 2. In the ``[server:main]`` section, add two new variables called `certfile` and `keyfile`. .. code-block:: ini [server:main] host = 127.0.0.1 port = 10002 use = egg:gunicorn#main workers = 1 threads = 1 proc_name = RhodeCodeEnterprise worker_class = sync max_requests = 1000 timeout = 3600 # adding ssl support certfile = /home/ssl/my_server_com.pem keyfile = /home/ssl/my_server_com.key 4. Save your changes. 5. Restart your |RCE| instance, using the following command: .. code-block:: bash $ rccontrol restart enterprise-1 After this is enabled you can *only* access your instances via https:// protocol. Check out more docs here `Gunicorn SSL Docs`_ .. _Gunicorn: http://gunicorn.org/ .. _Gunicorn SSL Docs: http://docs.gunicorn.org/en/stable/settings.html#ssl