Я только что внес большие изменения в свой бэкэнд-код и заметил значительное увеличение средней нагрузки за несколько часов с момента нажатия. Я посмотрел на Мунина, в чем может быть проблема, и заметил, что, наряду со средней нагрузкой, значительно увеличилась и пропускная способность межсетевого экрана:
Это наряду с увеличением использования ЦП, прерываний и средней нагрузки, которые я добавил сюда для полноты:
Кто-нибудь знает, что здесь может происходить? Я сразу подумал, что изменения в коде увеличивают нагрузку на базу данных (PostgreSQL), но я не могу найти причину увеличения пропускной способности межсетевого экрана. Трафик остался прежним, единственная разница - это код Python, работающий под Gunicorn. В htop
процесс с наивысшей загрузкой процессора меняется между Gunicorn и Postgres, как и раньше (предполагая, что Postgres не стал внезапно загружать процессор).
РЕДАКТИРОВАТЬ: это результат iptables -L -n -v
:
Chain INPUT (policy ACCEPT 298K packets, 357M bytes)
pkts bytes target prot opt in out source destination
7705 516K fail2ban-ssh tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 296K packets, 372M bytes)
pkts bytes target prot opt in out source destination
Chain fail2ban-ssh (1 references)
pkts bytes target prot opt in out source destination
17 1720 REJECT all -- * * 58.218.201.19 0.0.0.0/0 reject-with icmp-port-unreachable
16 1228 REJECT all -- * * 210.45.250.3 0.0.0.0/0 reject-with icmp-port-unreachable
7583 505K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
ОБНОВЛЕНИЕ: я перезагрузил весь сервер, и средняя нагрузка снова выросла до 7, так что я думаю, это означает, что я могу исключить проблемы с кешем, имеющим старые данные после изменений в схеме БД.
Название плагина munin немного неудачно, потому что он не измеряет ничего, напрямую связанного с брандмауэром; он показывает, сколько пакетов получено системой на любом интерфейсе и сколько пакетов передано через систему. Следовательно, не имеет значения, сколько правил брандмауэра (если они есть!) У вас есть. Он исследует файл /proc/net/snmp
и контролирует 3-е и 6-е поля строки «Ip:».
Вы разговариваете со своим сервером postgreSQL через tcp / ip или через сокет домена unix? Если через tcp / ip, возможно, запросы выполняются дважды из-за какой-то ошибки в ваших изменениях. В противном случае вам придется дополнительно исследовать, откуда приходят эти дополнительные входящие пакеты.