Skip to main content

Optimization Guide

1. System Performance Optimization

1.1 Application Service Optimization

  • Backend Service Optimization

    • Log Level Adjustment: Recommended to set to WARNING or ERROR in production.
    • Concurrent Connection Optimization: Adjust system file descriptor limits.
    • API Service Cache Strategy Optimization.
    • Batch Data Processing Mechanism Optimization.
  • Message Broker Optimization

    • VerneMQ Concurrent Connection Configuration.
    • Message Queue Size Adjustment.
    • Message Persistence Strategy Optimization.
    • Session Cleanup Cycle Configuration.

1.2 System Resource Optimization

  • Operating System Level

    # Adjust system max file descriptors
    sysctl -w fs.file-max=1000000

    # Adjust system max connections
    sysctl -w net.core.somaxconn=65535

    # TCP Connection Optimization
    sysctl -w net.ipv4.tcp_max_syn_backlog=8192
  • Container Resource Configuration

    • Reasonably allocate container CPU limits.
    • Set appropriate memory limits.
    • Configure suitable Docker storage drivers.

2. Database Optimization

2.1 TDengine Optimization

  • System Configuration

    # Adjust write cache size
    cache = 2048

    # Optimize query cache
    queryBufferSize = 2048

    # Compression level setting
    comp = 2
  • Data Storage Optimization

    • Set reasonable data retention policies.
    • Optimize data partitioning strategies.
    • Configure data compression ratios.

2.2 PostgreSQL/TimescaleDB Optimization

  • Memory Configuration

    # Shared Buffers
    shared_buffers = RAM * 0.25

    # Working Memory
    work_mem = RAM * 0.025

    # Maintenance Working Memory
    maintenance_work_mem = RAM * 0.05
  • Connection Configuration

    # Max Connections
    max_connections = 200

    # Prepared Transactions
    max_prepared_transactions = 100

2.3 Redis Optimization

  • Memory Management

    # Max Memory Limit
    maxmemory 2gb

    # Memory Policy
    maxmemory-policy allkeys-lru
  • Persistence Configuration

    # RDB Config
    save 900 1
    save 300 10
    save 60 10000

3. Network Optimization

3.1 Load Balancing Optimization

  • Nginx Configuration

    # Worker Processes
    worker_processes auto;

    # Connections per Worker
    worker_connections 65535;

    # Enable Gzip Compression
    gzip on;
    gzip_min_length 1k;

3.2 Network Transmission Optimization

  • Enable Keep-Alive connections.
  • Configure appropriate timeout values.
  • Optimize TCP parameters.

4. Monitoring & Tuning Tools

4.1 System Monitoring

  • Use Prometheus + Grafana to monitor system metrics.
  • Configure alerts for key metrics.
  • Regularly check system performance reports.

4.2 Performance Analysis Tools

  • CPU Analysis: top, htop
  • Memory Analysis: free, vmstat
  • Disk I/O: iostat
  • Network Performance: netstat, iftop

5. Optimization Workflow

  1. Performance Benchmarking

    • Record current system performance metrics.
    • Identify performance bottlenecks.
  2. Formulate Optimization Plan

    • Prioritize based on monitoring data.
    • Evaluate costs and benefits of optimization.
  3. Step-by-Step Implementation

    • Adjust one parameter at a time.
    • Record the effects of adjustments.
  4. Verification

    • Compare performance before and after optimization.
    • Continuously monitor system stability.

6. Precautions

  • Optimization parameters should be adjusted based on actual hardware configuration.
  • Backup configurations before adjusting important parameters.
  • Production environment adjustments should be verified in a test environment first.
  • Maintain system monitoring to detect issues in time.
tip

The above configuration parameters are for reference only. Please adjust according to specific hardware configuration, business scenarios, and stress test results during actual deployment.