KAE对Docker容器内Nginx的性能调优

在Docker容器内启动Nginx服务,并对比不使能和使能KAE时的性能测试结果。

  1. 修改Nginx配置文件,在容器内启动Nginx服务,为验证KAE对加解密性能的提升比例做准备。

    1. 打开“/usr/local/nginx/conf/nginx.conf”文件。
      1
      vi /usr/local/nginx/conf/nginx.conf
      
    2. “i”进入编辑模式,在文件中修改Nginx服务进程为4。当前Docker只绑定了4个core,那么Nginx服务进程也应为4。
      1
      2
      3
      4
      5
      6
      7
      8
      user root;
      worker_processes 4;
      worker_cpu_affinity
      100000000000000000000
      1000000000000000000000
      10000000000000000000000
      100000000000000000000000
      ;
      

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

  2. 在Docker容器内,不使能KAE,启动Nginx服务,进行压力测试。

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

      性能测试结果:服务器每秒完成2243次请求。

  3. 在Docker容器内,使能KAE,启动Nginx服务,进行压力测试。

    1. 在服务端上执行以下操作:
      1. 取消KAE环境变量,默认使用软算能力。
        1
        export OPENSSL_CONF=/home/openssl.cnf
        
      2. 启动Nginx服务,由3可知,该Docker已指定core为20-23,故无需在用taskset -c指定core,进程数为4,core数也为4。
        1
        /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
        
      3. 监控VF队列消耗情况。额外创建虚拟机化设备时,VF队列会变化,3个设备队列数变为768。当使用到KAE,VF队列会被消耗,会小于768。
        1
        watch -n 0.2 cat /sys/class/uacce/hisi_*/available_instances
        
    2. 在客户端上执行以下操作:
      使用HTTPress工具对服务器进行压力测试。
      1
      httpress -n 500000 -c 100 -t 100 https://192.168.5.71:20000/index.html
      

      性能测试结果:服务器每秒完成4368次请求。

      结合23的性能测试结果可以看到,使能KAE前后的性能值分别是2243、4368,性能约提升94%。