Server

Performance Recommendations

Updated: February 25, 2026

Here is a non-exhaustive list of recommendations to get better performance:

  • If you are doing an NXQL query that involves custom schemas, you may need to add custom indexes to make the request efficient.
  • Try to switch all page providers to Elasticsearch.
  • Use groups to manage ACLs. Adding a user to a group is free, but adding a user in an ACL at the document root level has a cost because optimized read ACLs need to be recomputed for all documents under the root.
  • Disable listeners that are not used (see the perf template above).
  • Use BIGINT document identifier instead of default UID. This is done by adding a <idType>sequence</idType> in the repository contribution.
  • Turn the Elasticsearch translog to async for all index.

  • Tune the Elasticsearch settings and mappings:

    • Remove the html_strip char filters if not needed (on repository and audit index), its indexing cost is high on CPU.
    • Remove the ecm:binarytext fulltext index if highlights are no needed.
       
  • Disable audit log on loginSuccess (see above perf template).
  • Increase the audit writer batch size (nuxeo.stream.audit.batch.size).
  • Consider disabling the OS swapping (sudo swapoff -a) or try to lower the swappiness (vm.swappiness=1).
  • Check the network latency between the application and the database.
  • Monitor everything: JVM, GC, VCS cache hit ratio, database, system.