##// END OF EJS Templates
Authentication: cache plugins for auth and their settings in the auth_registry....
Authentication: cache plugins for auth and their settings in the auth_registry. - Before that change on each requests 4x we loaded plugins for authentication, this hit many caches, db invalidation context and loaded the plugins logic each time. This was a heavy performance hit for SVN and other backends as they needed to load that plugins many many times - Since Authentication plugins almost never change, we'll not store the plugins listed for authentication into the authnregistry for each process - For AuthPlugins settings we now also flush plugins settings, and authnregistry cached plugins

File last commit:

r3693:f470fd2e new-ui
r4220:5a873939 stable
Show More
tuning-user-sessions-performance.rst
66 lines | 2.2 KiB | text/x-rst | RstLexer
/ docs / admin / system_admin / tuning / tuning-user-sessions-performance.rst

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:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.

## 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.

## 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 reds-based user sessions uncomment the following section in your :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file.

## redis sessions
beaker.session.type = ext:redis
beaker.session.url = localhost:6379

and make sure you comment out the file based sessions.

## types are file, ext:memcached, ext:database, and memory (default).
#beaker.session.type = file
#beaker.session.data_dir = %(here)s/data/sessions/data