KAE对Nginx处理HTTPS连接请求的性能调优

通过配置OpenSSL和Nginx以使用KAE,并比较使能和未使能KAE时Nginx处理HTTPS连接请求的性能提升效果。

  1. 创建并配置OpenSSL配置文件,使Nginx可以使用KAE。

    1. 创建文件openssl.cnf。
      1
      vi openssl.cnf
      
    2. “i”进入编辑模式,在配置文件openssl.cnf添加以下内容后,将openssl.cnf放在“/home”目录下。
      openssl_conf=openssl_def
      [openssl_def]
      engines=engine_section
      [engine_section]
      kae=kae_section
      [kae_section]
      engine_id=kae
      dynamic_path=/usr/local/lib/engines-1.1/kae.so
      default_algorithms=ALL
      init=1
    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    4. 使能KAE。
      1
      export OPENSSL_CONF=/home/openssl.cnf
      

  2. 修改Nginx配置文件,为Nginx性能测试作准备,以比较开启和未开启KAE时Nginx处理HTTPS连接请求的性能。

    1. 打开“/usr/local/nginx/conf/nginx.conf”文件。
      1
      vi /usr/local/nginx/conf/nginx.conf
      
    2. “i”进入编辑模式,将文件中的ssl_ciphers改成AES256-GCM-SHA384,即改为使用RSA算法套。
      1
      ssl_ciphers  AES256-GCM-SHA384;
      

    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  3. 不使能KAE,启动Nginx服务,进行压力测试。

    1. 在服务端上执行以下操作:
      1. 取消KAE环境变量,默认使用软算能力。
        1
        unset OPENSSL_CONF
        
      2. 启动Nginx服务。
        1
        taskset -c 16-25 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
        
      3. 监控VF队列消耗情况。
        不额外创建虚拟机化设备时,VF队列默认为256。当未使用到KAE,VF队列不会被消耗,也就是默认的256。
        1
        watch -n 0.2 cat /sys/class/uacce/hisi_*/available_instances
        
    2. 在客户端上执行以下操作:
      使用HTTPress工具对服务器进行压力测试。
      1
      httpress -n 500000 -c 100 -t 100 https://IP:port/index.html
      

      命令参数说明如下:

      • -n:请求数。
      • -t:线程数。
      • -c:并发数。
      • IP:被测服务器的IP地址。
      • port:被测服务器的端口号。

      使能KAE前的性能测试结果:服务器每秒完成5330次请求。

  4. 使能KAE,启动Nginx服务,进行压力测试。

    1. 在服务端上执行以下操作:
      1. 设置KAE环境变量,默认使用KAE硬算能力。
        1
        export OPENSSL_CONF=/home/openssl.cnf  
        
      2. 启动Nginx服务。
        1
        taskset -c 16-25 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
        
      3. 监控VF队列消耗情况。不额外创建虚拟机化设备时,VF队列默认为256。当使用到KAE,VF队列会被消耗,也就是小于256。
        1
        watch -n 0.2 cat /sys/class/uacce/hisi_*/available_instances
        
    2. 在客户端上执行以下操作:
      使用HTTPress工具对服务器进行压力测试。
      1
      httpress -n 500000 -c 100 -t 100 https://IP:port/index.html
      

      命令参数说明如下:

      • -n:请求数。
      • -t:线程数。
      • -c:并发数。
      • IP:被测服务器的IP地址。
      • port:被测服务器的端口号。

      使能KAE后的性能测试结果:服务器每秒完成10700次请求。

      结合34的性能测试结果可以看到,使能KAE前后的性能值分别是5330、10700,性能约提升100%。