#!/bin/bash # AITBC Performance Tuning Script - DISABLED # This script has been disabled to prevent system modifications # To re-enable, remove this notice and make the script executable echo "โŒ PERFORMANCE TUNING SCRIPT DISABLED" echo "This script has been disabled to prevent system modifications." echo "To re-enable:" echo " 1. Remove this disable notice" echo " 2. Make the script executable: chmod +x $0" echo "" echo "Current status: DISABLED" exit 1 # Colors for output GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo "1. ๐Ÿ”ง SYSTEM PERFORMANCE OPTIMIZATION" echo "====================================" # Optimize CPU affinity echo "Setting CPU affinity for blockchain services..." if [ ! -f "/opt/aitbc/systemd/cpuset.conf" ]; then mkdir -p /opt/aitbc/systemd echo "CPUAffinity=0-3" > /opt/aitbc/systemd/cpuset.conf echo -e " ${GREEN}โœ…${NC} CPU affinity configured" else echo -e " ${YELLOW}โš ๏ธ${NC} CPU affinity already configured" fi # Optimize memory management echo "Optimizing memory management..." # Add swap if needed if [ $(swapon --show | wc -l) -eq 0 ]; then echo "Creating 2GB swap file..." fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo '/swapfile none swap sw 0 0' >> /etc/fstab echo -e " ${GREEN}โœ…${NC} Swap file created" else echo -e " ${YELLOW}โš ๏ธ${NC} Swap already exists" fi # Optimize kernel parameters echo "Optimizing kernel parameters..." cat >> /etc/sysctl.conf << 'EOF' # AITBC Performance Tuning net.core.rmem_max = 134217728 net.core.wmem_max = 134217728 net.ipv4.tcp_rmem = 4096 87380 134217728 net.ipv4.tcp_wmem = 4096 65536 134217728 vm.swappiness = 10 vm.dirty_ratio = 15 vm.dirty_background_ratio = 5 EOF sysctl -p echo -e " ${GREEN}โœ…${NC} Kernel parameters optimized" echo "" echo "2. ๐Ÿ”„ BLOCKCHAIN PERFORMANCE TUNING" echo "====================================" # Optimize blockchain configuration echo "Optimizing blockchain configuration..." if [ -f "/etc/aitbc/blockchain.env" ]; then # Backup original config cp /etc/aitbc/blockchain.env /etc/aitbc/blockchain.env.backup.$(date +%Y%m%d_%H%M%S) # Optimize key parameters sed -i 's/block_time_seconds=10/block_time_seconds=2/' /etc/aitbc/blockchain.env sed -i 's/max_txs_per_block=100/max_txs_per_block=500/' /etc/aitbc/blockchain.env sed -i 's/max_block_size_bytes=1048576/max_block_size_bytes=2097152/' /etc/aitbc/blockchain.env echo -e " ${GREEN}โœ…${NC} Blockchain configuration optimized" echo " โ€ข Block time: 2 seconds" echo " โ€ข Max transactions per block: 500" echo " โ€ข Max block size: 2MB" else echo -e " ${YELLOW}โš ๏ธ${NC} Blockchain configuration not found" fi # Restart services to apply changes echo "Restarting blockchain services..." systemctl restart aitbc-blockchain-node aitbc-blockchain-rpc ssh aitbc 'systemctl restart aitbc-blockchain-node aitbc-blockchain-rpc' echo -e " ${GREEN}โœ…${NC} Services restarted" echo "" echo "3. ๐Ÿ’พ DATABASE OPTIMIZATION" echo "===========================" # Optimize SQLite database echo "Optimizing SQLite database..." if [ -f "/var/lib/aitbc/data/ait-mainnet/chain.db" ]; then sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "VACUUM;" sqlite3 /var/lib/aitbc/data/ait-mainnet/chain.db "ANALYZE;" echo -e " ${GREEN}โœ…${NC} Database optimized" else echo -e " ${YELLOW}โš ๏ธ${NC} Database not found" fi # Optimize mempool database if [ -f "/var/lib/aitbc/data/mempool.db" ]; then sqlite3 /var/lib/aitbc/data/mempool.db "VACUUM;" sqlite3 /var/lib/aitbc/data/mempool.db "ANALYZE;" echo -e " ${GREEN}โœ…${NC} Mempool database optimized" else echo -e " ${YELLOW}โš ๏ธ${NC} Mempool database not found" fi echo "" echo "4. ๐ŸŒ NETWORK OPTIMIZATION" echo "==========================" # Optimize network settings echo "Optimizing network settings..." # Increase network buffer sizes echo 'net.core.netdev_max_backlog = 5000' >> /etc/sysctl.conf echo 'net.ipv4.tcp_congestion_control = bbr' >> /etc/sysctl.conf sysctl -p # Optimize P2P settings if configured if [ -f "/etc/aitbc/blockchain.env" ]; then sed -i 's/p2p_bind_port=7070/p2p_bind_port=7070/' /etc/aitbc/blockchain.env echo 'p2p_max_connections=50' >> /etc/aitbc/blockchain.env echo 'p2p_connection_timeout=30' >> /etc/aitbc/blockchain.env echo -e " ${GREEN}โœ…${NC} P2P settings optimized" fi echo "" echo "5. ๐Ÿ“Š PERFORMANCE BASELINE" echo "========================" # Create performance baseline echo "Creating performance baseline..." mkdir -p /opt/aitbc/performance # Get current performance metrics CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | sed 's/%us,//') MEM_USAGE=$(free | grep Mem | awk '{printf "%.1f", $3/$2 * 100.0}') DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//') BLOCK_HEIGHT=$(curl -s http://localhost:8006/rpc/head | jq -r .height 2>/dev/null || echo "0") RPC_RESPONSE=$(curl -s -w "%{time_total}" -o /dev/null http://localhost:8006/rpc/info) # Create baseline report cat > /opt/aitbc/performance/baseline.txt << EOF AITBC Performance Baseline Generated: $(date) System Metrics: - CPU Usage: ${CPU_USAGE}% - Memory Usage: ${MEM_USAGE}% - Disk Usage: ${DISK_USAGE}% Blockchain Metrics: - Block Height: ${BLOCK_HEIGHT} - RPC Response Time: ${RPC_RESPONSE}s Configuration: - Block Time: 2 seconds - Max Txs per Block: 500 - Max Block Size: 2MB - P2P Max Connections: 50 Optimizations Applied: - CPU affinity configured - Swap file created - Kernel parameters optimized - Database vacuumed and analyzed - Network settings optimized - Blockchain configuration tuned EOF echo -e " ${GREEN}โœ…${NC} Performance baseline created" echo "" echo "6. ๐Ÿงช PERFORMANCE TESTING" echo "======================" # Test transaction throughput echo "Testing transaction throughput..." start_time=$(date +%s) for i in {1..10}; do curl -s http://localhost:8006/rpc/info >/dev/null 2>&1 done end_time=$(date +%s) throughput=$((10 / (end_time - start_time))) echo "RPC throughput: $throughput requests/second" # Test blockchain sync echo "Testing blockchain performance..." current_height=$(curl -s http://localhost:8006/rpc/head | jq -r .height 2>/dev/null || echo "0") echo "Current blockchain height: $current_height" # Test memory usage process_memory=$(ps aux | grep aitbc-blockchain-node | grep -v grep | awk '{sum+=$6} END {print sum/1024}') echo "Blockchain node memory usage: ${process_memory}MB" echo "" echo "=== ๐Ÿš€ PERFORMANCE TUNING COMPLETE ===" echo "" echo "Performance optimizations applied:" echo "โ€ข CPU affinity configured" echo "โ€ข Memory management optimized" echo "โ€ข Kernel parameters tuned" echo "โ€ข Database performance optimized" echo "โ€ข Network settings optimized" echo "โ€ข Blockchain configuration tuned" echo "" echo "Performance baseline saved to: /opt/aitbc/performance/baseline.txt" echo "" echo -e "${GREEN}โœ… Performance tuning completed successfully!${NC}"