Here is a general checklist for performance tuning & go-live in Java – Part 1:
- Servers: CPU, Memory, Threads, Network configurations, page size, hardening and more
- JVM: MBeans, Security, Garbage collection type and settings, Arguments, Heap, Version, Core allotment, Generations and more
- App server: Thread pool, JDBC/JNDI, Type of connection pooling, Session replication, caching, log rotation, log levels and more
- Database: Indexing, Thread pool, Privileges, Connections, Top queries/plans and more
- Network: Latency, DNS, Security, Firewalls/WAF/CDN
- Other components like search/filestores/integrations/etc.: Caching, thread pools and more
- VAPT/Security: SSL, OWASP, SAST/DAST, CSP, code quality and more
- Documentation on architecture, deployment, requirements, design and more
- APM/Monitoring tools – Instrumentation, gauges and more
- Thread profiling and heap dumps
- Service profile for APIs
- Code optimization
- Optimum auditing, reporting & SSO/IAM
- Reusable patterns / architecture styles and designs for performance, usability & security
- DevSecOps strategy and implementation
- DR strategy and implementation
- Regular load & performance tests
- Horizontal scaling / clustering & vertical scaling
- Rule of thumb: Work layer by layer and tackle the biggest problems first.
Email me: Neil@HarwaniSystems.in