Como resgatar um servidor sem inodes livres (de DDOS)

5

Um dos servidores da web foi atacado por DDOS. Tudo está bem, exceto que existem milhões de arquivos de sessão do PHP usados até 100% inodes da partição. Existe apenas uma partição para todo /

Tentei várias soluções, mas trabalhei apenas até certo ponto. link

link

Depois de liberar 8% dos inodes, o disco fica extremamente lento para excluir mais nada.

rm -f filename* 

rsync -a --delete empty_dir/    yourdirectory/

perl -e 'for(<*>){((stat)[9]<(unlink))}'

E o disco fica assim agora

Filesystem      Inodes   IUsed  IFree IUse% Mounted on
/dev/vda1      2621440 2385895 235545   92% /
tmpfs           128789       1 128788    1% /dev/shm

Ainda há 6 milhões + arquivos pequenos em um diretório. Os métodos acima são excluídos em 2 arquivos / s

Eu li sobre reequilíbrio de b-tree. Mas como faço para diagnosticar / resolver o problema de exclusão lenta?

'' '

    
por Reed 26.04.2017 / 16:12

1 resposta

8

Uma coisa rápida a fazer é mover / renomear seu diretório /tmp atual e criar um novo diretório para que o uso normal de /tmp não seja mais afetado.

mkdir /newtmp
chmod 1777 /newtmp
mv /tmp /tmp-old && mv /newtmp /tmp 

e talvez você precise fazer o mesmo com /var/tmp também. Isso permite que você limpe / tmp-pacificamente.

Como medida atenuante:

Considere usar parte de sua memória para criar uma partição tempfs separada para usar como armazenamento para seus arquivos de sessão do PHP, o que limitará o impacto no restante do sistema.

i.e.

mkdir /var/cache/php
chmod 1777  /var/cache/php
mount -t tmpfs size=500M  /var/cache/php

e edite seu php.ini e defina

session.save_path = "/var/cache/php"
    
por 26.04.2017 / 16:54