开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
图像技术
文字识别
人脸与人体识别
视频技术
AR与VR
自然语言处理
知识图谱
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
智能农业
信息服务
智能园区
智能硬件
文字识别

    扩充实例步骤

    下文将以通用文字识别GPU版为例,详细展开说明应用服务实例扩容步骤。

    修改容器启动脚本

    1、首先进入部署包目录,检索模型模块命名

    cd origin/package/Install
    # 根据模型名称检索模块名
    python install.py se

    如【通用文字识别GPU】的模块名为ocr-general-gpu

    模块名: ocr-general-gpu, 中文名:通用文字识别GPU, 版本号:V2.2, 内置版本 2, 依赖模块 []

    进入work_dir目录下算子应用目录

    cd /home/baidu/work/ocr-general-gpu/start/

    如果要额外扩充9个实例,执行如下shell命令复制start-1.sh脚本

    注:实例的数量不要超过license中限制的实例数

    for i in $(seq 2 10); do cp start-1.sh start-$i.sh; done

    2、依次修改克隆的start-*.sh脚本,修改docker run的启动参数,包括

    1) 映射到宿主机的端口号

    2) docker容器的Name

    3) 为每一个docker容器指定一块显卡 (CPU模板不需要配置)

    请提前规划每个应用容器绑定的显卡编号,如下

    启动脚本名字 显卡编号
    start-1.sh 0
    start-2.sh 1
    …… ……
    start-10.sh 9

    image2021-9-2_15-19-42.png

    3、依次执行stat-*.sh脚本启动算子应用容器

    openresty 负载均衡配置

    1、前往work_dir下的openresty目录,可以看到以模型模块名称命名的.conf配置文件

    cd /home/baidu/work/openresty/conf/upstream && ll

    返回如下

    -rw-r--r-- 1 root root 81 1013 13:54 ocr-general-gpu.conf
    -rw-r--r-- 1 root root 24 1012 16:27 upstream-template

    2、修改ocr-general-gpu.conf文件配置参数

    文件内容如下,其中ip和port 为本机IP和算子容器映射在宿主机的端口号,假如通用文字识别GPU版本一共启动了10个实例

    upstream ocr-general-gpu {
    server ip:port1 max_fails=3 fail_timeout=30;
    server ip:port2 max_fails=3 fail_timeout=30;
    server ip:port3 max_fails=3 fail_timeout=30;
    server ip:port4 max_fails=3 fail_timeout=30;
    server ip:port5 max_fails=3 fail_timeout=30;
    server ip:port6 max_fails=3 fail_timeout=30;
    server ip:port7 max_fails=3 fail_timeout=30;
    server ip:port8 max_fails=3 fail_timeout=30;
    server ip:port9 max_fails=3 fail_timeout=30;
    server ip:port10 max_fails=3 fail_timeout=30;
    }

    3、修改/home/baidu/work/openresty/conf/vhost/vhost.conf

    内容如下:

    server {
    listen 8666; #负载均衡(LB)的端口号,可自定义修改。流量统一发送给该端口号,然后通过openresty将流量转发给后端算子应用端口号
    server_name 127.0.0.1; #本机IP地址,默认值
    port_in_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
     
    location / {
      set $group_name '模型名称'; # 修改模型名称为模型模块名,如ocr-general-gpu,与第2步定义的upstream名一致
      proxy_pass http://模型名称/; # 修改模型名称为模型模块名,如ocr-general-gpu,与第2步定义的upstream名一致
      proxy_read_timeout 10;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-for $remote_addr;
      }
    }

    4、重启使其生效

    # 强制删除现有的nginx-1 容器
    docker rm -f nginx-1
    
    # 启动nginx容器 
    cd /home/baidu/work/openresty && bash start/start-1.sh

    更新license

    如果您的实例数超过了旧license中实例数限制,需要重新申请license后对license做更新操作。

    # 找到新申请的license升级包的路径,建议部署包以 baidu_ocr_日期命名
    cd original/package/Install
    
    # lu, licenseupdate: 更新license文件,适用于授权延期、实例数扩容、增加产品授权
    python install.py lu

    验证

    1、首先验证负载均衡容器状态可用

    [root@instance-wch0lkwp Install]# docker ps
    CONTAINER ID        IMAGE      COMMAND                  CREATED             STATUS                         PORTS                    NAMES
    c1643ee21c44        registry.baidu.com/aipe/openresty:1.11.2.3-trusty                        "/usr/local/openre..."   40 seconds ago      Up 3 seconds                              nginx-1

    2、测试发往LB端口的流量可以被正常处理。具体可参考标准模型部署文档中的测试代码用例。

    上一篇
    修改模型服务端口号
    下一篇
    鉴权服务重启