如何预测系统资源需求


How to predict system resource need?

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

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

一些有用的工具:AWS Cloudwatch,但仅适用于EC2。设置一个警报,比如CPU利用率,所以当你超过75%时,就会向你发送一封警报电子邮件或短信,这样你就可以相应地四处查看。

AWS Elmatic负载均衡器将帮助您进一步分配流量,释放不健康的实例并将流量路由到更健康的服务器。

一些监控工具,如。。。名字上不见了。。。但如果你能用自我监控的方式来处理事情,当我们使用像webmin这样的控制面板时,你可以获得CPU使用情况、RAM使用情况、存储等的详细信息

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

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

E[内存|CPU=0.9,查询速度=0.6,…]

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

p(A|B)=p(B|A)p(A)/p(B)

这将适应新的经验证据。

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

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

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

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

我强烈建议你试试这个。。。

从这里下载mysqltuner

http://mysqltuner.pl/mysqltuner.pl

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