Uma coisa que você pode tentar limitar o impacto das conexões no apache é limitá-las.
Existem algumas maneiras de fazer isso, mas uma maneira pode ser:
iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 600 --hitcount 5 -j DROP
Isso permitiria 5 novas conexões para a porta 80 por IP de origem em 10 minutos, o que pode ajudar você a ganhar mais tempo para pesquisar mais. Se o problema está atingindo mais do que apenas o apache, você pode considerar aplicá-lo a todas as conexões TCP, mas eu também sugiro que você adicione uma exceção para sua conexão SSH nesse caso.
Possivelmente vale a pena investigar se você não tem o fail2ban, que pode configurar para examinar seus logs do Apache e bloquear hosts com base em determinados critérios.
Não tenho certeza se recomendaria implantá-lo agora (o potencial para algo dar errado parece um pouco alto), mas valeria a pena colocar na lista de possíveis soluções a longo prazo.
De passagem: tudo isso está assumindo que o problema é a capacidade de resposta / carga do Apache, não a carga na sua conexão com a Internet.
Se todo o seu uplink estiver saturado, não há muito o que fazer em seu host, já que o problema está mais avançado do que isso.
Se você é baseado na nuvem, talvez valha a pena ver quais opções existem. Se você não for, talvez valha a pena ver se uma empresa de proteção CDN / DDoS (cloudflare vem à mente, mas eu não posso falar por seus serviços) poderia ajudar.
Eu também tenderia a querer descobrir o que sua máquina está fazendo com todas essas conexões - netstat -ptn
pode ser de alguma ajuda
Além disso, você pode ver se iftop
ou iptraf
ajudam você a entender melhor o que está acontecendo. Veja também link