The heaviest part of Noodle is the RDBMS and to make it fast you need to:
- Upgrade software:
- Configure your software properly:
- set the DB to use your RAM, and otherwise optimize its settings (postgres.conf).
- set the HTTP pool sizes appropriately (server.xml).
- make sure the DB and temp folders are not virus scanned.
- remove or fix Windows domain if rights are timing out.
- make sure caching is enabled on client browsers.
- do backups and other CPU/RAM/disk heavy operations on the server after hours.
- PGSQL: REINDEX DATABASE noodledb; VACUUM ANALYZE;
- MSSQL: ALTER INDEX ALL ON table REBUILD; -- per table (although correct config should do that for you).
Options that make your RDBMS faster:
- More disk space if you're using a NTFS volume over 90%.
- As much RAM as possible (up to the size of your database+ whatever your OS uses) but at least 1GB + your index size:
- PGSQL: SELECT SUM(pg_indexes_size(oid)) FROM pg_class;
- MSSQL: SELECT SUM(used_page_count) FROM dm_db_partition_stats;
- Multi-core CPU (more than 4 cores has less effect and more than 30 is pointless).
- Putting as many HDD as you can in RAID_0 (you should see a linear performance boost) and /or using SSD or hybrid drives or hybrid volumes.
More, right from the source:
- Minimal: 500MHz CPU, 500MB RAM, 1GB HDD
- Small: 1GHz CPU, 1GB RAM, 1GB HDD
- Optimal: 4 core CPU(s), 4GB RAM, 1TB hybrid volume
- Large: 8 core CPU(s), 24GB RAM, 1TB SSD