diff --git a/docs/admin/tuning-increase-db-performance.rst b/docs/admin/tuning-increase-db-performance.rst --- a/docs/admin/tuning-increase-db-performance.rst +++ b/docs/admin/tuning-increase-db-performance.rst @@ -3,21 +3,6 @@ Increase Database Performance ----------------------------- -To increase database performance switch to database-based user sessions. -File-based sessions are only suitable for smaller setups. The most common -issue being 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. +For tuning PostgreSQL we recommend reading: http://www.revsys.com/writings/postgresql-performance.html -To switch to database-based user sessions uncomment the following section in -your :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file. - -.. code-block:: ini - - # db session - beaker.session.type = ext:database - - # adjust this property to include your database credentials - beaker.session.sa.url = postgresql://postgres:@localhost/rhodecode - beaker.session.table_name = db_session +For tuning MySQL we recommend reading: http://www.tecmint.com/mysql-mariadb-performance-tuning-and-optimization/ \ No newline at end of file diff --git a/docs/admin/tuning-rhodecode.rst b/docs/admin/tuning-rhodecode.rst --- a/docs/admin/tuning-rhodecode.rst +++ b/docs/admin/tuning-rhodecode.rst @@ -10,6 +10,7 @@ may find some of the following methods u tuning-gunicorn tuning-vcs-memory-cache + tuning-user-sessions-performance tuning-increase-db-performance tuning-scale-horizontally tuning-increase-cache-size diff --git a/docs/admin/tuning-user-sessions-performance.rst b/docs/admin/tuning-user-sessions-performance.rst new file mode 100644 --- /dev/null +++ b/docs/admin/tuning-user-sessions-performance.rst @@ -0,0 +1,60 @@ +.. _user-session-ref: + +Increase 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 memcached sessions. + +To switch to database-based user sessions uncomment the following section in +your :file:`/home/{user}/.rccontrol/{instance-id}/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 accoring to the type of database + beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode + 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 + + +To switch to memcached-based user sessions uncomment the following section in +your :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini` file. + +.. code-block:: ini + + ## memcached sessions + beaker.session.type = ext:memcached + beaker.session.url = localhost:11211 + + +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 \ No newline at end of file