Spaces:
Configuration error
Configuration error
| set -e | |
| echo "=== AetheroOS Local Memory Optimizer ===" | |
| SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | |
| ROOT_DIR="$(dirname "$SCRIPT_DIR")" | |
| DATA_DIR="$ROOT_DIR/data" | |
| LOG_DIR="$ROOT_DIR/logs" | |
| # Parse arguments | |
| CLEANUP=false | |
| AGGRESSIVE=false | |
| while [[ $# -gt 0 ]]; do | |
| case $1 in | |
| --cleanup) | |
| CLEANUP=true | |
| shift | |
| ;; | |
| --aggressive) | |
| AGGRESSIVE=true | |
| shift | |
| ;; | |
| *) | |
| echo "Unknown option: $1" | |
| exit 1 | |
| ;; | |
| esac | |
| done | |
| # Function to optimize process memory | |
| optimize_process() { | |
| local service=$1 | |
| local pid_file="$LOG_DIR/${service}.pid" | |
| if [ -f "$pid_file" ]; then | |
| pid=$(cat "$pid_file") | |
| if kill -0 "$pid" 2>/dev/null; then | |
| echo "Optimizing $service (PID: $pid)..." | |
| # Send SIGQUIT to trigger Python garbage collection | |
| kill -SIGQUIT "$pid" 2>/dev/null || true | |
| else | |
| echo "Warning: $service is not running" | |
| fi | |
| else | |
| echo "Warning: PID file not found for $service" | |
| fi | |
| } | |
| # Function to cleanup memory data | |
| cleanup_memory() { | |
| echo "Cleaning up memory data..." | |
| # Stop memory service | |
| "$SCRIPT_DIR/local_service_manager.sh" stop | |
| # Clear memory data | |
| if [ "$AGGRESSIVE" = true ]; then | |
| echo "Performing aggressive cleanup..." | |
| rm -rf "$DATA_DIR/aethero_mem"/* | |
| rm -rf "$LOG_DIR"/*.log | |
| else | |
| echo "Performing standard cleanup..." | |
| find "$DATA_DIR/aethero_mem" -type f -mtime +7 -delete | |
| find "$LOG_DIR" -name "*.log" -mtime +7 -delete | |
| fi | |
| # Restart memory service | |
| "$SCRIPT_DIR/local_service_manager.sh" start | |
| } | |
| # Main optimization process | |
| echo "Starting memory optimization..." | |
| # List of services to optimize | |
| SERVICES=("aethero_mem" "reflection_agent" "planner_agent" "scout_agent" "analyst_agent" "langgraph") | |
| for service in "${SERVICES[@]}"; do | |
| optimize_process "$service" | |
| done | |
| # Perform cleanup if requested | |
| if [ "$CLEANUP" = true ]; then | |
| cleanup_memory | |
| fi | |
| # Verify optimization | |
| echo "Verifying optimization results..." | |
| # Check memory usage after optimization | |
| for service in "${SERVICES[@]}"; do | |
| pid_file="$LOG_DIR/${service}.pid" | |
| if [ -f "$pid_file" ]; then | |
| pid=$(cat "$pid_file") | |
| if kill -0 "$pid" 2>/dev/null; then | |
| mem_usage=$(ps -o %mem -p "$pid" | tail -n 1) | |
| echo "$service memory usage: $mem_usage%" | |
| if (( $(echo "$mem_usage > 80" | bc -l) )); then | |
| echo "Warning: High memory usage in $service" | |
| fi | |
| fi | |
| fi | |
| done | |
| echo "Memory optimization complete!" | |
| # Return status | |
| if [ "$CLEANUP" = true ]; then | |
| echo "Cleanup completed successfully" | |
| fi | |
| if [ "$AGGRESSIVE" = true ]; then | |
| echo "Aggressive optimization completed" | |
| fi | |
| exit 0 | |