【问题标题】:How to predict system resource need?如何预测系统资源需求?
【发布时间】:2012-03-02 22:49:35
【问题描述】:

是否有任何软件或方法可以通过获取多个输入来预测系统资源需求,例如 MySQL 查询读/写比率、在一秒钟内执行的查询、表和数据库的属性,也许还有一些与 PHP 配置相关的输入等?

是的。我知道软件可能无法为我提供完美的解决方案,但我并不是在寻找完美的解决方案。

【问题讨论】:

  • 您知道您的应用程序的规模以及您将在其上运行的查询类型吗?
  • 不知道预测,但是您可以使用 jMeter 之类的工具模拟服务器负载,并且您可以使用 XDebug 等 PHP 调试器的分析功能来构建 PHP 脚本多长时间的图片需要执行(尽管根据我的经验,配置文件本身可能会给正在运行的脚本增加相当多的开销,因此虽然它对代码优化很有用,但它作为性能预测实用程序的有用性可能会受到限制)。

标签: php mysql apache estimation prediction


【解决方案1】:

我会创建一个数学模型来计算系统资源的预测。我会根据贝叶斯统计计算经验概率密度估计。更正式地说,您想计算如下内容:

E[内存|CPU=0.9,QuerySpeed=0.6,...]

您可以使用贝叶斯定理根据新的信号事件更新分布:

P(A | B) = P(B | A)P(A)/P(B)

这将适应新的经验证据。

【讨论】:

  • 谢谢,但我听不懂。你能简化一下吗?
【解决方案2】:

另一种选择是使用可扩展的平台,例如 Amazon Web Services。您可以从微型实例开始并配置负载平衡以根据需要启动更多实例。

确定平均资源需求后,您可以根据需要将图像大小调整为更大或更小。

http://aws.amazon.com http://tuts.pinehead.tv/2011/06/26/creating-an-amazon-ec2-instance-with-linux-lamp-stack/

【讨论】:

    【解决方案3】:

    mysqltuner 是一个基于 perl 的脚本..

    我强烈推荐你试试这个...

    从这里下载 mysqltuner

    http://mysqltuner.pl/mysqltuner.pl
    

    它的命令行应用程序,并为您提供当前应用程序所需资源的详细信息...

    【讨论】:

      【解决方案4】:

      一些可能会派上用场的工具: AWS Cloudwatch,但仅适用于 EC2。设置一个警报,例如 CPU 利用率,所以当您超过 75% 时,将向您发送警报电子邮件或短信,以便您可以相应地环顾四周。

      AWS Elsatic Load Balancer 将帮助您进一步分配流量,释放不健康的实例并将流量路由到更健康的服务器。

      一些监控工具,例如...名称上缺少...但是如果您可以通过自我监控的方式来处理事情,当我们使用 webmin 之类的控制面板时,您可以获得 CPU 使用率、RAM 的详细信息使用、存储等...

      最后,只是一个概念,但需要很多时间才能完成,我将按照上面所说的算法,创建一个可以在 cron 上运行的数学模型,这样每 5 分钟就可以记录一次观察结果,并采取行动需要时服用。

      【讨论】:

        猜你喜欢
        • 2011-07-31
        • 1970-01-01
        • 1970-01-01
        • 2018-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多