Files
ospab.host/ospabhost/backend/test-scripts/stress-test.sh
2025-11-23 14:35:16 +03:00

82 lines
2.4 KiB
Bash

#!/bin/bash
# Скрипт для создания тестовой нагрузки на сервер
# Используйте этот скрипт внутри LXC контейнера
echo "🔥 Начинаем тест нагрузки сервера..."
# Установка stress-ng если не установлен
if ! command -v stress-ng &> /dev/null; then
echo "Установка stress-ng..."
apt-get update && apt-get install -y stress-ng
fi
# Проверяем количество ядер
CORES=$(nproc)
echo "Доступно CPU ядер: $CORES"
# Функция для CPU нагрузки (30% нагрузка)
cpu_stress() {
echo "📊 CPU нагрузка: 30-50%..."
stress-ng --cpu $CORES --cpu-load 35 --timeout 300s &
}
# Функция для Memory нагрузки (50% памяти)
memory_stress() {
echo "💾 Memory нагрузка: 50%..."
TOTAL_MEM=$(free -m | awk '/^Mem:/{print $2}')
TARGET_MEM=$(($TOTAL_MEM / 2))
stress-ng --vm 2 --vm-bytes ${TARGET_MEM}M --timeout 300s &
}
# Функция для Disk I/O нагрузки
disk_stress() {
echo "💿 Disk I/O нагрузка..."
stress-ng --hdd 2 --hdd-bytes 50M --timeout 300s &
}
# Функция для Network нагрузки (ping flood)
network_stress() {
echo "🌐 Network нагрузка..."
# Генерируем сетевой трафик
dd if=/dev/zero bs=1M count=100 2>/dev/null | dd of=/dev/null 2>/dev/null &
}
# Выбор режима
case "${1:-all}" in
cpu)
cpu_stress
;;
memory)
memory_stress
;;
disk)
disk_stress
;;
network)
network_stress
;;
all)
echo "🚀 Запуск полной нагрузки на 5 минут..."
cpu_stress
sleep 2
memory_stress
sleep 2
disk_stress
;;
*)
echo "Использование: $0 [cpu|memory|disk|network|all]"
exit 1
;;
esac
echo ""
echo "✅ Нагрузка запущена! Тест будет длиться 5 минут."
echo "📈 Откройте панель мониторинга чтобы увидеть графики."
echo ""
echo "Для остановки теста используйте: killall stress-ng"
# Ждём завершения
wait
echo ""
echo "✅ Тест завершён!"