Высокие сетевые запросы softirq для ядра 3.10 под большим трафиком
Мы экспериментировали с выпуском ядра серии 3.10, предоставляемого centos через репозиторий centosplus для v6.
Мы заметили кое-что интересное, когда при той же нагрузке нагрузка на сервер в 3.10 серии в 6-7 раз больше, чем в серии 2.6. Используя top, мы заметили этот процесс с использованием большого количества процессоров.
[kworker/u66:2]
Это привело нас к установке powertop
а потом увидел это
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)
Это то же самое на серии 2.6, получающей такое же количество трафика
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)
Как вы можете видеть, net_rx равен 0 на 2,6, но мы получаем 4 кбит / с на 3,10. Спецификации сервера одинаковы и удалены все настройки s ysctl. Я могу повторить проблему, просто установив 3.10 на сервере.
Ники у нас есть в
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)