Мы экспериментировали с развертыванием ядра серии 3.10, которое предоставляется centos через репозиторий centosplus для v6.
Мы заметили кое-что интересное, когда при той же нагрузке нагрузка на сервер в 6-7 раз больше в серии 3.10, чем в стандартной версии 2.6. Используя top, мы заметили, что этот процесс использует много CPU
[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, но мы получаем 4k / s в 3.10. Спецификации сервера такие же, и все настройки sysctl удалены. Я могу воспроизвести проблему, просто установив 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)