Minimize o atraso do servidor de jogo com iptables

1

Eu tenho um servidor 7 debian hospedado pelo Google Cloud executando um servidor de jogos e um servidor de rails.

O servidor rails é executado na porta 80 e o servidor do jogo na porta 8000.

Eu quero aplicar uma regra de rede que permita que os pacotes do servidor de jogos tenham uma prioridade mais alta para minimizar a latência.

Por enquanto, descobri que iptables poderia me ajudar com isso:

iptables -A PREROUTING -t mangle -p tcp --dport 8000:8010 -j TOS --set-tos Minimize-Delay

Mas quando eu verifico se minha regra foi adicionada:

iptables -L -vt nat

Chain PREROUTING (policy ACCEPT 877 packets, 100K bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain INPUT (policy ACCEPT 877 packets, 100K bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 329 packets, 20395 bytes)
 pkts bytes target     prot opt in     out     source               destination
Chain POSTROUTING (policy ACCEPT 329 packets, 20395 bytes)
 pkts bytes target     prot opt in     out     source               destination

Eu não estou vendo minha regra. O que estou fazendo errado? E também, este é o jeito certo de fazer o que eu quero?

    
por ClemDOT 14.12.2014 / 18:23

1 resposta

0

iptables -t mangle      -A PREROUTING -p tcp --dport 8000:8010 -j TOS --set-tos Minimize-Delay
iptables -t nat         -L -v

Muito óbvio, se você alterar a ordem dos parâmetros. Esses são seus comandos. Agora é óbvio que uma tabela ( mangle ) é modificada e outra ( nat ) é examinada posteriormente. Portanto, não é de surpreender que o comando de listagem não mostre nenhuma mudança.

Mas eu não esperaria que isso fizesse uma diferença real. Talvez você deva investigar se isso é honrado pelos roteadores de hoje.

Você poderia considerar o uso de modelagem de tráfego para que os pacotes do servidor de rails sejam atrasados se houver um do servidor do jogo. Mas provavelmente este sistema tem uma interface muito rápida, o que provavelmente não fará uma grande diferença.

O que pode ajudá-lo - mas não sei se e como isso é possível: O servidor rails (se estiver atualmente em execução e se houver apenas uma CPU virtual ou se o servidor do jogo puder usar mais de uma) deverá ser imediatamente Parado pelo kernel se um pacote chegar ao servidor do jogo. Você poderia fazer uma nova pergunta aqui. Talvez seja útil que o servidor do jogo seja executado em prioridade em tempo real.

    
por 14.12.2014 / 18:28