You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

serving.sh 3.1 kB

5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #!/bin/bash
  2. export GLOG_v=1
  3. export DEVICE_ID=1
  4. MINDSPORE_INSTALL_PATH=$1
  5. CURRPATH=$(cd $(dirname $0); pwd)
  6. CURRUSER=$(whoami)
  7. PROJECT_PATH=${CURRPATH}/../../../
  8. ENV_DEVICE_ID=$DEVICE_ID
  9. echo "MINDSPORE_INSTALL_PATH:" ${MINDSPORE_INSTALL_PATH}
  10. echo "CURRPATH:" ${CURRPATH}
  11. echo "CURRUSER:" ${CURRUSER}
  12. echo "PROJECT_PATH:" ${PROJECT_PATH}
  13. echo "ENV_DEVICE_ID:" ${ENV_DEVICE_ID}
  14. MODEL_PATH=${CURRPATH}/model
  15. export LD_LIBRARY_PATH=${MINDSPORE_INSTALL_PATH}/lib:/usr/local/python/python375/lib/:${LD_LIBRARY_PATH}
  16. export PYTHONPATH=${MINDSPORE_INSTALL_PATH}/../:${PYTHONPATH}
  17. echo "LD_LIBRARY_PATH: " ${LD_LIBRARY_PATH}
  18. echo "PYTHONPATH: " ${PYTHONPATH}
  19. echo "-------------show MINDSPORE_INSTALL_PATH----------------"
  20. ls -l ${MINDSPORE_INSTALL_PATH}
  21. echo "------------------show /usr/lib64/----------------------"
  22. ls -l /usr/local/python/python375/lib/
  23. clean_pid()
  24. {
  25. ps aux | grep 'ms_serving' | grep ${CURRUSER} | grep -v grep | awk '{print $2}' | xargs kill -15
  26. if [ $? -ne 0 ]
  27. then
  28. echo "clean pip failed"
  29. fi
  30. sleep 6
  31. }
  32. prepare_model()
  33. {
  34. echo "### begin to generate mode for serving test ###"
  35. python3 generate_model.py &> generate_model_serving.log
  36. echo "### end to generate mode for serving test ###"
  37. result=`ls -l | grep -E '*pb' | grep -v ".log" | wc -l`
  38. if [ ${result} -ne 2 ]
  39. then
  40. cat generate_model_serving.log
  41. echo "### generate model for serving test failed ###" && exit 1
  42. clean_pid
  43. fi
  44. rm -rf model
  45. mkdir model
  46. mv *.pb ${CURRPATH}/model
  47. cp ${MINDSPORE_INSTALL_PATH}/ms_serving ./
  48. }
  49. start_service()
  50. {
  51. ${CURRPATH}/ms_serving --port=$1 --model_path=${MODEL_PATH} --model_name=$2 --device_id=$3 > $2_service.log 2>&1 &
  52. if [ $? -ne 0 ]
  53. then
  54. echo "$2 faile to start."
  55. fi
  56. result=`grep -E 'MS Serving listening on 0.0.0.0:5500|MS Serving listening on 0.0.0.0:5501' $2_service.log | wc -l`
  57. count=0
  58. while [[ ${result} -ne 1 && ${count} -lt 150 ]]
  59. do
  60. sleep 1
  61. count=$(($count+1))
  62. result=`grep -E 'MS Serving listening on 0.0.0.0:5500|MS Serving listening on 0.0.0.0:5501' $2_service.log | wc -l`
  63. done
  64. if [ ${count} -eq 150 ]
  65. then
  66. clean_pid
  67. cat $2_service.log
  68. echo "start serving service failed!" && exit 1
  69. fi
  70. echo "### start serving service end ###"
  71. }
  72. pytest_serving()
  73. {
  74. unset http_proxy https_proxy
  75. CLIENT_DEVICE_ID=$((${ENV_DEVICE_ID}+1))
  76. export DEVICE_ID=${CLIENT_DEVICE_ID}
  77. local test_client_name=$1
  78. echo "### $1 client start ###"
  79. python3 -m pytest -v -s client_example.py::${test_client_name} > ${test_client_name}_client.log 2>&1
  80. if [ $? -ne 0 ]
  81. then
  82. clean_pid
  83. cat ${test_client_name}_client.log
  84. echo "client $1 faile to start."
  85. fi
  86. echo "### $1 client end ###"
  87. }
  88. test_add_model()
  89. {
  90. start_service 5500 add.pb ${ENV_DEVICE_ID}
  91. pytest_serving test_add
  92. clean_pid
  93. }
  94. test_bert_model()
  95. {
  96. start_service 5500 bert.pb ${ENV_DEVICE_ID}
  97. pytest_serving test_bert
  98. clean_pid
  99. }
  100. echo "-----serving start-----"
  101. rm -rf ms_serving *.log *.pb *.dat ${CURRPATH}/model ${CURRPATH}/kernel_meta
  102. prepare_model
  103. test_add_model
  104. test_bert_model