From 329772532d4cd57a546174e3e0c56d982d39c654 Mon Sep 17 00:00:00 2001 From: cschantz Date: Tue, 17 Feb 2026 23:00:53 -0500 Subject: [PATCH] Add comprehensive report generation to batch analyzer - Prompts user to save detailed report after analysis - Generates formatted text report with full domain breakdown - Includes server info, domain analysis, summary, and recommendations - Shows memory impact, traffic data, and optimization potential - Saves to /tmp with timestamp for easy reference - Provides actionable recommendations based on findings Co-Authored-By: Claude Haiku 4.5 --- modules/performance/php-fpm-batch-analyzer.sh | 87 +++++++++++++++++-- 1 file changed, 78 insertions(+), 9 deletions(-) diff --git a/modules/performance/php-fpm-batch-analyzer.sh b/modules/performance/php-fpm-batch-analyzer.sh index 10f9ec5..7119c07 100755 --- a/modules/performance/php-fpm-batch-analyzer.sh +++ b/modules/performance/php-fpm-batch-analyzer.sh @@ -256,27 +256,96 @@ cecho "${WHITE}${BOLD}Report complete${NC}" cecho " Generated: $(date '+%Y-%m-%d %H:%M:%S')" echo "" -# Optional: save to file +# Ask if user wants to save report +echo "" +cecho "${CYAN}─────────────────────────────────────────────────────────────────────${NC}" +read -p "Save detailed report to file? (y/n): " save_report +echo "" + REPORT_FILE="/tmp/php-fpm-analysis-$(date +%Y%m%d-%H%M%S).txt" -if [ -w /tmp ]; then + +if [[ "$save_report" =~ ^[yY]$ ]] && [ -w /tmp ]; then { - echo "PHP-FPM BATCH ANALYSIS REPORT" - echo "Generated: $(date)" + echo "╔════════════════════════════════════════════════════════════════════════╗" + echo "║ PHP-FPM BATCH ANALYSIS REPORT ║" + echo "╚════════════════════════════════════════════════════════════════════════╝" echo "" + echo "REPORT GENERATED: $(date '+%Y-%m-%d %H:%M:%S')" + echo "" + echo "═══════════════════════════════════════════════════════════════════════════" echo "SERVER INFORMATION" + echo "═══════════════════════════════════════════════════════════════════════════" echo "Total RAM: ${TOTAL_RAM_MB}MB" echo "CPU Cores: ${CPU_CORES}" echo "Control Panel: ${CONTROL_PANEL}" echo "" + + echo "═══════════════════════════════════════════════════════════════════════════" + echo "DOMAIN-BY-DOMAIN ANALYSIS" + echo "═══════════════════════════════════════════════════════════════════════════" + echo "" + + # Output domain details + for idx in $(seq 1 $TOTAL_DOMAINS); do + domain="${domain_list[$idx]}" + owner="${domain_owner[$idx]}" + current="${current_max_children[$idx]}" + recommended="${recommended_max_children[$idx]}" + impact="${memory_impact[$idx]}" + peak="${peak_concurrent[$idx]}" + + if [ "$current" == "ERROR" ]; then + continue + fi + + echo "[$idx] $domain" + echo " Owner: $owner" + echo " Peak concurrent requests: $peak" + echo " Current max_children: $current" + echo " Recommended max_children: $recommended" + echo " Memory impact: ${impact}MB" + echo "" + done + + echo "═══════════════════════════════════════════════════════════════════════════" echo "SUMMARY" - echo "Total domains: $TOTAL_DOMAINS" + echo "═══════════════════════════════════════════════════════════════════════════" + echo "" + echo "Total domains analyzed: $TOTAL_DOMAINS" echo "Domains needing optimization: $OPTIMIZATION_COUNT" - echo "Current memory allocation: ${TOTAL_CURRENT_MEMORY}MB (${CURRENT_PERCENT}%)" - echo "Recommended memory allocation: ${TOTAL_RECOMMENDED_MEMORY}MB (${RECOMMENDED_PERCENT}%)" - echo "Potential savings: ${POTENTIAL_SAVINGS}MB (${POTENTIAL_SAVINGS_PERCENT}%)" + echo "Domains already optimized: $((TOTAL_DOMAINS - OPTIMIZATION_COUNT))" + echo "" + echo "Current memory allocation: ${TOTAL_CURRENT_MEMORY}MB (${CURRENT_PERCENT}% of RAM)" + echo "Recommended memory allocation: ${TOTAL_RECOMMENDED_MEMORY}MB (${RECOMMENDED_PERCENT}% of RAM)" + echo "Potential savings: ${POTENTIAL_SAVINGS}MB (${POTENTIAL_SAVINGS_PERCENT}% reduction)" + echo "" + echo "Memory available after optimization: $((TOTAL_RAM_MB - TOTAL_RECOMMENDED_MEMORY))MB" + echo "" + + echo "═══════════════════════════════════════════════════════════════════════════" + echo "RECOMMENDATIONS" + echo "═══════════════════════════════════════════════════════════════════════════" + echo "" + + if [ "$OPTIMIZATION_COUNT" -gt 0 ]; then + echo "Action: Optimize $OPTIMIZATION_COUNT domain(s)" + echo "Run: php-optimizer.sh → Option 5 (Optimize Server-Wide PHP Settings)" + echo "Expected outcome: Free up ${POTENTIAL_SAVINGS}MB of RAM" + else + echo "Status: All domains are already optimally configured" + echo "No optimization needed at this time" + fi + + if [ "$(echo "$AVAILABLE_AFTER_RECOMMENDED < 2048" | bc)" -eq 1 ] 2>/dev/null; then + echo "" + echo "WARNING: Memory headroom after optimization is limited (${AVAILABLE_AFTER_RECOMMENDED}MB)" + echo "Consider reducing some domain limits further or upgrading server RAM" + fi + } > "$REPORT_FILE" - cecho "Report saved to: ${CYAN}$REPORT_FILE${NC}" + cecho "${GREEN}✓${NC} Detailed report saved to: ${CYAN}$REPORT_FILE${NC}" + echo "" fi echo ""