Add project and deployment instruction (docs/DEPLOYMENT.md)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
100
scripts/check_gpu.sh
Executable file
100
scripts/check_gpu.sh
Executable file
@@ -0,0 +1,100 @@
|
||||
#!/bin/bash
|
||||
# Скрипт для проверки подключения GPU в Docker контейнере Ollama
|
||||
|
||||
set -e
|
||||
|
||||
CONTAINER_NAME="ollama"
|
||||
|
||||
echo "=== Проверка GPU в Docker контейнере ==="
|
||||
echo ""
|
||||
|
||||
# Определяем команду docker
|
||||
DOCKER_CMD="docker"
|
||||
if ! docker ps >/dev/null 2>&1; then
|
||||
DOCKER_CMD="sudo docker"
|
||||
fi
|
||||
|
||||
echo "1. Проверка конфигурации в docker-compose.yml..."
|
||||
if grep -q "driver: nvidia" docker-compose.yml 2>/dev/null; then
|
||||
echo " ✓ GPU настроен в docker-compose.yml"
|
||||
echo " Конфигурация:"
|
||||
grep -A 5 "driver: nvidia" docker-compose.yml | head -6
|
||||
else
|
||||
echo " ✗ GPU не настроен в docker-compose.yml"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "2. Проверка конфигурации контейнера..."
|
||||
GPU_CONFIG=$($DOCKER_CMD inspect $CONTAINER_NAME 2>/dev/null | grep -i "nvidia\|gpu" | head -5)
|
||||
if [ -n "$GPU_CONFIG" ]; then
|
||||
echo " ✓ Найдена конфигурация GPU:"
|
||||
echo "$GPU_CONFIG"
|
||||
else
|
||||
echo " ⚠ Конфигурация GPU не найдена в inspect"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "3. Проверка доступности nvidia-smi в контейнере..."
|
||||
if $DOCKER_CMD exec $CONTAINER_NAME which nvidia-smi >/dev/null 2>&1; then
|
||||
echo " ✓ nvidia-smi доступен"
|
||||
echo ""
|
||||
echo " Вывод nvidia-smi:"
|
||||
$DOCKER_CMD exec $CONTAINER_NAME nvidia-smi 2>&1 | head -15 || echo " ⚠ nvidia-smi не может выполниться"
|
||||
else
|
||||
echo " ✗ nvidia-smi не найден в контейнере"
|
||||
echo " Возможно, контейнер не имеет доступа к GPU"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "4. Проверка переменных окружения NVIDIA..."
|
||||
NVIDIA_ENV=$($DOCKER_CMD exec $CONTAINER_NAME env | grep -i nvidia)
|
||||
if [ -n "$NVIDIA_ENV" ]; then
|
||||
echo " ✓ Переменные NVIDIA найдены:"
|
||||
echo "$NVIDIA_ENV"
|
||||
else
|
||||
echo " ⚠ Переменные NVIDIA не найдены"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "5. Проверка логов Ollama на использование GPU..."
|
||||
RECENT_LOGS=$($DOCKER_CMD logs $CONTAINER_NAME --tail 50 2>&1)
|
||||
if echo "$RECENT_LOGS" | grep -qi "gpu\|cuda\|nvidia"; then
|
||||
echo " ✓ Найдены упоминания GPU в логах:"
|
||||
echo "$RECENT_LOGS" | grep -i "gpu\|cuda\|nvidia" | tail -5
|
||||
else
|
||||
echo " ⚠ Нет упоминаний GPU в последних логах"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "6. Проверка на хосте..."
|
||||
if command -v nvidia-smi >/dev/null 2>&1; then
|
||||
echo " GPU на хосте:"
|
||||
nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv,noheader 2>/dev/null || echo " ⚠ Не удалось получить информацию о GPU"
|
||||
else
|
||||
echo " ⚠ nvidia-smi не найден на хосте"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== Резюме ==="
|
||||
echo ""
|
||||
if $DOCKER_CMD exec $CONTAINER_NAME nvidia-smi >/dev/null 2>&1; then
|
||||
echo "✓ GPU подключен и доступен в контейнере"
|
||||
echo ""
|
||||
echo "Для детальной информации выполните:"
|
||||
echo " sudo docker exec ollama nvidia-smi"
|
||||
else
|
||||
echo "✗ GPU не доступен в контейнере"
|
||||
echo ""
|
||||
echo "Возможные причины:"
|
||||
echo " 1. Docker не имеет доступа к GPU (нужен nvidia-docker2 или nvidia-container-toolkit)"
|
||||
echo " 2. Контейнер не был перезапущен после изменения docker-compose.yml"
|
||||
echo " 3. Драйверы NVIDIA не установлены на хосте"
|
||||
echo ""
|
||||
echo "Решение:"
|
||||
echo " 1. Установите nvidia-container-toolkit:"
|
||||
echo " sudo apt-get install -y nvidia-container-toolkit"
|
||||
echo " sudo systemctl restart docker"
|
||||
echo ""
|
||||
echo " 2. Перезапустите контейнер:"
|
||||
echo " docker compose restart ollama"
|
||||
fi
|
||||
Reference in New Issue
Block a user