67 lines
No EOL
2.2 KiB
ReStructuredText
67 lines
No EOL
2.2 KiB
ReStructuredText
.. _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 |