1、问题确认:接口调用出现大量的超时,业务使用等待*响应超3秒,已经严重影响生产进行。
2、分析步骤:
2.1测试算法引擎性能:
2.1.1将测试包上传到*
2.1.2 unzip TPS测试.zip
2.1.3 把scenario_split复制到引擎的docker根目录
docker cp scenario_split 61d36ec3de06:/
2.1.4 把libClientSDK.so复制到引擎的/models/generalocr_asyn_infer.pipeline目录下
docker cp libClientSDK.so 61d36ec3de06:/models/generalocr_asyn_infer.pipeline
2.1.5 进入docker的根目录,运行命令chmod+x scenario_split,添加可执行权限
docker exec -it 61d36ec3de06 bash
cd /
chmod +x scenario_split
2.1.6 在容器中增加环境变量:
export LD_LIBRARY_PATH=:/models/generalocr_asyn_infer.pipeline:/models/generalocr_asyn_infer.pipeline/lib
2.1.7 在容器跟目录运行以下命令即可测试引擎的TPS:./scenario_split ./testimg.txt yycd single 16
注释:
1)./testimg.txt,为测试图片的全路径,比如一张图的路径复制了800份,总测试图片为800个。
例如:./xx/xx.png
2)table,为测试的功能,这里传入yycd。
3)16,为并发数量,16并发代表开启16个线程同时向引擎发送请求,每个线程发送50个请求。
2.1.8 测试结果:测试引擎,GPU能吃到97%,tps:9.8
3、修复方法和优化方法:
3.1在程序优化之前使用手动备份表数据,清空表记录方式进行临时处理。
3.2程序端需要优化:“AI服务-OCR”-->“OCR调用流水功能”。
3.2.1 该功能不能产生性能问题。
3.2.2 OCR调用流水功能:
1)包含字段:时间,系统名称(留空),交易流水号(随机生成,可以留下),模型名称(notename:yycd),状态。
2)增加记录ip和端口或者URL(含完整的ip和URL,ip:port/ocr/youchu/4in1)。
3)增加记录调用方的ip。
4)日志永久保留
5)可以通过读写分离设计(必须)OCR_INFO_TABLE。
6)数据量估计800w/月