我刚刚对后端代码进行了大幅改动,并且注意到自推后几个小时内,平均负载有了大幅度的增长。 我看着Munin问题可能是什么,我注意到,除了平均负载,防火墙的吞吐量也大大增加了:

这是随着CPU使用率,中断和平均负载的增加,我在这里添加完整性:



有谁知道这里会发生什么? 我的直接想法是代码的变化给数据库(PostgreSQL)带来了更多的负担,但我找不到增加防火墙吞吐量的原因。 stream量保持不变,这里唯一的区别是在Gunicorn下运行的Python代码。 在htop中,Gunicorn和Postgres之间的最高CPU进程发生了变化,就像以前一样(这意味着Postgres并没有突然成为CPU-Hog)。
编辑:这是从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左右,所以我想这意味着我可以排除在数据库模式更改后旧caching数据的问题。
这个munin插件的名字有点不幸,因为它并没有真正衡量与防火墙直接相关的任何东西。 它显示了系统在任何接口上接收了多less个数据包,以及通过系统转发了多less个数据包。 因此,您拥有多less防火墙规则(如果有的话)并不重要。 它检查文件/proc/net/snmp并监视“Ip:”行的第3和第6个字段。
您是通过tcp / ip还是通过unix域套接字与您的postgreSQL服务器通信? 如果通过tcp / ip,可能由于更改中的某个错误而正在执行两次查询。 否则,你将不得不进一步研究这些额外的数据包来自哪里。