Volcano Scheduler Logs
Retrieve and analyze Volcano scheduler logs to understand scheduling decisions, failures, and performance issues.
Scope: This skill is for diagnosis only. It retrieves logs for analysis but does not modify any cluster state.
Usage
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh [options]
Parameters
| Parameter | Required | Description |
|---|---|---|
--keyword KEYWORD |
no | Filter logs by keyword (case-insensitive) |
--pod POD |
no | Filter logs related to specific pod name |
--since TIME |
no | Show logs newer than relative time (e.g., 10m, 1h) |
--lines N |
no | Number of lines to show (default: 100) |
--follow |
no | Stream logs in real-time (Ctrl+C to stop) |
--previous |
no | Show logs from previous container instance (after restart) |
Examples
Get recent scheduler logs:
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh
Search for error messages:
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh --keyword error
Get logs for a specific pod:
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh --pod my-job-0
Get last 500 lines from the past hour:
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh --since 1h --lines 500
Stream logs for gang scheduling issues:
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh --keyword gang --follow
Check logs from previous scheduler instance (after crash/restart):
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh --previous --lines 200
Common Keywords for Filtering
| Keyword | Use Case |
|---|---|
error |
Find error messages and failures |
FailedScheduling |
Scheduling failures |
allocate |
Resource allocation attempts |
gang |
Gang scheduling decisions |
minMember |
MinMember constraint issues |
preempt |
Preemption events |
reclaim |
Resource reclamation |
enqueue |
Queue admission decisions |
bind |
Pod binding attempts |
queue |
Queue-related decisions |
proportion |
Proportion plugin decisions |
priority |
Priority-related decisions |
Understanding Scheduler Logs
Log Format
Volcano scheduler logs typically follow this format:
I0102 15:04:05.123456 1 scheduler.go:123] Starting scheduling session
I0102 15:04:05.234567 1 allocate.go:456] Try to allocate resources for Job <namespace>/<job-name>
E0102 15:04:05.345678 1 gang.go:789] Failed to schedule pod <pod-name>: minMember not satisfied
Log levels:
I- Info: Normal operation informationW- Warning: Unusual but non-fatal conditionsE- Error: Failures and errorsF- Fatal: Critical errors causing shutdown
Common Log Patterns
Session Start
Starting scheduling session
Starting scheduling loop
- Indicates scheduler is processing a new batch of pending pods
Enqueue Decisions
Try to enqueue pod group
PodGroup <name> is enqueued
PodGroup <name> is pending
- Shows whether pod groups are admitted to the queue
Allocation Attempts
Try to allocate resources for Job
Try to allocate for task
- Shows scheduling attempts for specific jobs/pods
Gang Scheduling
minMember not satisfied
gang member not ready
Waiting for gang members
- Indicates Gang constraint preventing scheduling
Resource Shortage
Insufficient cpu
Insufficient memory
0 nodes are available
- Indicates resource constraint preventing scheduling
Preemption
Preempting pods
Found victim pods
- Shows preemption decisions for high-priority workloads
Reclaim
Try to reclaim resources
Reclaiming resources from queue
- Shows resource reclamation between queues
Diagnostic Use Cases
Case 1: Pod Stuck in Pending
Find relevant scheduler decisions:
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh --pod <pod-name> --since 30m
Look for:
FailedSchedulingeventsminMember not satisfiedInsufficientresource messagesenqueuedecisions (is the PodGroup being admitted?)
Case 2: Gang Scheduling Issues
Check Gang plugin behavior:
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh --keyword gang --since 1h
Look for:
minMemberrelated messages- Gang constraint validation
- Comparison of running vs required members
Case 3: Queue Resource Issues
Check proportion and reclaim decisions:
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh --keyword "reclaim\|proportion" --since 30m
Look for:
- Queue resource calculations
- Reclaim triggers
- Over-commit handling
Case 4: Scheduler Performance
Check for scheduling delays:
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh --lines 500 | grep -E "(Starting|Finished) scheduling"
Look for:
- Long gaps between "Starting" and "Finished"
- High frequency of scheduling loops
- Errors causing retries
Case 5: Preemption Analysis
Check preemption decisions:
bash skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh --keyword preempt --since 1h
Look for:
- Which pods are being preempted
- Priority comparisons
- Preemption success/failure
Environment Variables
| Variable | Default | Description |
|---|---|---|
VOLCANO_SCHEDULER_NS |
volcano-system |
Scheduler namespace |
VOLCANO_SCHEDULER_LABEL |
app=volcano-scheduler |
Label selector for scheduler pods |
Limitations
- Log retention: Logs may be rotated based on cluster configuration
- Multi-scheduler: If running multiple schedulers, logs will be interleaved
- Log level: Default log level may not show all debug information
- Previous logs:
--previousonly works if the container has restarted
Tips for Effective Log Analysis
- Use time ranges: Narrow down with
--sinceto focus on recent issues - Combine keywords: Search for
error\|Failed\|failedto catch all failures - Check pod context: Always include
--podwhen investigating specific pods - Look for patterns: Repeating errors may indicate systemic issues
- Correlate with events: Compare with
kubectl get eventstimestamps
See Also
volcano-diagnose-pod- Diagnose individual pod issuesvolcano-gang-scheduling- Gang scheduling specific diagnosisvolcano-queue-diagnose- Queue resource analysisvolcano-resource-insufficient- Resource shortage diagnosis