Linux

如果平均負載高,則終止程序

  • June 28, 2016

不久前,我的伺服器上的 LA 提高到 400,我什至無法使用 ssh 登錄伺服器。是否存在任何可以通過自動殺死在伺服器上造成巨大負載的程序來防止這種情況的軟體?

PS。Debian 6.0.5

您可以使用像Monit這樣的看門狗來監視您關心的程序,並在它們消耗過多資源時重新啟動它們。

像這樣的東西將用於監控 Apache:

check process apache with pidfile /var/run/httpd.pid
      start program = "/etc/init.d/httpd start"
      stop program  = "/etc/init.d/httpd stop"
      if cpu > 40% for 2 cycles then alert
      if totalcpu > 60% for 2 cycles then alert
      if totalcpu > 80% for 5 cycles then restart
      if mem > 100 MB for 5 cycles then stop
      if loadavg(5min) greater than 10.0 for 8 cycles then stop

因此,如果 Apache 程序或其任何子程序的 cpu% 超過 40%,請發送警報。如果超過 80%,請重新啟動 Apache。

如果由於某種原因沒有執行,Monit 也會啟動 Apache,這是保持關鍵服務正常執行的合理方法(如果你沒有像 Upstart 這樣的東西可用)。

這假設您有一組可以針對此類監控的程序。據推測,您懷疑某個特定的應用程序可能存在問題。

引用自:https://serverfault.com/questions/402834