是否有任何软件或方法通过获取多个输入来预测系统资源需求,例如 MySQL 查询读/写比率、在一秒钟内执行的查询、表和数据库的属性,也许还有一些与 PHP 配置相关的输入等?
是的。我知道软件可能无法为我提供完美的解决方案,但我并不是在寻找完美的解决方案。
是否有任何软件或方法通过获取多个输入来预测系统资源需求,例如 MySQL 查询读/写比率、在一秒钟内执行的查询、表和数据库的属性,也许还有一些与 PHP 配置相关的输入等?
是的。我知道软件可能无法为我提供完美的解决方案,但我并不是在寻找完美的解决方案。
另一种选择是使用可扩展的平台,例如 Amazon Web Services。您可以从一个微型实例开始并配置负载平衡以根据需要启动更多实例。
一旦确定了平均资源需求,您就可以根据需要将图像大小调整为更大或更小。
http://aws.amazon.com http://tuts.pinehead.tv/2011/06/26/creating-an-amazon-ec2-instance-with-linux-lamp-stack/
mysqltuner 是一个基于 perl 的脚本。
我强烈推荐你试试这个……
从这里下载 mysqltuner
http://mysqltuner.pl/mysqltuner.pl
它的命令行应用程序,并为您提供当前应用程序所需资源的详细信息...
一些可能派上用场的工具:AWS Cloudwatch,但仅适用于 EC2。设置警报,例如 CPU 利用率,因此当您超过 75% 时,将向您发送警报电子邮件或短信,因此您可以相应地环顾四周。
AWS Elsatic Load Balancer 将帮助您进一步分配流量,释放不健康的实例并将流量路由到更健康的服务器。
一些监控工具,例如...名称上缺少...但是如果您可以通过自我监控的方式来处理事情,当我们使用 webmin 之类的控制面板时,您可以获得 CPU 使用情况、RAM 使用情况、存储空间的详细信息, ETC...
最后,只是一个概念,但需要很多时间才能完成,我将按照上面所说的算法,创建一个可以在 cron 上工作的数学模型,所以每 5 分钟可以记录一次观察,并在何时采取行动必需的。
我会创建一个数学模型来计算系统资源的预测。我会根据贝叶斯统计计算经验概率密度估计。更正式地说,您想要计算如下内容:
E[内存|CPU=0.9,QuerySpeed=0.6,...]
您可以使用贝叶斯定理根据新的信号事件更新分布:
P(A | B) = P(B | A)P(A)/P(B)
这将适应新的经验证据。