.. _user-session-ref: User Session Performance ------------------------ The default file-based sessions are only suitable for smaller setups, or instances that doesn't have a lot of users or traffic. They are set as default option because it's setup-free solution. The most common issue of file based sessions are file limit errors which occur if there are lots of session files. Therefore, in a large scale deployment, to give better performance, scalability, and maintainability we recommend switching from file-based sessions to database-based user sessions or Redis based sessions. To switch to database-based user sessions uncomment the following section in your :file:`config/_shared/rhodecode.ini` file. .. code-block:: ini ## db based session, fast, and allows easy management over logged in users beaker.session.type = ext:database beaker.session.table_name = db_session # use just one of the following according to the type of database beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode # or beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode beaker.session.sa.pool_recycle = 3600 beaker.session.sa.echo = false and make sure you comment out the file based sessions. .. code-block:: ini ## types are file, ext:memcached, ext:database, and memory (default). #beaker.session.type = file #beaker.session.data_dir = %(here)s/data/sessions/data The `table_name` will be automatically created on specified database if it isn't yet existing. Database specified in the `beaker.session.sa.url` can be the same that RhodeCode uses, or if required it can be a different one. We recommend to use the same database. To switch to redis-based user sessions uncomment the following section in your :file:`config/_shared/rhodecode.ini` file. .. code-block:: ini ## redis sessions beaker.session.type = ext:redis beaker.session.url = localhost:6379 and make sure you comment out the file based sessions. .. code-block:: ini ## types are file, ext:memcached, ext:database, and memory (default). #beaker.session.type = file #beaker.session.data_dir = %(here)s/data/sessions/data