| #!/bin/bash |
| |
| |
| |
| |
| |
|
|
| |
| module use /app/common/modules |
| module load anaconda3-2024.10 |
| source activate gptoss-vllm |
|
|
| |
| cd /home/skiredj.abderrahman/khalil/performance_testing |
|
|
| |
| echo "==== Job running on node: $(hostname -s) ====" |
|
|
| |
| cleanup() { |
| echo "Cleaning up..." |
| kill 0 |
| } |
| trap cleanup EXIT |
|
|
| |
| monitor_vmstat() { |
| while true; do |
| echo "==== $(date) ====" >> gpu_tests_log/vmstat.txt |
| vmstat 1 2 | tail -1 >> gpu_tests_log/vmstat.txt |
| sleep 29 |
| done |
| } |
|
|
| |
| monitor_nvidia() { |
| while true; do |
|
|
| nvidia-smi \ |
| --query-gpu=timestamp,utilization.gpu,memory.used,memory.total \ |
| --format=csv,noheader,nounits >> gpu_tests_log/nvidia_smi.csv |
| sleep 30 |
| done |
| } |
|
|
| |
| monitor_vllm_metrics() { |
| OUT="gpu_tests_log/swap_space_usage.csv" |
| echo "ram_percent,rss_kb" > "$OUT" |
|
|
| TOTAL_RAM_KB=$((180 * 1024 * 1024)) |
|
|
| while true; do |
| pid=$(pgrep -f 'vllm.*serve') |
| if [[ -n "$pid" ]]; then |
| rss=$(ps -o rss= -p "$pid" | awk '{print $1}') |
| ram_percent=$(awk -v r="$rss" -v t="$TOTAL_RAM_KB" 'BEGIN{printf "%.2f", (r/t)*100}') |
| else |
| rss=0 |
| ram_percent=0 |
| fi |
| echo "${ram_percent},${rss}" >> "$OUT" |
| sleep 30 |
| done |
| } |
|
|
|
|
| |
| |
| start_vllm() { |
|
|
| echo "==== Job running on node: $(hostname -s) ====" |
| vllm serve /home/skiredj.abderrahman/fatnaoui/models/gptoss --host 0.0.0.0 --async-scheduling \ |
| --port 9998 >> gpu_tests_log/vllm.log 2>&1 |
| } |
|
|
| |
| |
| start_vllm & |
|
|
| |
| DELAY_SEC=5 |
| sleep "${DELAY_SEC}" |
|
|
| |
| monitor_vmstat & |
| monitor_nvidia & |
| monitor_vllm_metrics & |
|
|
| |
| wait |
|
|
| |
| wait |
|
|