Solicitações de softirq de alta rede para o kernel 3.10 sob um monte de tráfego

2

Nós temos experimentado o lançamento do kernel da série 3.10 que é fornecido pela centos através do repositório centosplus para a v6.

Temos notado algo interessante onde sob a mesma carga a carga para o servidor é 6-7x mais na série 3.10, em seguida, o estoque da série 2.6. Usando top notamos esse processo usando muita CPU

 [kworker/u66:2]

Isso nos levou a instalar powertop e, em seguida, viu isso

            Usage       Events/s    Category       Description
         1110 ms/s     2045.2   Process        php-fpm: pool www
         36.0 ms/s     2165.4   Timer          tick_sched_timer
         57.7 ms/s     1285.0   Process        nginx: worker process
         13.3 ms/s     416.0        Timer          hrtimer_wakeup
         39.1 ms/s     350.7        Interrupt      [3] net_rx(softirq)

Este é o mesmo em uma série 2.6 recebendo a mesma quantidade de tráfego

            Usage       Events/s    Category       Description
         1795 ms/s     1654.0   Process        php-fpm: pool www
         45.3 ms/s     1110.4   Process        nginx: worker process
        562.8 µs/s     122.4        Process        /usr/bin/java -Xms200m -Xmx2000m -Xss256k -XX:MaxDirectMemorySize=516m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Dage
        497.1 µs/s      59.3        Process        /usr/sbin/gmond
         16.0 ms/s      30.2        Process        /usr/bin/redis-server 127.0.0.1:6379
          4.7 ms/s      32.8        Process        python /usr/bin/statsd-relay.py
         81.7 ms/s      0.00        Timer          tcp_delack_timer
         24.8 ms/s      0.00        Timer          tick_sched_timer
        549.4 µs/s       9.2        Process        java -Xmx6g -server -Dfile.encoding=utf-8 -XX:OnOutOfMemoryError=kill -9 %p -XX:+HeapDumpOnOutOfMemoryError -XX:HeapD
         15.2 ms/s      0.00        Interrupt      [3] net_rx(softirq)

Como você pode ver, o net_rx é 0 em 2.6, mas temos até 4k / s em 3.10. As especificações do servidor são as mesmas e removidas todas as configurações do sysctl. Eu posso replicar o problema apenas instalando 3.10 em um servidor.

os nics que temos são

06:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
06:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
06:00.2 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
06:00.3 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
    
por Mike 13.11.2014 / 05:09

0 respostas