我在debian服务器上运行一些Web应用程序,有时候不得不与ddos攻击斗争.它占用了我所有的资源,我不能再ssh到服务器了.
如果负载平均值太高,一个想法是放弃所有连接,因此如果负载平均值足够低,我仍然有资源并接受新连接.
由于这必须在高负荷下工作,我担心cronjob不够快或占用太多资源.
如果负载平均值太高,一个想法是放弃所有连接,因此如果负载平均值足够低,我仍然有资源并接受新连接.
由于这必须在高负荷下工作,我担心cronjob不够快或占用太多资源.
tl; dr:如果负载平均值高于特定阈值,有没有办法配置行为?
解决方法
虽然我认为您应该尝试解决防火墙或网络级别的实际问题,但基于资源的操作的快速而肮脏的方法是使用
Monit utility.
具体而言,Monit can perform resource tests,提醒您并根据这些条件采取行动.
IF资源操作符值[[< X>]< Y> [循环]那么动作[如果成功[[< X>]< Y>周期]那么行动]
所以…
check system example.com if loadavg (1min) > 10 then alert
或者针对Apache的特定内容:
check process apache with pidfile /var/run/httpd.pid start program = “/sbin/service httpd start” stop program = “/sbin/service httpd stop” if children > 250 then restart if loadavg(5min) greater than 10 for 8 cycles then stop if 3 restarts within 5 cycles then timeout