资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

扩充实例步骤

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

修改容器启动脚本

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

cd original/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端口的流量可以被正常处理。具体可参考标准模型部署文档中的测试代码用例。

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