llm_perf_test/deploy.sh

101 lines
2.4 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
2026-03-03 00:21:37 +08:00
# LLM Performance Test Tool 部署脚本
# 部署到 8001 端口
set -e
2026-03-03 00:21:37 +08:00
APP_NAME="llm_perf_test"
APP_DIR="/opt/llm_perf_test"
PORT=8001
USER=$(whoami)
2026-03-03 00:21:37 +08:00
echo "=== LLM Performance Test Tool 部署脚本 ==="
echo ""
# 检查 Python
if ! command -v python3 &> /dev/null; then
2026-03-03 00:21:37 +08:00
echo "错误: 未找到 Python3"
exit 1
fi
2026-03-03 00:21:37 +08:00
PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}')
echo "Python 版本: $PYTHON_VERSION"
2026-03-03 00:21:37 +08:00
# 创建应用目录
echo "创建应用目录: $APP_DIR"
sudo mkdir -p $APP_DIR
sudo chown $USER:$USER $APP_DIR
2026-03-03 00:21:37 +08:00
# 复制文件
echo "复制应用文件..."
cp -r ./* $APP_DIR/
# 安装依赖
2026-03-03 00:21:37 +08:00
echo "安装 Python 依赖..."
cd $APP_DIR
# 根据 Python 版本安装不同版本的依赖
PY_MAJOR=$(python3 -c "import sys; print(sys.version_info.major)")
PY_MINOR=$(python3 -c "import sys; print(sys.version_info.minor)")
if [ "$PY_MAJOR" -eq 3 ] && [ "$PY_MINOR" -le 6 ]; then
echo "检测到 Python 3.6,安装兼容版本..."
pip3 install --user flask==1.1.4 requests==2.27.1 2>/dev/null || \
pip3 install flask==1.1.4 requests==2.27.1
else
pip3 install --user -r requirements.txt 2>/dev/null || \
pip3 install -r requirements.txt
fi
2026-03-03 00:21:37 +08:00
# 创建数据目录
mkdir -p $APP_DIR/data
# 创建 systemd 服务文件
echo "创建系统服务..."
sudo tee /etc/systemd/system/$APP_NAME.service > /dev/null <<EOF
[Unit]
Description=LLM Performance Test Tool
After=network.target
2026-03-03 00:21:37 +08:00
[Service]
Type=simple
User=$USER
WorkingDirectory=$APP_DIR
Environment=PYTHONPATH=$APP_DIR
ExecStart=/usr/bin/python3 $APP_DIR/app.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
# 重新加载 systemd
sudo systemctl daemon-reload
# 停止旧服务(如果存在)
sudo systemctl stop $APP_NAME 2>/dev/null || true
# 启动服务
echo "启动服务..."
sudo systemctl start $APP_NAME
sudo systemctl enable $APP_NAME
# 检查状态
sleep 2
if sudo systemctl is-active --quiet $APP_NAME; then
echo ""
echo "=== 部署成功! ==="
echo "应用地址: http://$(hostname -I | awk '{print $1}'):$PORT"
echo "本地地址: http://localhost:$PORT"
echo ""
echo "查看日志: sudo journalctl -u $APP_NAME -f"
echo "停止服务: sudo systemctl stop $APP_NAME"
echo "重启服务: sudo systemctl restart $APP_NAME"
else
echo ""
echo "=== 部署失败 ==="
echo "请检查日志: sudo journalctl -u $APP_NAME -n 50"
exit 1
fi