Optimizing usage
Monitor and optimize your GitHub Actions resource usage with Namespace's built-in insights dashboard. Understanding how your workflows consume resources helps you select the right machine shapes and reduce costs while maintaining performance.
Resource Usage Insights
The insights dashboard provides detailed visibility into your workflow resource consumption across all your jobs.

Finding Optimization Opportunities
Use the insights dashboard to narrow your jobs down to the best optimization candidates. Jobs that show both low memory and CPU usage are prime candidates for smaller machine shapes.
View Peak Memory Usage
- Navigate to GitHub Actions → Insights
- Change the view to Sequential (to see all job values back to back)
- Set breakdown to Job (should be the default)
- Change display to Max Memory Used per Job (Percentage)
Filter Out High Memory Usage Jobs
Click Show optimization potential to filter out jobs that hit over 50% memory, leaving only the under-utilized candidates.
Analyze CPU Utilization
Now switch the display to p90 CPU per Job (Percentage) to check whether the same jobs also under-utilize their CPU.
The p90 view shows the practical maximum load for 90% of the time, helping ignore short-term spikes.
Use Max CPU per Job to see absolute CPU peak across the whole duration.
Manually Remove High-Utilization Jobs
If you have too many jobs to go through, you can further filter out jobs with high CPU usage:
- Use Alt+Shift+Cmd (or Alt+Shift+Ctrl on Windows/Linux) to click on jobs with more than 50% CPU usage, this will filter that job type out
- Keep doing this until you're only left with jobs under 50% CPU usage
- These are your optimization opportunities
Generating an over-provisioned report
When you have many job runs to sift through, the fastest path is to generate a usage report and let an LLM agent do the analysis, saving you from manually reviewing the dashboard.
Generate Usage Report
Use the nsc instance report command to export a CSV of every runner instance for the last 7 days, including the allocated shape and the observed peak CPU and memory usage.
Analyze with Agents
Pair the CSV with your favourite LLM agent to surface candidates for a smaller shape. The following prompt works well as a starting point:
Based on GitHub job historical data over the last 7 days obtained via "nsc instance report", produce a short report of resource optimization opportunities for jobs (for the same job name, consistent low resource usage within a category)
Best Practices
- Regular monitoring: Review insights weekly to identify optimization opportunities
- Baseline performance: Establish performance baselines before making changes
- Gradual optimization: Make incremental changes and measure impact
- Test configurations: Use feature branches to test different machine shapes safely
The insights dashboard updates automatically, providing real-time visibility into how your optimization efforts impact resource usage and costs.
Related Documentation
Caching Solutions → Implement cross-invocation caching for dependencies and build artifacts to reduce execution time and resource usage.
Custom Base Images → Pre-install dependencies in custom runner images to reduce startup time and optimize resource utilization.
High-Performance Docker Builds → Optimize Docker build performance with Remote Builders and caching strategies.
Advanced Configuration → Configure machine shapes and runner settings for optimal performance and cost efficiency.