AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1026468
Accepted
ibyte
ibyte
Asked: 2020-07-24 10:10:03 +0800 CST2020-07-24 10:10:03 +0800 CST 2020-07-24 10:10:03 +0800 CST

用monit重启apache

  • 772

我试图找出我的服务器上的一些问题,我的 CPU 每隔一天就达到 100% 的利用率。这会导致我所有的网站和 http 服务都失败。

当我的 cpu 在 10 个周期内达到 100% 时,如何配置 monit 以重新启动 httpd 服务?

我还是 linux 和 centos 的新手。学习我的方法,我已经尝试研究了一段时间,但我找不到正确的答案。

感谢您的关注

更新

感谢您的答复。当 CPU 以 100% 运行时,我运行了 top 命令,我可以看到用户没有人在 httpd 服务上使用所有这些。我有一些使用 php 脚本的应用程序,但它们的错误日志看起来都很好。

我怀疑某个特定的 wordpress 主题由于更新网站时出现循环而导致此错误。这个特定的网站还向我显示了一个环回测试失败错误,而同一台服务器上的所有其他 wordpress 网站都运行良好。

因此,在找出罪魁祸首之前,我只想在 CPU 利用率达到 95% 并持续 10 个周期时重新启动服务 httpd。

我希望这足以让有人给我一个解决方案。

apache-2.4 centos7 monit
  • 3 3 个回答
  • 611 Views

3 个回答

  • Voted
  1. mforsetti
    2020-08-03T22:42:49+08:002020-08-03T22:42:49+08:00

    当我的 cpu 在 10 个周期内达到 100% 时,如何配置 monit 以重新启动 httpd 服务?

    这会导致我所有的网站和 http 服务都失败。

    大概使用

    check process apache with pidfile /path/to/pid
        start "/sbin/service/apache2 start"
        stop  "/sbin/service/apache2 stop"
        if failed host 127.0.0.1 port 80
            for 10 cycles
        then restart
    

    当然, M/Monit wiki上会有更多信息。

    • 2
  2. Geeky Masters
    2020-07-24T11:25:18+08:002020-07-24T11:25:18+08:00

    您提供的有关堆栈和问题的信息很少。你甚至没有提供什么服务/应用程序正在消耗 100% CPU 的信息。如果您甚至考虑在 cpu 达到 100% 时重新启动 httpd 都不是解决方案,那就太愚蠢了。

    使用htop、iotop和sar等实用程序来确定哪些资源正在使用。但是根据我看到的水晶球猜测是httpd中的mod_php。

    • 1
  3. Best Answer
    Dre
    2020-08-05T09:57:12+08:002020-08-05T09:57:12+08:00

    当我的 cpu 在 10 个周期内达到 100% 时,如何配置 monit 以重新启动 httpd 服务?

    我会在 Monit 中使用这条线来获得你想要的东西:

    if cpu > 100% for 10 cycles then restart
    

    总而言之,它可能看起来像这样:

    check process httpd with pidfile /path/to/your/pid
        group mail
        start program = "/etc/init.d/httpd start"
        stop program = "/etc/init.d/httpd stop"
        if cpu > 100% for 10 cycles then restart
    

    Though this should do as you requested, I'm not sure this will give you the results you are looking for as Apache may have several processes running at any one time.

    For your Wordpress woes, Wordpress Query Monitor might help you to track down the culprit.

    • 1

相关问题

  • Apache2 - SSL 不工作

  • Apache <VirtualHost> 标签,如果客户端的 IP = x 则不重定向... 怎么做?

  • 我无法启用我的网站?[关闭]

  • SELinux 阻止 Apache 写入文件

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve