#8262 System configuration for production environment

unreleased
open
nobody
None
General
nobody
2018-11-20
2018-11-12
Vrinda A
No

I am setting up a production server to host Allura platform.

So I have some general questions before I start:
1. What is the expected system requirement/configuration for a production server to host Allura?
2. Are there any specific configurations that I need to do in Allura to get a good performance when the load is high (for >100 users)?
3. Any other points that I need to be aware about?

Discussion

  • Vrinda A - 2018-11-12

    Do you recommend running MongoDB and Allura on separate servers?

     
  • Dave Brondsema

    Dave Brondsema - 2018-11-13

    Hi Vrinda,

    The overall system requirements depend largely on how much traffic and how much data (repos, tickets, etc) will be in the system.

    • MongoDB - I would recommend having MongoDB on a separate server (and potentially as a replica set, for failover).
    • Web service - See for recommendations about the webserver: https://forge-allura.apache.org/docs/getting_started/installation.html#production-quality-web-server If you need to scale up further, you can have multiple servers running the allura web services, with a load balancer in front.
    • Solr - You can also have the solr server separate, and multiple of them if you want.
    • Taskd - You should run multiple taskd processes. They can be all on their own server, or multiple servers, or shared with another server if there is enough ram/cpu for it.

    To configure Allura for good performance, see production-docker-example.ini. It is good to look through all of it, but lines 75-79 are particularly important for performance.

    -Dave

     
    👍
    1
  • Vrinda A - 2018-11-14

    Thank you very much Dave :)
    I'll start with splitting MongoDB from the Allura server.

    I looked around to find how I can set up MongoDB on a separate server and make it accessible from Allura server.

    One hint that I got to make the MongoDB server accessible from Allura server is to change the bind_ip configuration in /etc/mongod.conf to point to 0.0.0.0 so as to allow any IP to access it
    Is this all I have to do on the MongoDB server?

    And in Allura's development.ini, change:
    activitystream.master = mongodb://<mongodb ip="" server's="">:27017
    and ming configurations to point to the MongoDB server.
    Anything else that I need to change in Allura configurations?</mongodb>

     
    • Dave Brondsema

      Dave Brondsema - 2018-11-15

      Yep, activitystream and ming entries in the .ini file are the only settings you need to change for it.

      Depending on your network/firewall setup, make sure that your mongodb server is not accessible to the outside world.

       
  • Vrinda A - 2018-11-20

    I sometimes see INFO messages 'Handling signal: winch' in the gunicorn terminal after which the application no longer responds. Why does this happen?

     

Log in to post a comment.