实时测试的性能记录?

时间:2011-09-18 11:08:53

标签: php mysql performance logging monitoring

我们正在完成我们的应用程序,用PHP / MySQL(+ memcached)编写,我们将在下周末开始一晚的实时测试(这是一种“社交”应用程序)。

我们当然会监视错误日志文件以确保一切正常。但我们还希望保留应用程序性能的日志:例如,确定脚本是否运行得太慢,更详细地说明函数/方法运行需要多长时间,以便执行MySQL查询并比较从memcached获得(和“un-jsoned”)数据。

这是我第一次做这样的事情:但是,我认为这是至关重要的,因为我们需要确保当我们的客户在10-15天内开始使用它时,应用程序将正确扩展。 (向上)扩展不会是一个大问题,因为我们使用的是云服务器(我们将从一个拥有256 MB RAM的单个实例开始,由一家知名公司提供),但我们希望确保使用资源有效。

您对此监控有什么建议吗?好的做法?好文章要读?

此外,当测试结束时,我们是否应该继续监控现场环境的表现?即使不是所有请求,只是在样本上?

PS:记录所有MySQL查询的文件和运行时间是不是一个好主意?

2 个答案:

答案 0 :(得分:0)

我经常对我的工作进行单元测试,以确保其以令人满意的速度运行,给出正确的结果等。

一旦我完成了单元测试,我会对它进行压力测试,我通过本地机器的疯狂循环运行最常用的函数,以及我为我的应用程序进行残酷测试而设置的实例,因为我的测试是用PHP我可以记录任何我喜欢的内容;

比如表演,但是我永远不会用它来实现我只是确信我对自己所写的内容充满信心

[编辑]

你使用Zend Studio吗? (这是我使用的PHP IDE),因为它内置了单元测试,你可以在这里免费试用,当它结束时仍然非常实用,我有付费版本所以我不确定单元测试是否仍然可行但是非常值得一试!

这是一个introduces unit testing的链接,它真的很棒,你可以试用Zend Studio here

这里还有一些刚刚从Google提取的单元测试链接。

lastcraft.com
List of unit testing
Another Stack Overflow post on unit testing PHP
Google results page

答案 1 :(得分:0)

你可以在机器上看一下这样的东西:

http://en.wikipedia.org/wiki/Cacti_%28software%29

获取有关系统性能的当前和历史信息(CPU \ Mem \ Bandwidth)总是很方便。